Exemple #1
0
        public void Remove(ModelBase obj)
        {
            if (obj is Account)
            {
                Accounts.Remove(obj as Account);

                var transactionIds = Transactions.SelectMany(t => t.Details).Where(t => t.AccountId == ((Account)obj).Id).Select(t => t.TransactionId);

                foreach (var transId in transactionIds)
                {
                    Remove(Transactions.FirstOrDefault(t => t.Id == transId));
                }

                foreach (var schedTrans in ScheduledTransactions.Where(t => t.FromAccountId == ((Account)obj).Id || t.ToAccountId == ((Account)obj).Id).ToList())
                {
                    Remove(schedTrans);
                }
            }
            else if (obj is Transaction)
            {
                Transactions.Remove(obj as Transaction);

                foreach (var detail in TransactionDetails.Where(t => t.TransactionId == ((Transaction)obj).Id).ToList())
                {
                    Remove(detail);
                }
            }
            else if (obj is TransactionDetail)
            {
                TransactionDetails.Remove(obj as TransactionDetail);
            }
            else if (obj is Receipt)
            {
                Receipts.Remove(obj as Receipt);
            }
            else if (obj is ScheduledTransaction)
            {
                ScheduledTransactions.Remove(obj as ScheduledTransaction);

                foreach (var detail in ScheduledTransactionDetails.Where(t => t.ScheduledTransactionId == ((ScheduledTransaction)obj).Id).ToList())
                {
                    Remove(detail);
                }
            }
            else if (obj is ScheduledTransactionDetail)
            {
                ScheduledTransactionDetails.Remove(obj as ScheduledTransactionDetail);
            }
            else if (obj is Category)
            {
                Categories.Remove(obj as Category);
            }
            else if (obj is Product)
            {
                Products.Remove(obj as Product);
            }
        }
Exemple #2
0
        public void Add(ModelBase obj)
        {
            if (obj is Account)
            {
                Accounts.Add(obj as Account);
            }
            else if (obj is Transaction)
            {
                Transactions.Add(obj as Transaction);

                foreach (var detail in ((Transaction)obj).Details)
                {
                    Add(detail);
                }
            }
            else if (obj is TransactionDetail)
            {
                TransactionDetails.Add(obj as TransactionDetail);
            }
            else if (obj is Receipt)
            {
                Receipts.Add(obj as Receipt);
            }
            else if (obj is ScheduledTransaction)
            {
                ScheduledTransactions.Add(obj as ScheduledTransaction);

                foreach (var detail in ((ScheduledTransaction)obj).Details)
                {
                    Add(detail);
                }
            }
            else if (obj is ScheduledTransactionDetail)
            {
                ScheduledTransactionDetails.Add(obj as ScheduledTransactionDetail);
            }
            else if (obj is Category)
            {
                Categories.Add(obj as Category);
            }
            else if (obj is Product)
            {
                Products.Add(obj as Product);
            }
        }
Exemple #3
0
 public bool Exists(ModelBase obj)
 {
     if (obj is Account)
     {
         return(Accounts.Contains(obj));
     }
     else if (obj is Transaction)
     {
         return(Transactions.Contains(obj));
     }
     else if (obj is TransactionDetail)
     {
         return(TransactionDetails.Contains(obj));
     }
     else if (obj is Receipt)
     {
         return(Receipts.Contains(obj));
     }
     else if (obj is ScheduledTransaction)
     {
         return(ScheduledTransactions.Contains(obj));
     }
     else if (obj is ScheduledTransactionDetail)
     {
         return(ScheduledTransactionDetails.Contains(obj));
     }
     else if (obj is Category)
     {
         return(Categories.Contains(obj));
     }
     else if (obj is Product)
     {
         return(Products.Contains(obj));
     }
     else
     {
         return(false);
     }
 }