public ActionResult Create(DonationCreateViewModel newData) { ValidateDonationLogEntry(newData); var donor = bddb.Donor.Where(d => d.Email == SessionState.Current.UserEmail).FirstOrDefault(); if (ModelState.IsValid) { if (newData.IsSuccessful) { CalculateNextDonationDate(newData, donor); } else { if (newData.NextDate == DateTime.MinValue) { return(PartialView("_Create_AddNextDate", newData)); } ValidateManualNextDate(newData); if (!ModelState.IsValid) { return(PartialView("_Create_AddNextDate", newData)); } } var newDonationLogEntry = new DonationLog { DonorId = donor.Id, DonationCenterId = newData.DonationCenterId, DonationDate = newData.DonationDate, IsSuccessful = newData.IsSuccessful, NextDate = newData.NextDate, Comments = newData.Comments }; using (var transaction = bddb.Database.BeginTransaction()) { bddb.DonationLog.Add(newDonationLogEntry); bddb.SaveChanges(); transaction.Commit(); return(Json(new { success = true })); } } AddToViewBag_DonationCenterList(); return(PartialView("_Create", newData)); }
public async Task <IActionResult> OnPostAsync() { if (!ModelState.IsValid) { return(await OnGetAsync(Donation.Id)); } var entity = DbContext.Donations.Find(Donation.Id); var log = new DonationLog { Title = entity.Title, Content = entity.Content, DonationId = Donation.Id }; DbContext.DonationLogs.Add(log); await TryUpdateModelAsync(entity, nameof(Donation)); try { await DbContext.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!DonationExists(Donation.Id)) { return(NotFound()); } else { throw; } } return(RedirectToPage("./Details", new { id = Donation.Id })); }