コード例 #1
0
        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);
        }
コード例 #2
0
        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));
        }