예제 #1
0
        public IActionResult Edit(int id)
        {
            var forum = this.forumsService.GetById <ForumEditInputModel>(id);

            if (forum == null)
            {
                return(this.NotFound());
            }

            var categories = this.categoriesService.GetAllMissingByForumId <CategoryEditViewModel>(id).ToArray();

            var viewModel = new ForumAdministrationEditInputModel
            {
                Forum      = forum,
                Categories = categories,
            };

            return(this.View(viewModel));
        }
예제 #2
0
        public async Task <IActionResult> Edit(ForumAdministrationEditInputModel input)
        {
            if (!this.ModelState.IsValid)
            {
                var forum      = this.forumsService.GetById <ForumEditInputModel>(input.Id);
                var categories = this.categoriesService.GetAllMissingByForumId <CategoryEditViewModel>(input.Id).ToArray();

                input.Forum      = forum;
                input.Categories = categories;

                return(this.View(input));
            }

            var forumId = await this.forumsService.EditAsync(input.Id, input.Forum.Name, input.CategoryIds, input.AreSelected);

            if (forumId == -1)
            {
                return(this.NotFound());
            }

            if (forumId == 0)
            {
                this.ModelState.AddModelError(
                    "Forum.Name",
                    string.Format(GlobalConstants.CategoryNameAlreadyExistsErrorMessage, input.Forum.Name));
            }

            if (!this.ModelState.IsValid)
            {
                var forum      = this.forumsService.GetById <ForumEditInputModel>(input.Id);
                var categories = this.categoriesService.GetAllMissingByForumId <CategoryEditViewModel>(input.Id).ToArray();

                input.Forum      = forum;
                input.Categories = categories;

                return(this.View(input));
            }

            this.TempData["InfoMessage"] = "Forum edited successfully!";
            return(this.RedirectToAction(nameof(this.Index)));
        }