public async Task SaveChangesAsync() { bool _saveOk = true; using (UnitOfWork uow = new UnitOfWork(this.dbFilePath)) { if (this.IsNew) { switch (this.ItemType) { case BudgetItemType.Expense: var _resultsAddExpense = await uow.AddExpenseItemAsync(this.model as ExpenseItem); _saveOk = _resultsAddExpense.Successful; if (_saveOk) { //this.model = _resultsAddExpense.Results; this.IsDirty = false; this.IsNew = false; this.CanEdit = true; this.CanDelete = true; OnItemUpdated(); } else { if (_resultsAddExpense.WorkException != null) { WriteErrorCondition(_resultsAddExpense.WorkException); } else if (!string.IsNullOrEmpty(_resultsAddExpense.Message)) { WriteErrorCondition(_resultsAddExpense.Message); } else { WriteErrorCondition("An unknown error has occurred adding budget item object"); } } break; case BudgetItemType.Income: var _resultsAddIncome = await uow.AddIncomeItemAsync(this.model as IncomeItem); _saveOk = _resultsAddIncome.Successful; if (_saveOk) { //this.model = _resultsAddIncome.Results; this.IsDirty = false; this.IsNew = false; this.CanEdit = true; this.CanDelete = true; OnItemUpdated(); } else { if (_resultsAddIncome.WorkException != null) { WriteErrorCondition(_resultsAddIncome.WorkException); } else if (!string.IsNullOrEmpty(_resultsAddIncome.Message)) { WriteErrorCondition(_resultsAddIncome.Message); } else { WriteErrorCondition("An unknown error has occurred adding budget item object"); } } break; } } else { switch (this.ItemType) { case BudgetItemType.Expense: var _resultsUpdateExpense = await uow.UpdateExpenseItemAsync(this.model as ExpenseItem); _saveOk = _resultsUpdateExpense.Successful; if (_saveOk) { //this.model = _resultsUpdateExpense.Results; this.IsDirty = false; this.IsNew = false; this.CanEdit = true; this.CanDelete = true; OnItemUpdated(); } else { if (_resultsUpdateExpense.WorkException != null) { WriteErrorCondition(_resultsUpdateExpense.WorkException); } else if (!string.IsNullOrEmpty(_resultsUpdateExpense.Message)) { WriteErrorCondition(_resultsUpdateExpense.Message); } else { WriteErrorCondition("An unknown error has occurred updating budget item object"); } } break; case BudgetItemType.Income: var _resultsUpdateIncome = await uow.UpdateIncomeItemAsync(this.model as IncomeItem); _saveOk = _resultsUpdateIncome.Successful; if (_saveOk) { //this.model = _resultsUpdateIncome.Results; this.IsDirty = false; this.IsNew = false; this.CanEdit = true; this.CanDelete = true; OnItemUpdated(); } if (!_saveOk) { if (_resultsUpdateIncome.WorkException != null) { WriteErrorCondition(_resultsUpdateIncome.WorkException); } else if (!string.IsNullOrEmpty(_resultsUpdateIncome.Message)) { WriteErrorCondition(_resultsUpdateIncome.Message); } else { WriteErrorCondition("An unknown error has occurred updating budget item object"); } } break; } } } }