Example #1
0
        public void ContributeTo(ProductBuildingContext context)
        {
            if (context == null)
            {
                throw new ArgumentNullException("context");
            }
            if (context.ProductViewData.CategoryIds.Count == 0)
            {
                context.ModelStateDictionary.AddModelError("CategoryIds", "You must select at least one category");
                return;
            }

            var newIds      = context.ProductViewData.CategoryIds;
            var existingIds = context.Product.ProductCategories.Select(x => x.Category.Id);

            var idsToAdd    = newIds.Where(newId => !existingIds.Any(existingId => existingId == newId));
            var idsToDelete = existingIds.Where(existingId => !newIds.Any(newId => newId == existingId));

            var categoriesToDelete = (from productCategory in context.Product.ProductCategories
                                      let category = productCategory.Category
                                                     from id in idsToDelete
                                                     where id == category.Id
                                                     select category).ToList();

            foreach (var category in categoriesToDelete)
            {
                context.Product.RemoveCategory(category);
            }

            foreach (var newId in idsToAdd)
            {
                var category = categoryRepository.GetById(newId);
                context.Product.AddCategory(category);
            }
        }
Example #2
0
        public void ContributeTo(ProductBuildingContext context)
        {
            if (context == null)
            {
                throw new ArgumentNullException("context");
            }
            if (context.ProductViewData.CategoryIds.Count == 0)
            {
                context.ModelStateDictionary.AddModelError("CategoryIds", "You must select at least one category");
                return;
            }

            var newIds = context.ProductViewData.CategoryIds;
            var existingIds = context.Product.ProductCategories.Select(x => x.Category.Id);

            var idsToAdd = newIds.Where(newId => !existingIds.Any(existingId => existingId == newId));
            var idsToDelete = existingIds.Where(existingId => !newIds.Any(newId => newId == existingId));

            var categoriesToDelete = (from productCategory in context.Product.ProductCategories
                                     let category = productCategory.Category
                                     from id in idsToDelete
                                     where id == category.Id
                                     select category).ToList();

            foreach (var category in categoriesToDelete)
            {
                context.Product.RemoveCategory(category);
            }

            foreach (var newId in idsToAdd)
            {
                var category = categoryRepository.GetById(newId);
                context.Product.AddCategory(category);
            }
        }
Example #3
0
 public void ContributeTo(ProductBuildingContext context)
 {
     if (context.ProductViewData.ProductId == 0)
     {
         return;
     }
     context.SetProduct(productRepository.GetById(context.ProductViewData.ProductId));
 }
Example #4
0
 public void ContributeTo(ProductBuildingContext context)
 {
     if (context == null)
     {
         throw new ArgumentNullException("context");
     }
     if (context.ProductViewData.ProductId == 0) return;
     context.Product.Position = productOrderableService.NextPosition;
 }
Example #5
0
        public void SetUp()
        {
            DomainEvent.TurnOff();

            context = new ProductBuildingContext(
                new ProductViewData(),
                new ModelStateDictionary(),
                MockRepository.GenerateStub <HttpRequestBase>());

            contributor = InitContributor();
        }
Example #6
0
        public void ContributeTo(ProductBuildingContext context)
        {
            var viewData = context.ProductViewData;
            var productWithNameAlreadyExists =
                productRepository.GetAll().Any(x => x.Id != viewData.ProductId && x.Name == viewData.Name);

            if (!productWithNameAlreadyExists) return;

            context.ModelStateDictionary.AddModelError("ProductId",
                "Product names must be unique and there is already a product called '{0}'".With(viewData.Name));
        }
 public void ContributeTo(ProductBuildingContext context)
 {
     if (context == null)
     {
         throw new ArgumentNullException("context");
     }
     if (context.ProductViewData.ProductId == 0)
     {
         var product = new Product();
         context.SetProduct(product);
     }
 }
Example #8
0
 public void ContributeTo(ProductBuildingContext context)
 {
     if (context == null)
     {
         throw new ArgumentNullException("context");
     }
     if (context.ProductViewData.ProductId == 0)
     {
         var product = new Product();
         context.SetProduct(product);
     }
 }
