Kooboo.Commerce.Products.Product.SetImages C# (CSharp) Method

SetImages() public method

public SetImages ( IEnumerable images ) : void
images IEnumerable
return void
        public virtual void SetImages(IEnumerable<ProductImage> images)
        {
            if (images == null)
            {
                Images.Clear();
            }

            var newImageList = images.ToList();

            foreach (var image in Images.ToList())
            {
                if (!newImageList.Any(i => i.Id == image.Id))
                {
                    Images.Remove(image);
                }
            }

            foreach (var image in newImageList)
            {
                var current = Images.FirstOrDefault(i => i.Id == image.Id);
                if (current == null)
                {
                    current = new ProductImage
                    {
                        Type = image.Type,
                        ImageUrl = image.ImageUrl
                    };
                    Images.Add(current);
                }
                else
                {
                    current.Type = image.Type;
                    current.ImageUrl = image.ImageUrl;
                }
            }
        }

Usage Example

Exemplo n.º 1
0
        private void UpdateProduct(Product product, ProductEditorModel model)
        {
            product.Name = model.Name;
            product.Brand = model.Brand == null ? null : _brandService.Find(model.Brand.Id);

            product.Categories.Clear();
            foreach (var category in model.Categories)
            {
                product.Categories.Add(_categoryService.Find(category.Id));
            }

            product.SetCustomFields(model.CustomFields);
            product.SetImages(model.Images);

            foreach (var variant in product.Variants.ToList())
            {
                if (!model.Variants.Any(v => v.Id == variant.Id))
                {
                    product.Variants.Remove(variant);
                }
            }

            foreach (var variantModel in model.Variants)
            {
                ProductVariant variant;

                if (variantModel.Id > 0)
                {
                    variant = product.Variants.FirstOrDefault(v => v.Id == variantModel.Id);
                }
                else
                {
                    variant = new ProductVariant();
                    product.Variants.Add(variant);
                }

                variant.Sku = variantModel.Sku;
                variant.Price = variantModel.Price;
                variant.SetVariantFields(variantModel.VariantFields);
            }
        }