示例#1
0
        public async Task <IActionResult> FAQ(int?page, int?id, int?searchtype, string query)
        {
            if (id.HasValue && id.Value > 0)
            {
                return(RedirectToAction("FAQView", new { id = id }));
            }

            if (!page.HasValue)
            {
                page = 1;
            }
            else
            if (page.Value == 0)
            {
                page = 1;
            }


            FaqViewModel searchModel = new FaqViewModel();

            searchModel.PageNumber = page.Value;
            if (!string.IsNullOrWhiteSpace(query))
            {
                searchModel.FaqSearchCriteria.SearchType   = (Faq.SearchType)searchtype.Value;
                searchModel.FaqSearchCriteria.SearchString = query;
            }

            searchModel = await _faqViewModel.SearchFaqs(searchModel);

            return(View(searchModel));
        }
        public async Task <IActionResult> Edit(int id, [Bind("Id,Answer,DivId,Publish,Question,SubmittedOn")] FaqViewModel faqViewModel)
        {
            if (id != faqViewModel.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(faqViewModel);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!FaqViewModelExists(faqViewModel.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction("Index"));
            }
            return(View(faqViewModel));
        }
        public async Task Create_Should_Return_OkResult()
        {
            // Assign
            var faq = new FaqViewModel
            {
                Question = "q",
                Answer   = "",
                Category = new Category
                {
                    Title = "t",
                },
            };

            using (var context = DbContextFake.GetDbContext <IntranetApiContext>())
            {
                var faqController = ControllerFake.GetController <FaqsController>(context);

                // Act
                var response = await faqController.Create(faq);

                // Assert
                Assert.True(response.ValidateActionRedirect("Details"));
            }
            using (var context = DbContextFake.GetDbContext <IntranetApiContext>())
            {
                var savedFaq = context.Faqs.Include(f => f.Category).First();

                Assert.Equal(savedFaq.Question, "q");
                Assert.Equal(savedFaq.Url, "q");
                Assert.Equal(savedFaq.Category.Title, "t");
                Assert.Equal(savedFaq.Category.Url, "t");
            }
        }
示例#4
0
        public JsonFaq FaqClearance(int id)
        {
            JsonFaq             jsonFaq    = new JsonFaq();
            List <FaqViewModel> FaqListObj = new List <FaqViewModel>();

            try
            {
                var Clearance = _faq.FaqClearance();
                foreach (var item in Clearance)
                {
                    FaqViewModel faqOBJ = new FaqViewModel();

                    faqOBJ.FaqType     = item.FaqType;
                    faqOBJ.Title       = item.Title;
                    faqOBJ.Description = item.Description;
                    FaqListObj.Add(faqOBJ);
                }
                jsonFaq.Result = FaqListObj;
                return(jsonFaq);
            }
            catch (Exception ex)
            {
                _ = ex.Message;
                return(jsonFaq);
            }
        }
示例#5
0
        public ActionResult Delete(int id, FaqViewModel model)
        {
            try
            {
                // TODO: Add delete logic here
                var faq = _repo.FindById(id);
                if (faq == null)
                {
                    return(NotFound());
                }

                var isSuccess = _repo.Delete(faq);
                if (!isSuccess)
                {
                    return(View(model));
                }


                return(RedirectToAction(nameof(Index)));
            }
            catch
            {
                return(View(model));
            }
        }
示例#6
0
        public FaqViewModel PostFaq()
        {
            FaqViewModel faqViewModel = new FaqViewModel();

            try
            {
                List <Faq> faqs = UnitOfWork.FaqRepository.Get().OrderBy(c => c.Order).ToList();

                List <FaqItemViewModel> faqItems = new List <FaqItemViewModel>();

                foreach (Faq faq in faqs)
                {
                    faqItems.Add(new FaqItemViewModel()
                    {
                        Question = faq.Question,
                        Answer   = faq.Answer
                    });
                }

                faqViewModel.Result = faqItems;
                faqViewModel.Status = status.ReturnStatus(0, Resources.Messages.SuccessGet, true);
            }
            catch (Exception)
            {
                return(new FaqViewModel()
                {
                    Result = null,
                    Status = status.ReturnStatus(100, Resources.Messages.CatchError, false)
                });
            }

            return(faqViewModel);
        }
