public void GetFromCSV(string path) { //Чита податоци од csv фајл и запишува во овој објект. using (StreamReader file = new StreamReader(path)) { string type = ""; string line; line = file.ReadLine(); if (line == null) { return; } string[] parts = line.Split(','); Income = Convert.ToDecimal(parts[0]); Expenses = Convert.ToDecimal(parts[1]); Total = Convert.ToDecimal(parts[2]); while ((line = file.ReadLine()) != null) { if (line.Equals("Categories:")) { type = line; continue; } else if (line.Equals("Accounts:")) { type = line; continue; } else if (line.Equals("Transactions:")) { type = line; continue; } if (type.Equals("Categories:")) { if (line[0] == '1') { IncomeCategories.Add(line.Substring(2), new IncomeCategory(line.Substring(2))); } else { ExpensesCategories.Add(line.Substring(2), new ExpensesCategory(line.Substring(2))); } } else if (type.Equals("Accounts:")) { Account a = MakeAccount(line); Accounts.Add(a.Name, a); } else if (type.Equals("Transactions:")) { Transactions.Add(MakeTransaction(line)); } } file.Close(); } }
public Transaction MakeTransaction(string csvLine) { Transaction t; if (csvLine[0] == '1') { t = new IncomeTransaction(); } else { t = new ExpenseTransaction(); } csvLine = csvLine.Substring(2); string[] parts = csvLine.Split(','); if (Accounts.ContainsKey(parts[1]) && (IncomeCategories.ContainsKey(parts[2]) || ExpensesCategories.ContainsKey(parts[2]))) { t.Date = DateTime.Parse(parts[0]); t.Account = Accounts[parts[1]]; if (IncomeCategories.ContainsKey(parts[2])) { t.Category = IncomeCategories[parts[2]]; } else { t.Category = ExpensesCategories[parts[2]]; } t.Amount = Convert.ToDecimal(parts[3]); t.Contents = ""; for (int i = 4; i < parts.Length; i++) { if (i == parts.Length - 1) { t.Contents += string.Format("{0}", parts[i]); } else { t.Contents += string.Format("{0},", parts[i]); } } } return(t); }