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); } }
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); } }
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); } }