示例#7
0
        public ActionResult Create(FaqViewModel model)
        {
            try
            {
                // TODO: Add insert logic here
                if (!ModelState.IsValid)
                {
                    return(View(model));
                }
                var faq       = _mapper.Map <Faq>(model);
                var isSuccess = _repo.Create(faq);
                if (!isSuccess)
                {
                    ModelState.AddModelError("", "Something Went Wrong!");
                    return(View(model));
                }

                return(RedirectToAction(nameof(Index)));
            }
            catch
            {
                ModelState.AddModelError("", "Something Went Wrong!");
                return(View(model));
            }
        }
示例#8
0
 public IActionResult Create(FaqViewModel faq)
 {
     if (ModelState.IsValid)
     {
         Faq model = _mapper.Map <FaqViewModel, Faq>(faq);
         _faqRepository.CreateFaq(model);
         return(RedirectToAction("index"));
     }
     return(View(faq));
 }
        public async Task <IActionResult> Create([Bind("Id,Answer,DivId,Publish,Question,SubmittedOn")] FaqViewModel faqViewModel)
        {
            if (ModelState.IsValid)
            {
                _context.Add(faqViewModel);
                await _context.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }
            return(View(faqViewModel));
        }
示例#10
0
        private List <Tag> GetAllTagEntitiesInternal(FaqViewModel faq, IEnumerable <string> tags)
        {
            if (tags.IsNull())
            {
                return(new List <Tag>());
            }

            return(_context.Tags?
                   .Include(k => k.FaqTags)
                   .ThenInclude(ft => ft.Faq)?
                   .Where(k => tags.Contains(k.Name, StringComparer.OrdinalIgnoreCase) || k.FaqTags.Any(nt => nt.FaqId.Equals(faq.Id)))
                   .ToList());
        }
示例#11
0
 public async Task <IActionResult> FAQ(FaqViewModel model)
 {
     if (model.FaqSearchCriteria != null && !string.IsNullOrWhiteSpace(model.FaqSearchCriteria.SearchString))
     {
         model.PageNumber = 1;
         return(RedirectToAction("FAQ", new { page = 1, searchtype = (int)model.FaqSearchCriteria.SearchType, query = model.FaqSearchCriteria.SearchString }));
     }
     else
     {
         model.Faqs.CurrentPage = 1;
         return(RedirectToAction("FAQ", new { page = 1, searchtype = SearchType.Title, query = "" }));
     }
 }
示例#12
0
        public ActionResult Edit(int id, FaqViewModel model)
        {
            try
            {
                // TODO: Add update logic here

                return(RedirectToAction(nameof(Index)));
            }
            catch
            {
                return(View());
            }
        }
示例#13
0
        public IActionResult Create(FaqViewModel model)
        {
            if (ModelState.IsValid)
            {
                Faq faq = _mapper.Map <FaqViewModel, Faq>(model);
                model.AddedBy = _admin.Fullname;

                _sectionRepository.CreateFaq(faq);
                return(RedirectToAction("index"));
            }

            return(View(model));
        }
        public async Task Edit_Faq_Should_Return_Ok()
        {
            // Assign
            var faq = new Faq
            {
                Id       = 1,
                Question = "old question",
                Answer   = "",
                Url      = "old-question",
                Category = new Category
                {
                    Title = "old category",
                    Url   = "old-category",
                },
            };

            var newFaq = new FaqViewModel
            {
                Id       = 1,
                Question = "q",
                Answer   = "",
                Category = new Category
                {
                    Title = "t",
                },
            };

            DbContextFake.SeedDb <IntranetApiContext>(c => c.Add(faq));

            using (var context = DbContextFake.GetDbContext <IntranetApiContext>())
            {
                var faqController = ControllerFake.GetController <FaqsController>(context);

                // Act
                var result = await faqController.Edit(1, newFaq);

                // Assert
                Assert.True(result.ValidateActionRedirect("Details"));
            }
            using (var context = DbContextFake.GetDbContext <IntranetApiContext>())
            {
                var updatedFaq = context.Faqs.Include(f => f.Category).First();

                Assert.Equal(faq.Question, "old question");
                Assert.Equal(updatedFaq.Question, "q");
                Assert.Equal(faq.Category.Title, "old category");
                Assert.Equal(updatedFaq.Category.Title, "t");
                Assert.Equal(updatedFaq.Url, "old-question");
                Assert.Equal(updatedFaq.Category.Url, "t");
            }
        }
