Esempio n. 1
0
        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")));
        }
Esempio n. 2
0
        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());
            }
        }