Kooboo.Commerce.Products.Product.SetCustomFields C# (CSharp) Méthode

SetCustomFields() public méthode

public SetCustomFields ( string>.IDictionary fieldValues ) : void
fieldValues string>.IDictionary
Résultat void
        public virtual void SetCustomFields(IDictionary<string, string> fieldValues)
        {
            foreach (var fieldValue in CustomFields.ToList())
            {
                if (!fieldValues.ContainsKey(fieldValue.FieldName))
                {
                    CustomFields.Remove(fieldValue);
                }
            }

            foreach (var fieldValue in fieldValues)
            {
                SetCustomField(fieldValue.Key, fieldValue.Value);
            }
        }

Usage Example

        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);
            }
        }