示例#15
0
        public async Task <IActionResult> Edit(int id, [Bind("Id,Category,Question,Answer,Url")] FaqViewModel faqVM)
        {
            if (id != faqVM?.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                var entity = await _context.Faqs
                             .Include(f => f.Category)
                             .SingleOrDefaultAsync(c => c.Id == id);

                if (entity.IsNull())
                {
                    return(NotFound());
                }

                if (!entity.Category.Title.Equals(faqVM.Category.Title, StringComparison.OrdinalIgnoreCase))
                {
                    var category = await _context.Categories.SingleOrDefaultAsync(c => c.Title.Equals(faqVM.Category.Title, StringComparison.OrdinalIgnoreCase));

                    if (category.IsNotNull())
                    {
                        entity.Category = category;
                    }
                    else
                    {
                        entity.Category = new Category
                        {
                            Title = faqVM.Category.Title,
                            Url   = CustomUrlHelper.URLFriendly(faqVM.Category.Title),
                        };
                    }
                }

                entity.Answer   = faqVM.Answer;
                entity.Question = faqVM.Question;

                var tags           = TagHelpers.GetTagsFromString(faqVM.Tags);
                var allTagEntities = GetAllTagEntitiesInternal(faqVM, tags);
                TagHelpers.SetTags <Faq, FaqTag>(tags, entity, allTagEntities);

                await _context.SaveChangesAsync();

                return(RedirectToAction("Details", new { Id = entity.Id }));
            }
            return(View(faqVM));
        }
示例#16
0
 public IActionResult Edit(FaqViewModel faq)
 {
     if (ModelState.IsValid)
     {
         Faq model       = _mapper.Map <FaqViewModel, Faq>(faq);
         Faq fagToUpdate = _faqRepository.GetFaqById(faq.Id);
         if (fagToUpdate == null)
         {
             return(NotFound());
         }
         _faqRepository.UpdateFaq(fagToUpdate, model);
         return(RedirectToAction("index"));
     }
     return(View(faq));
 }
示例#17
0
        public IActionResult Create([FromQuery] string category = null)
        {
            if (category.IsNull())
            {
                ViewData["Categories"] = new SelectList(_context.Categories, nameof(Category.Title), nameof(Category.Title));
            }
            else
            {
                ViewData["Categories"] = new SelectList(_context.Categories, nameof(Category.Title), nameof(Category.Title), category);
            }

            var vm = new FaqViewModel();

            vm.Category = new Category();
            return(View(vm));
        }
示例#18
0
        public async Task <IActionResult> FAQ(FaqViewModel model)
        {
            if (model.FaqSearchCriteria != null && !string.IsNullOrWhiteSpace(model.FaqSearchCriteria.SearchString))
            {
                model.PageNumber = 1;
                HttpContext.Session.SetObjectAsJson("FaqViewModel", model);
                model = await _faqViewModel.SearchFaqs(model);
            }
            else
            {
                HttpContext.Session.Remove("FaqViewModel");
                model.Faqs.CurrentPage = 1;
                model = await _faqViewModel.GetAllFaqs(model.Faqs.CurrentPage);
            }

            return(View(model));
        }
示例#19
0
        public ActionResult Save(FaqViewModel model)
        {
            if (ModelState.IsValid)
            {
                var response = GetCommand <SaveFaqCommand>().ExecuteCommand(model);
                if (response != null)
                {
                    if (model.Id.HasDefaultValue())
                    {
                        Messages.AddSuccess("Created successfully!");
                    }
                    return(WireJson(true, response));
                }
            }

            return(WireJson(false));
        }
示例#20
0
        public async Task <ActionResult> ModifyFaq(FaqViewModel faqViewModel)
        {
            ViewBag.LeftMenu = Global.Cs;

            //Faq 조회
            var scFaq = await _scFaqService.GetFaqAsync(faqViewModel.FaqSn);

            scFaq.QstTxt = faqViewModel.QstTxt;
            scFaq.AnsTxt = faqViewModel.AnsTxt;
            scFaq.QclSn  = faqViewModel.QclSn;
            scFaq.UpdDt  = DateTime.Now;
            scFaq.UpdId  = Session[Global.LoginID].ToString();

            await _scFaqService.SaveDbContextAsync();

            return(RedirectToAction("Faq", "Cs"));
        }
 public IActionResult Update(FaqViewModel faq)
 {
     if (ModelState.IsValid)
     {
         Faq model = _mapper.Map <FaqViewModel, Faq>(faq);
         model.ModifiedBy   = "System";
         model.ModifiedDate = DateTime.Now;
         Faq faqToUpdate = _faqRepository.GetFaqById(faq.Id);
         if (faqToUpdate == null)
         {
             return(NotFound());
         }
         _faqRepository.UpdateFaq(faqToUpdate, model);
         return(RedirectToAction("index"));
     }
     return(View(faq));
 }
