-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathFileHandler.cs
More file actions
75 lines (50 loc) · 2.05 KB
/
FileHandler.cs
File metadata and controls
75 lines (50 loc) · 2.05 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
public class FileHandler {
public void SaveTransactionToFile(Transaction transaction) {
string serializedTransaction = transaction.GetId().ToString();
serializedTransaction += "," + transaction.Amount.ToString();
serializedTransaction += "," + transaction.Date.ToString();
File.WriteAllText("transactions\\" + transaction.GetId() + ".txt", serializedTransaction);
}
public void SaveBalanceToFile(double balance) {
string serializedBalance = balance.ToString();
File.WriteAllText("balance.txt", serializedBalance);
}
public double GetBalanceFromFile() {
string filePath = "balance.txt";
if (!File.Exists(filePath)) {
Console.WriteLine("Could not find file");
return 0;
}
string fileContent = File.ReadAllText(filePath);
double balance = double.Parse(fileContent);
return balance;
}
public void DeleteFile(Guid transactionId) {
File.Delete("transactions\\" + transactionId + ".txt");
}
public List<Transaction> GetTransactionsFromFile() {
List<Transaction> transactions = new List<Transaction>();
string directoryPath = "transactions\\";
if (!Directory.Exists(directoryPath)) {
Console.WriteLine("Transaction not found");
return transactions;
}
string[] files = Directory.GetFiles(directoryPath);
foreach (string file in files)
{
string fileContent = File.ReadAllText(file);
string[] parts = fileContent.Split(',');
if (parts.Length == 3) {
Transaction transaction = RecreateTransaction(parts);
transactions.Add(transaction);
}
}
return transactions;
}
public Transaction RecreateTransaction(string[] parts) {
Guid id = Guid.Parse(parts[0]);
double amount = double.Parse(parts[1]);
DateTime date = DateTime.Parse(parts[2]);
return new Transaction(id, date, amount);
}
}