public IActionResult OnPost() { ModelState.Remove("Entry.Id"); if (!ModelState.IsValid) { return(Page()); } if (IsDuplicate(Entry)) { Message = $"{Entry.PhoneNumber} already exists"; return(RedirectToPage()); } if (Entry.Id > 0) { _entryRepository.UpdateEntry(Entry); Message = $"{Entry.Name}'s entry has been updated."; _entryRepository.Commit(); } else { Entry = _entryRepository.AddEntry(Entry); _entryRepository.Commit(); Entries = _entryRepository.GetAllEntries().ToList(); Message = $"Entry Saved. {Entries.Count} entries in total"; //Clear 'SearchMessage' TempData SearchMessage = null; TempData.Save(); } if (RouteData.Values.ContainsKey("edit")) { RouteData.Values.Remove("edit"); Entry = null; JustEditted = true; } return(RedirectToPage(new { edit = false })); }
protected void UpdateBalance(Entry entry) { using (_entryRepository.BeginTransaction()) { //Entry this._entryRepository.Save(entry); //Account var account = _accountRepository.FindOrCreateBy(entry.DestinationAccount, entry.DestinationBank, entry.TypeAccount, entry.DestinationIdentity); //Balance var currentBalance = _balanceRepository.FindOrCreateBy(account, entry.DateToExecute.GetValueOrDefault()); var entryDto = new ShortEntryDTO(entry.DateEntry.GetValueOrDefault(), entry.Value.GetValueOrDefault()); if (entry.IsPayment()) { currentBalance.Outputs.Add(entryDto); currentBalance.Total -= entryDto.Value; } else { currentBalance.Inputs.Add(entryDto); currentBalance.Total += entryDto.Value; } if (entry.FinancialCharges > 0.00m) { currentBalance.Charges.Add(new ShortEntryDTO(entry.DateEntry.GetValueOrDefault(), entry.FinancialCharges.GetValueOrDefault(0))); currentBalance.Total -= entry.FinancialCharges.GetValueOrDefault(); } _balanceRepository.Update(currentBalance); _balanceRepository.UpdateCurrentAndFutureBalance(entry.DateToExecute.GetValueOrDefault(), account.Id.GetValueOrDefault()); //Commit _entryRepository.Commit(); } }