예제 #1
0
        private void ValidateCategoryProperties(IEnumerable <Category> categories)
        {
            if (categories == null)
            {
                throw new ArgumentNullException(nameof(categories));
            }
            //Validate categories
            var validator = new CategoryValidator();

            foreach (var category in categories)
            {
                validator.ValidateAndThrow(category);
            }

            var groups = categories.GroupBy(x => x.CatalogId);

            foreach (var group in groups)
            {
                LoadDependencies(group, PreloadCategories(group.Key));
                ApplyInheritanceRules(group);

                foreach (var category in group)
                {
                    var validatioResult = _hasPropertyValidator.Validate(category);
                    if (!validatioResult.IsValid)
                    {
                        throw new Exception($"Category properties has validation error: {string.Join(Environment.NewLine, validatioResult.Errors.Select(x => x.ToString()))}");
                    }
                }
            }
        }
예제 #2
0
        public Category(string name, decimal discount)
        {
            Name     = name;
            Discount = discount;

            var validator = new CategoryValidator();

            validator.ValidateAndThrow(this);
        }
        public void Execute(CategoryDto request)
        {
            _validator.ValidateAndThrow(request);
            var category = new Category
            {
                CategoryName = request.Name
            };

            _context.Categories.Add(category);

            _context.SaveChanges();
        }