示例#22
0
        public ActionResult Add(FaqViewModel model)
        {
            try
            {
                // apply mapping

                var faq = this.mapper.Map <Faq>(model);
                this.repositoryWrapper.Faq.Create(faq);
                this.repositoryWrapper.Save();
                this.loggerManager.LogInfo($"(Dashboard - FAQ) add new faq to database.");
                return(RedirectToAction(nameof(Index)));
            }
            catch (Exception ex)
            {
                this.loggerManager.LogError($"(Dashboard - FAQ) Something went wrong when try to add new faq: {ex.Message}");
                return(View());
            }
        }
示例#23
0
        public async Task <IActionResult> Update([FromForm] FaqViewModel faqViewModel)
        {
            if (faqViewModel.FaqId == null)
            {
                return(NotFound("Notfound"));
            }
            Faq faq = FaqViewModel.MapFaqViewModelToEntity(faqViewModel);
            // var updatedResult = await _faqService.UpdateAsync(faq, faqViewModel, Constants.EntityKey.FAQ_ID);
            // var updatedResult = await _faqService.UpdateAsync(faq, Constants.EntityKey.FAQ_ID, faq => faq.Question, faq => faq.Answer);
            // var updatedResult = await _faqService.UpdateAsync(faq, Constants.EntityKey.FAQ_ID);
            var updatedResult = await _faqService.UpdateAsync(faq);

            if (updatedResult.Item2)
            {
                return(Ok(updatedResult.Item1));
            }
            return(BadRequest());
        }
示例#24
0
        public async Task <IActionResult> Create([Bind("Category,Question,Answer,Tags")] FaqViewModel faqVM)
        {
            if (ModelState.IsValid)
            {
                var category = await _context
                               .Categories
                               .SingleOrDefaultAsync(c => c.Title.Equals(faqVM.Category.Title, StringComparison.OrdinalIgnoreCase));

                if (category.IsNotNull())
                {
                    faqVM.Category = category;
                }
                else
                {
                    faqVM.Category = new Category
                    {
                        Title = faqVM.Category.Title,
                        Url   = CustomUrlHelper.URLFriendly(faqVM.Category.Title),
                    };
                }

                var faq = new Faq
                {
                    Answer   = faqVM.Answer,
                    Category = faqVM.Category,
                    Question = faqVM.Question,
                    Url      = CustomUrlHelper.URLFriendly(faqVM.Question),
                };

                var tags           = TagHelpers.GetTagsFromString(faqVM.Tags);
                var allTagEntities = GetAllTagEntitiesInternal(faqVM, tags);
                TagHelpers.SetTags <Faq, FaqTag>(tags, faq, allTagEntities);

                await _context.AddAsync(faq);

                await _context.SaveChangesAsync();

                return(RedirectToAction("Details", new { Id = faq.Id }));
            }
            ViewData["Categories"] = new SelectList(_context.Categories, nameof(Category.Id), nameof(Category.Title));
            return(View(faqVM));
        }
示例#25
0
        public IActionResult Edit(FaqViewModel model)
        {
            if (ModelState.IsValid)
            {
                var faq         = _mapper.Map <FaqViewModel, Faq>(model);
                var faqToUpdate = _sectionRepository.GetFaqById(model.Id);

                if (faqToUpdate == null)
                {
                    return(NotFound());
                }

                faq.ModifiedBy = _admin.Fullname;

                _sectionRepository.UpdateFaq(faqToUpdate, faq);

                return(RedirectToAction("index"));
            }
            return(View(model));
        }
