public async Task <ControllerModels.Quotes.EditResult> Edit(ControllerModels.Quotes.QuotesInput input) { var result = new ControllerModels.Quotes.EditResult(); foreach (var quoteInput in input.Quotes) { var records = await Records(); var record = records.FirstOrDefault(r => r.Id == quoteInput.Id); if (record is null) { result.Errors.Add(nameof(quoteInput.Id), $@"No record was found with the id '{quoteInput.Id}'."); break; } if (quoteInput.Approved != record.Approved) { record.Approved = quoteInput.Approved; DbContext.Update(record); } if (quoteInput.OriginalBody != record.OriginalBody) { record.OriginalBody = quoteInput.OriginalBody; var processedMessage = await MessageRepository.ProcessMessageInput(quoteInput.OriginalBody); foreach (var error in processedMessage.Errors) { result.Errors.Add(error.Key, error.Value); } if (!result.Errors.Any()) { record.DisplayBody = processedMessage.DisplayBody; DbContext.Update(record); } } if (!result.Errors.Any()) { await DbContext.SaveChangesAsync(); } } return(result); }
public async Task <IActionResult> Edit(ControllerModels.Quotes.QuotesInput input) { if (ModelState.IsValid) { var result = await QuoteRepository.Edit(input); ModelState.AddModelErrors(result.Errors); } if (ModelState.IsValid) { TempData[Constants.InternalKeys.StatusMessage] = "Changes saved."; } else { TempData[Constants.InternalKeys.StatusMessage] = "Errors were encountered while updating quotes."; } return(ForumViewResult.RedirectToReferrer(this)); }