コード例 #1
0
 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();
     }
 }
コード例 #2
0
        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);
        }