Example #9
0
 public void ContributeTo(ProductBuildingContext context)
 {
     if (context == null)
     {
         throw new ArgumentNullException("context");
     }
     if (context.ProductViewData.ProductId != 0)
     {
         return;
     }
     context.Product.Position = productOrderableService.NextPosition;
 }
Example #10
0
        public void ContributeTo(ProductBuildingContext context)
        {
            var viewData = context.ProductViewData;
            var productWithNameAlreadyExists =
                productRepository.GetAll().Any(x => x.Id != viewData.ProductId && x.Name == viewData.Name);

            if (!productWithNameAlreadyExists)
            {
                return;
            }

            context.ModelStateDictionary.AddModelError("ProductId",
                                                       "Product names must be unique and there is already a product called '{0}'".With(viewData.Name));
        }
Example #11
0
        public void ContributeTo(ProductBuildingContext context)
        {
            IEnumerable<Image> images = null;
            if (Validator.ValidateFails(context.ModelStateDictionary, () =>
                images = httpFileService.GetUploadedImages(context.HttpRequestBase, ImageDefinition.ProductImage, ImageDefinition.ProductThumbnail)
            )) return;

            var position = productOrderableService.NextPosition;
            foreach (var image in images)
            {
                context.Product.AddProductImage(image, position);
                position++;
            }            
        }
Example #12
0
        public void ContributeTo(ProductBuildingContext context)
        {
            if (context == null)
            {
                throw new ArgumentNullException("context");
            }

            var product  = context.Product;
            var viewData = context.ProductViewData;

            product.Name        = viewData.Name;
            product.Weight      = viewData.Weight;
            product.Price       = viewData.Price;
            product.IsActive    = viewData.IsActive;
            product.Description = viewData.Description;
        }
        public void ContributeTo(ProductBuildingContext context)
        {
            if (context == null)
            {
                throw new ArgumentNullException("context");
            }

            var product = context.Product;
            var viewData = context.ProductViewData;

            product.Name = viewData.Name;
            product.Weight = viewData.Weight;
            product.Price = viewData.Price;
            product.IsActive = viewData.IsActive;
            product.Description = viewData.Description;
        }
Example #14
0
 public void ContributeTo(ProductBuildingContext context)
 {
     if (context == null)
     {
         throw new ArgumentNullException("context");
     }
     if (context.Product.DefaultSizeMissing)
     {
         context.Product.AddDefaultSize();
     }
     context.ProductViewData.Sizes
     .Where(size => !string.IsNullOrEmpty(size))
     .ForEach(size => context.Product.AddSize(new Size
     {
         Name      = size,
         IsActive  = true,
         IsInStock = true
     }));
 }
Example #15
0
        public void ContributeTo(ProductBuildingContext context)
        {
            IEnumerable <Image> images = null;

            if (Validator.ValidateFails(context.ModelStateDictionary, () =>
                                        images = httpFileService.GetUploadedImages(context.HttpRequestBase, ImageDefinition.ProductImage, ImageDefinition.ProductThumbnail)
                                        ))
            {
                return;
            }

            var position = productOrderableService.NextPosition;

            foreach (var image in images)
            {
                context.Product.AddProductImage(image, position);
                position++;
            }
        }
Example #16
0
 public void ContributeTo(ProductBuildingContext context)
 {
     if (context == null)
     {
         throw new ArgumentNullException("context");
     }
     if (context.Product.DefaultSizeMissing)
     {
         context.Product.AddDefaultSize();
     }
     context.ProductViewData.Sizes
         .Where(size => !string.IsNullOrEmpty(size))
         .ForEach(size => context.Product.AddSize(new Size
         {
             Name = size, 
             IsActive = true, 
             IsInStock = true
         }));
 }
Example #17
0
 public void ContributeTo(ProductBuildingContext context)
 {
     if (context.ProductViewData.ProductId == 0) return;
     context.SetProduct(productRepository.GetById(context.ProductViewData.ProductId));
 }
Example #18
0
 public void ContributeTo(ProductBuildingContext context)
 {
     contextAction(context);
 }