public async Task <IActionResult> Delete(TutorialPostDto tutorialPostDto, int categoryId)
        {
            var response = await _tutorialPostService.DeleteAsync(tutorialPostDto.Id);

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

            if (response.Success)
            {
                return(RedirectToAction(nameof(Index), new { categoryId = categoryId }));
            }

            ModelState.AddModelError(response.ModelStateErrorKey, response.Message);
            return(View(tutorialPostDto));
        }
Beispiel #2
0
        public async Task <TutorialPostViewModel> GetEditPostViewModel(int id, TutorialPostDto editedPost = null)
        {
            var postToEdit = await _unitOfWork.TutorialPosts.FindByIdAsync(id);

            if (postToEdit == null)
            {
                return(null);
            }
            var category = await GetCategoryAsync(postToEdit.TutorialCategoryId);

            if (category == null)
            {
                return(null);
            }

            var tags = await _unitOfWork.Tags.GetAllAsync();

            var courses = await _unitOfWork.Courses.GetAllAsync();

            var post = _mapper.Map <TutorialPostDto>(postToEdit);

            if (editedPost != null)
            {
                post = editedPost;
            }
            var viewModel = new TutorialPostViewModel()
            {
                CategoryName = category.Name,
                Post         = post,
                Tags         = tags.ToList(),
                Courses      = courses.Select(course => new CourseDto()
                {
                    Id = course.Id, Name = course.Name
                }).ToList(),
            };

            return(viewModel);
        }
Beispiel #3
0
        public async Task <TutorialPostViewModel> GetNewPostViewModel(int categoryId, TutorialPostDto existingPost = null)
        {
            var category = await GetCategoryAsync(categoryId);

            if (category == null)
            {
                return(null);
            }

            var tags = await _unitOfWork.Tags.GetAllAsync();

            var courses = await _unitOfWork.Courses.GetAllAsync();

            var post = new TutorialPostDto()
            {
                Category = _mapper.Map <TutorialCategoryDto>(category)
            };

            if (existingPost != null)
            {
                existingPost.Category = post.Category;
                post = existingPost;
            }
            var viewModel = new TutorialPostViewModel()
            {
                CategoryName = category.Name,
                Post         = post,
                Tags         = tags.ToList(),
                Courses      = courses.Select(course => new CourseDto()
                {
                    Id = course.Id, Name = course.Name
                }).ToList(),
            };

            return(viewModel);
        }
Beispiel #4
0
        private async Task <bool> IsUrlUniqueInCategory(TutorialPostDto post)
        {
            var existingPost = await _unitOfWork.TutorialPosts.FindFirstOrDefaultAsync(x => x.UrlTitle == post.UrlTitle);

            return(existingPost == null || existingPost?.Id == post.Id);
        }