コード例 #1
0
ファイル: Index.cshtml.cs プロジェクト: Hlosani-M/PhoneBook
        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 }));
        }
コード例 #2
0
        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();
            }
        }