示例#26
0
        public async Task <ActionResult <Faq> > Create([FromForm] FaqViewModel faqViewModel)
        {
            if (faqViewModel == null)
            {
                return(NoContent());
            }
            if (ModelState.IsValid)
            {
                // var faq = FaqViewModel.MapFaqViewModelToEntity(faqViewModel);
                var faq           = _createFaqFromViewwModel.CreateMapping(faqViewModel);
                var createdResult = await _faqService.CreateAsync(faq);

                if (createdResult.Item2)
                {
                    return(Ok("Successfully created Faq!"));
                }
                return(BadRequest("Something went wrong when create Faq."));
            }
            return(BadRequest(ModelState));
        }
示例#27
0
        internal static void SetCategoryToCategoryViewModel(CategoryViewModel viewModel, Category model)
        {
            viewModel.Name          = model.Name;
            viewModel.Subcategories = new ObservableCollection <SubcategoryViewModel>();

            foreach (Subcategory subcategory in model.Subcategories)
            {
                SubcategoryViewModel subcategoryViewModel = new SubcategoryViewModel
                {
                    SubName = subcategory.Name,
                    Faqs    = new ObservableCollection <FaqViewModel>(),
                };
                foreach (Faq faq in subcategory.Faqs)
                {
                    FaqViewModel faqViewModel = new FaqViewModel
                    {
                        AnswerText = faq.AnswerText,
                        Question   = faq.Question
                    };
                    subcategoryViewModel.Faqs.Add(faqViewModel);
                }
                viewModel.Subcategories.Add(subcategoryViewModel);
            }
        }
示例#28
0
        public async Task <ActionResult> RegFaq(FaqViewModel faqViewModel)
        {
            ViewBag.LeftMenu = Global.Cs;

            var scFaq =
                Mapper.Map <ScFaq>(faqViewModel);

            scFaq.Stat  = "N";
            scFaq.RegDt = DateTime.Now;
            scFaq.RegId = Session[Global.LoginID].ToString();

            //Faq 등록
            int result = await _scFaqService.AddFaqAsync(scFaq);

            if (result != -1)
            {
                return(RedirectToAction("Faq", "Cs"));
            }
            else
            {
                ModelState.AddModelError("", "FAQ 등록 실패.");
                return(View(faqViewModel));
            }
        }
示例#29
0
 public FaqPage()
 {
     this.InitializeComponent();
     this.ViewModel   = new FaqViewModel();
     this.nfcListener = new NfcListener();
 }
示例#30
0
        public JsonResult Save(FaqViewModel model)
        {
            var currentUser = GetAuthenticatedUser();

            try
            {
                if (string.IsNullOrEmpty(model.question))
                {
                    return(Error("وارد کردن سوال اجباری است."));
                }

                if (string.IsNullOrEmpty(model.answer))
                {
                    return(Error("وارد کردن پاسخ اجباری است."));
                }

                if (model.id != null && model.id > 0)
                {
                    var entity = _context.Faq.Single(x => x.StatusId != FaqStatus.Deleted.Id && x.Id == model.id);
                    entity.FaqCategoryId = model.faqCategoryId;
                    entity.Order         = model.order;
                    entity.Question      = model.question.ToStandardPersian();
                    entity.Answer        = model.answer.ToStandardPersian();
                    entity.StatusId      = model.statusId;
                    entity.ModifyUserId  = currentUser.id;
                    entity.ModifyDate    = GetDatetime();
                    entity.ModifyIp      = GetCurrentIp();

                    _context.SaveChanges();

                    // تایید تمام فایل های جدید ذخیره شده در نقد و بررسی
                    VerifyHtmlImageFile(model.answer);

                    return(Success("اطلاعات سوال با موفقیت ویرایش شد."));
                }
                else
                {
                    var entity = new Faq()
                    {
                        FaqCategoryId = model.faqCategoryId,
                        Order         = model.order,
                        Question      = model.question.ToStandardPersian(),
                        Answer        = model.answer.ToStandardPersian(),
                        StatusId      = model.statusId,
                        CreateUserId  = currentUser.id,
                        ModifyUserId  = currentUser.id,
                        CreateDate    = GetDatetime(),
                        ModifyDate    = GetDatetime(),
                        CreateIp      = GetCurrentIp(),
                        ModifyIp      = GetCurrentIp()
                    };

                    _context.Faq.Add(entity);
                    _context.SaveChanges();

                    // تایید تمام فایل های جدید ذخیره شده در نقد و بررسی
                    VerifyHtmlImageFile(model.answer);

                    return(Success("سوال با موفقیت ایجاد شد."));
                }
            }
            catch (Exception ex)
            {
                return(ServerError(ex));
            }
        }