public SetImages ( IEnumerable |
||
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;
}
}
}
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); } }