public async Task <IActionResult> Delete(TutorialCategoryDto categoryDto)
        {
            var response = await _tutorialCategoryService.DeleteAsync(categoryDto.Id);

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

            if (response.Success)
            {
                return(RedirectToAction(nameof(Index)));
            }

            ModelState.AddModelError(response.ModelStateErrorKey, response.Message);
            return(View(categoryDto));
        }
        public async Task <IActionResult> New(TutorialCategoryDto categoryDto)
        {
            if (!ModelState.IsValid)
            {
                return(View(categoryDto));
            }

            var newCategory = _mapper.Map <TutorialCategory>(categoryDto);
            var response    = await _tutorialCategoryService.CreateAsync(newCategory);

            if (response.Success)
            {
                return(RedirectToAction(nameof(Index)));
            }

            ModelState.AddModelError(response.ModelStateErrorKey, response.Message);
            return(View(categoryDto));
        }
        public async Task <TutorialCategoryResponse> UpdateAsync(TutorialCategoryDto categoryDto)
        {
            try
            {
                var categoryToUpdate = await FindByIdAsync(categoryDto.Id);

                if (categoryToUpdate == null)
                {
                    return(null);
                }
                _mapper.Map(categoryDto, categoryToUpdate);
                await _unitOfWork.SaveAsync();

                return(new TutorialCategoryResponse(categoryToUpdate));
            }
            catch (DbUpdateException sqlEx) when(sqlEx.InnerException.HResult == (-2146232060))
            {
                return(new TutorialCategoryResponse($"Zadane url již existuje", "UrlTitle"));
            }
            catch (Exception ex)
            {
                return(new TutorialCategoryResponse($"An error occurred when updating the category: {ex.Message}", ""));
            }
        }