public void ShouldHaveError_Name_isEmpty()
        {
            var validator = new EditCategoryValidator();
            var command   = CommandFactory.GetEditCategoryCommand(It.IsAny <int>(), "", "testDescr");

            validator.ShouldHaveValidationErrorFor(x => x.Name, command);
        }
        public void ShouldNotHaveError_Description_isSpecified()
        {
            var validator = new EditCategoryValidator();
            var command   = CommandFactory.GetEditCategoryCommand(It.IsAny <int>(), "TestName", "testDescr");

            validator.ShouldNotHaveValidationErrorFor(x => x.Description, command);
        }
        public void ShouldNotHaveError_Description_okLength()
        {
            string s         = CreateStringOfLength(200);
            var    validator = new EditCategoryValidator();
            var    command   = CommandFactory.GetEditCategoryCommand(It.IsAny <int>(), "TestName", s);

            validator.ShouldNotHaveValidationErrorFor(x => x.Description, command);
        }
Esempio n. 4
0
        public async Task <IActionResult> Edit(int id, CategoryViewModel categoryViewModel)
        {
            if (id != categoryViewModel.Category.CategoryId)
            {
                return(RedirectToAction("Error", "Home"));
            }
            Category checkCategoryName = await _context.Categories.SingleOrDefaultAsync(x => x.Name == categoryViewModel.Category.Name && x.CategoryId == categoryViewModel.Category.CategoryId);

            var result = new FluentValidation.Results.ValidationResult();//Bypass the name validator and didn't know how to do it any other way

            if (checkCategoryName != null)
            {
                var validator = new EditCategoryValidator();
                result = validator.Validate(categoryViewModel.Category);
            }
            else
            {
                var validator = new CategoryValidator(_context.Categories);
                result = validator.Validate(categoryViewModel.Category);
            }
            if (result.IsValid)
            {
                _context.Update(categoryViewModel.Category);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            else
            {
                foreach (var item in result.Errors)
                {
                    ModelState.AddModelError(string.Empty, item.ErrorMessage);
                }
            }
            categoryViewModel.Parents = new SelectList(_context.Categories.Where(x => x.ParentId == null), "CategoryId", "Name", categoryViewModel.Category.ParentId);
            return(View(categoryViewModel));
        }
 public EfEditCategoryCommand(BlogContext context, EditCategoryValidator validator, IMapper mapper)
 {
     _context   = context;
     _validator = validator;
     _mapper    = mapper;
 }