public async Task <ActionResult> AdminUpdateFaq(UpdateSupportFaqModel model) { if (!ModelState.IsValid) { return(View("AdminUpdateFaqModal", model)); } var result = await SupportWriter.AdminUpdateSupportFaq(User.Id(), model); if (!ModelState.IsWriterResultValid(result)) { return(View("AdminUpdateFaqModal", model)); } return(CloseModalRedirect(Url.Action("Index", "Admin"))); }
public async Task <IWriterResult <bool> > AdminUpdateSupportFaq(string userId, UpdateSupportFaqModel model) { using (var context = DataContextFactory.CreateContext()) { var faq = await context.SupportFaq.FirstOrDefaultNoLockAsync(x => x.Id == model.Id); if (faq == null) { return(WriterResult <bool> .ErrorResult("FAQ with id '{0}' not found.", model.Id)); } if (faq.Order != model.Order) { var order = Math.Max(Math.Min(context.SupportFaq.Count() - 1, model.Order), 0); foreach (var item in context.SupportFaq.Where(x => x.Order >= order).ToList()) { item.Order++; } faq.Order = order; } faq.Question = model.Question; faq.Answer = model.Answer; faq.IsEnabled = model.IsEnabled; await context.SaveChangesAsync(); return(WriterResult <bool> .SuccessResult()); } }