public async override Task <bool> SaveChangesAsync() { bool _saveOk = false; using (UnitOfWork uow = new UnitOfWork(this.dbFilePath)) { if (this.IsNew) { var _resultsAddWithdrawal = await uow.AddSavingsWithdrawalAsync(model); _saveOk = _resultsAddWithdrawal.Successful; if (_saveOk) { this.IsDirty = false; this.IsNew = false; this.CanEdit = true; this.CanDelete = true; OnItemUpdated(); } else { if (_resultsAddWithdrawal.WorkException != null) { WriteErrorCondition(_resultsAddWithdrawal.WorkException); } else if (!string.IsNullOrEmpty(_resultsAddWithdrawal.Message)) { WriteErrorCondition(_resultsAddWithdrawal.Message); } else { WriteErrorCondition("An unknown error has occurred saving withdrawal record"); } } } else { var _resultsUpdateWithdrawal = await uow.UpdateSavingsWithdrawalAsync(model); _saveOk = _resultsUpdateWithdrawal.Successful; if (_saveOk) { this.IsDirty = false; this.IsNew = false; this.CanEdit = true; this.CanDelete = true; OnItemUpdated(); } else { if (_resultsUpdateWithdrawal.WorkException != null) { WriteErrorCondition(_resultsUpdateWithdrawal.WorkException); } else if (!string.IsNullOrEmpty(_resultsUpdateWithdrawal.Message)) { WriteErrorCondition(_resultsUpdateWithdrawal.Message); } else { WriteErrorCondition("An unknown error has occurred saving withdrawal record"); } } } } return(_saveOk); }