public ActionResult _AddOrUpdate(int _id=0)
 {
     var data = ProductAttribute.GetByID(_id);
     if (data == null)
         data = new ProductAttribute();
         data.ListAttributeExt = ProductAttribute.GetListAttribute(int.Parse(data.AttributeID.ToString()));
     return PartialView(data);
 }
Esempio n. 2
0
 protected void SaveButton_Click(object sender, EventArgs e)
 {
     if (Page.IsValid)
     {
         try
         {
             ProductAttribute productAttribute = ctrlProductAttributeInfo.SaveInfo();
             Response.Redirect("ProductAttributeDetails.aspx?ProductAttributeID=" + productAttribute.ProductAttributeID.ToString());
         }
         catch (Exception exc)
         {
             ProcessException(exc);
         }
     }
 }
Esempio n. 3
0
        public void UpdateLocales(ProductAttribute productAttribute, ProductAttributeModel model)
        {
            foreach (var localized in model.Locales)
            {
                _localizedEntityService.SaveLocalizedValue(productAttribute,
                                                           x => x.Name,
                                                           localized.Name,
                                                           localized.LanguageId);

                _localizedEntityService.SaveLocalizedValue(productAttribute,
                                                           x => x.Description,
                                                           localized.Description,
                                                           localized.LanguageId);
            }
        }
Esempio n. 4
0
        public virtual void UpdateProductAttribute(ProductAttribute productAttribute)
        {
            if (productAttribute == null)
            {
                throw new ArgumentNullException("productAttribute");
            }

            _productAttributeRepository.Update(productAttribute);

            _requestCache.RemoveByPattern(PRODUCTVARIANTATTRIBUTES_PATTERN_KEY);
            _requestCache.RemoveByPattern(PRODUCTVARIANTATTRIBUTEVALUES_PATTERN_KEY);

            //event notification
            _eventPublisher.EntityUpdated(productAttribute);
        }
        /// <returns>A task that represents the asynchronous operation</returns>
        protected virtual async Task UpdateLocalesAsync(ProductAttribute productAttribute, ProductAttributeModel model)
        {
            foreach (var localized in model.Locales)
            {
                await _localizedEntityService.SaveLocalizedValueAsync(productAttribute,
                                                                      x => x.Name,
                                                                      localized.Name,
                                                                      localized.LanguageId);

                await _localizedEntityService.SaveLocalizedValueAsync(productAttribute,
                                                                      x => x.Description,
                                                                      localized.Description,
                                                                      localized.LanguageId);
            }
        }
Esempio n. 6
0
        private void RemoveAttributes(Product product, string removedAttributeIds)
        {
            if (string.IsNullOrEmpty(removedAttributeIds))
            {
                return;
            }

            foreach (string removedAttributeId in removedAttributeIds.Split(','))
            {
                ProductAttribute productAttribute = this.Storage.GetRepository <IProductAttributeRepository>().WithKey(product.Id, int.Parse(removedAttributeId));

                this.Storage.GetRepository <IProductAttributeRepository>().Delete(productAttribute);
            }

            this.Storage.Save();
        }
Esempio n. 7
0
        public IActionResult AddProductAttribute([FromBody] ProductAttribute request)
        {
            var response = new OperationResponse <bool>();

            try
            {
                response.Data = _productService.AddProductAttribute(request);
            }
            catch (Exception exception)
            {
                response.State = ResponseState.Error;
                response.Messages.Add(exception.Message);
                _logger.LogError(exception, "Error in AddProductAttribute ==>" + exception.StackTrace, request);
            }
            return(new JsonResult(response));
        }
Esempio n. 8
0
        /// <summary>
        /// Inserts a product attribute
        /// </summary>
        /// <param name="productAttribute">Product attribute</param>
        public virtual void InsertProductAttribute(ProductAttribute productAttribute)
        {
            if (productAttribute == null)
            {
                throw new ArgumentNullException("productAttribute");
            }

            _productAttributeRepository.Insert(productAttribute);

            _cacheManager.RemoveByPattern(PRODUCTATTRIBUTES_PATTERN_KEY);
            _cacheManager.RemoveByPattern(PRODUCTVARIANTATTRIBUTES_PATTERN_KEY);
            _cacheManager.RemoveByPattern(PRODUCTVARIANTATTRIBUTEVALUES_PATTERN_KEY);

            //event notification
            _eventPublisher.EntityInserted(productAttribute);
        }
        public static ProductAttributeChange CreateWithLog(
            this ProductAttribute attribute,
            Guid userId,
            Action <ProductAttribute> action)
        {
            action(attribute);

            return(new ProductAttributeChange
            {
                AttributeId = attribute.Id,
                ChangerUserId = userId,
                CreateDateTime = DateTime.UtcNow,
                OldValueJson = string.Empty,
                NewValueJson = attribute.ToJsonString()
            });
        }
Esempio n. 10
0
        private void CreateAttributes(Product product)
        {
            foreach (string key in this.Request.Form.Keys)
            {
                if (key.StartsWith("newAttribute"))
                {
                    ProductAttribute productAttribute = new ProductAttribute();

                    productAttribute.ProductId   = product.Id;
                    productAttribute.AttributeId = int.Parse(key.Replace("newAttribute", string.Empty));
                    this.Storage.GetRepository <IProductAttributeRepository>().Create(productAttribute);
                }
            }

            this.Storage.Save();
        }
Esempio n. 11
0
        public void PrepareShoppingCartModel(ShoppingCartModel model,
                                             IList <ShoppingCartItem> cart, bool isEditable = true)
        {
            if (cart == null)
            {
                throw new ArgumentNullException("cart");
            }

            if (model == null)
            {
                throw new ArgumentNullException("model");
            }

            if (cart.Count == 0)
            {
                return;
            }

            #region 属性
            model.IsEditable    = isEditable;
            model.OrderFreeShip = _settingService.GetSettingByKey <decimal>(OrderSettingNames.OrderFreeShip);
            #endregion

            #region Cart items

            foreach (var sci in cart)
            {
                var product = _productService.GetProductById(sci.ProductId);
                ProductAttribute attribute = null;

                var cartItemModel = new ShoppingCartModel.ShoppingCartItemModel
                {
                    Id               = sci.Id,
                    ProductId        = product.Id,
                    ProductName      = product.Name,
                    Picture          = product.ProductImage,
                    Quantity         = sci.Quantity,
                    SubTotal         = sci.Quantity * sci.Price,
                    UnitPrice        = sci.Price,
                    ProductImage     = product.ProductImage,
                    MaxStockQuantity = product.StockQuantity,
                };
                model.Items.Add(cartItemModel);
            }

            #endregion
        }
Esempio n. 12
0
        protected void SaveLocalizableContent(ProductAttribute productAttribute)
        {
            if (productAttribute == null)
            {
                return;
            }

            if (!this.HasLocalizableContent)
            {
                return;
            }

            foreach (RepeaterItem item in rptrLanguageDivs.Items)
            {
                if (item.ItemType == ListItemType.Item || item.ItemType == ListItemType.AlternatingItem)
                {
                    var txtLocalizedName        = (TextBox)item.FindControl("txtLocalizedName");
                    var txtLocalizedDescription = (TextBox)item.FindControl("txtLocalizedDescription");
                    var lblLanguageId           = (Label)item.FindControl("lblLanguageId");

                    int    languageId  = int.Parse(lblLanguageId.Text);
                    string name        = txtLocalizedName.Text;
                    string description = txtLocalizedDescription.Text;

                    bool allFieldsAreEmpty = (string.IsNullOrEmpty(name) && string.IsNullOrEmpty(description));

                    var content = ProductAttributeManager.GetProductAttributeLocalizedByProductAttributeIdAndLanguageId(productAttribute.ProductAttributeId, languageId);
                    if (content == null)
                    {
                        if (!allFieldsAreEmpty && languageId > 0)
                        {
                            //only insert if one of the fields are filled out (avoid too many empty records in db...)
                            content = ProductAttributeManager.InsertProductAttributeLocalized(productAttribute.ProductAttributeId,
                                                                                              languageId, name, description);
                        }
                    }
                    else
                    {
                        if (languageId > 0)
                        {
                            content = ProductAttributeManager.UpdateProductAttributeLocalized(content.ProductAttributeLocalizedId, content.ProductAttributeId,
                                                                                              languageId, name, description);
                        }
                    }
                }
            }
        }
        public ActionResult InsertAttr(ProductAttribute pAttr)
        {
            dynamic result = new ExpandoObject();

            result.status  = true;
            result.message = "";
            if (pAttr.ProductID == 0 || pAttr.AttrID == 0 || String.IsNullOrEmpty(pAttr.Value))
            {
                result.status  = false;
                result.message = "Thiếu thuộc tính";
                return(Content(JsonConvert.SerializeObject(result), "application/json"));
            }
            var product = Repository.Product.FindById(pAttr.ProductID);
            var attr    = Repository.Create <WebBanHang.Models.Attribute>().FindById(pAttr.AttrID);

            if (product == null)
            {
                result.status  = false;
                result.message = "Không tồn tại sản phẩm";
                return(Content(JsonConvert.SerializeObject(result), "application/json"));
            }
            if (attr == null)
            {
                result.status  = false;
                result.message = "Không tồn thuộc tính";
                return(Content(JsonConvert.SerializeObject(result), "application/json"));
            }
            var existpAttr = product.ProductAttributes.Any(p => p.AttrID == pAttr.AttrID);

            if (existpAttr)
            {
                result.status  = false;
                result.message = "Sản phẩm đã có thuộc tính này";
                return(Content(JsonConvert.SerializeObject(result), "application/json"));
            }
            pAttr.Priority = 0;
            product.ProductAttributes.Add(pAttr);
            if (Repository.SaveChanges() == 0)
            {
                result.status  = false;
                result.message = "Lỗi xảy ra";
                return(Content(JsonConvert.SerializeObject(result), "application/json"));
            }
            result.status  = true;
            result.message = "Thêm thuộc tính thành công!!!";
            return(Content(JsonConvert.SerializeObject(result), "application/json"));
        }
        public static ProductAttribute CreateProductAttribute(string productAttributeTypeName,
                                                              string attributeName,
                                                              global::System.DateTimeOffset defaultDateTimeValue,
                                                              decimal defaultCurrencyValue,
                                                              decimal defaultDecimalValue,
                                                              int defaultIntegerValue)
        {
            ProductAttribute productAttribute = new ProductAttribute();

            productAttribute.ProductAttributeTypeName = productAttributeTypeName;
            productAttribute.AttributeName            = attributeName;
            productAttribute.DefaultDateTimeValue     = defaultDateTimeValue;
            productAttribute.DefaultCurrencyValue     = defaultCurrencyValue;
            productAttribute.DefaultDecimalValue      = defaultDecimalValue;
            productAttribute.DefaultIntegerValue      = defaultIntegerValue;
            return(productAttribute);
        }
        /// <summary>
        /// All the attribute term import stuff. Attributes Terms in Woo are Attributed Varieties to us. Could we have generalised this for each item import with an object?
        /// </summary>
        #region AttrbiuteStuff

        // Retrieve data from Woo
        async Task <List <ProductAttributeTerm> > GetWooAttributeTermData(ProductAttribute currProductAttribute)
        {
            WooAPISettings _wooAPISettings = new WooAPISettings(AppWooSettings);
            //
            //    ConsumerKey = WooSettingsModel.ConsumerKey,
            //    ConsumerSecret = WooSettingsModel.ConsumerSecret,
            //    QueryURL = WooSettingsModel.QueryURL,
            //    IsSecureURL = WooSettingsModel.IsSecureURL,
            //    JSONAPIPostFix = WooSettingsModel.JSONAPIPostFix,
            //    RootAPIPostFix = WooSettingsModel.RootAPIPostFix
            //};

            IWooProductAttributeTerm    _WooProductAttributeTerm = new WooProductAttributeTerm(_wooAPISettings, _Logger);
            List <ProductAttributeTerm> wooProductAttributeTerms = await _WooProductAttributeTerm.GetAttributeTermsByAtttribute(currProductAttribute);

            return(wooProductAttributeTerms);
        }
Esempio n. 16
0
        private ProductAttribute DataRowToProductAttribute(DataRow data)
        {
            if (data == null)
            {
                return(null);
            }

            var contact = new ProductAttribute();

            contact.Id        = new Guid(data["Id"].ToString());
            contact.LangName  = data["LangName"].ToString();
            contact.ValueType = (int)data["ValueType"];
            contact.IsNull    = (bool)data["IsNull"];
            contact.IsLock    = (bool)data["IsLock"];

            return(contact);
        }
Esempio n. 17
0
        public ActionResult Add_Attr(ProductAttribute model)
        {
            if (model.AttributeID == 0)
            {
                var addAttr = CatalogBLL.ProductAttribute_Add(model);
                return(RedirectToAction("Input", "Product", new { id = model.ProductID }));

                //return Content(addAttr.ToString());
            }
            else
            {
                var editAttr = CatalogBLL.ProductAttribute_Update(model);
                return(RedirectToAction("Input", "Product", new { id = model.ProductID }));

                //return Content(editAttr.ToString());
            }
        }
        async Task <Guid> AddOrUpdateItemAttribute(ProductAttribute pPA, Guid pWooMappedItemAttributeId)
        {
            Guid _ItemAttributeId = Guid.Empty;
            IAppRepository <ItemAttributeLookup> _ItemAttributeRepository = _AppUnitOfWork.Repository <ItemAttributeLookup>();
            // check if the Attribute exists
            ItemAttributeLookup _ItemAttribute = await _ItemAttributeRepository.FindFirstAsync(ic => ic.ItemAttributeLookupId == pWooMappedItemAttributeId);

            if (_ItemAttribute != null)
            {
                _ItemAttributeId = await UpdateItemAttribute(pPA, _ItemAttribute);
            }
            else
            {
                _ItemAttributeId = await AddOrGetIDItemAttribute(pPA);
            }
            return(_ItemAttributeId);
        }
Esempio n. 19
0
        private void BindData()
        {
            ProductVariantAttribute productVariantAttribute = ProductAttributeManager.GetProductVariantAttributeById(this.ProductVariantAttributeId);

            if (productVariantAttribute != null)
            {
                if (this.HasLocalizableContent)
                {
                    var languages = this.GetLocalizableLanguagesSupported();
                    rptrLanguageTabs.DataSource = languages;
                    rptrLanguageTabs.DataBind();
                    rptrLanguageDivs.DataSource = languages;
                    rptrLanguageDivs.DataBind();
                }

                ProductVariant productVariant = productVariantAttribute.ProductVariant;
                if (productVariant == null)
                {
                    Response.Redirect("Products.aspx");
                }
                ProductAttribute productAttribute = productVariantAttribute.ProductAttribute;
                if (productAttribute == null)
                {
                    Response.Redirect("Products.aspx");
                }

                this.lblTitle.Text            = string.Format(GetLocaleResourceString("Admin.ProductVariantAttributeValues.AddEdit"), Server.HtmlEncode(productAttribute.Name), Server.HtmlEncode(productVariant.FullProductName));
                this.hlProductURL.NavigateUrl = CommonHelper.GetStoreAdminLocation() + "ProductVariantDetails.aspx?ProductVariantID=" + productVariant.ProductVariantId;

                var productVariantAttributeValues = ProductAttributeManager.GetProductVariantAttributeValues(productVariantAttribute.ProductVariantAttributeId);
                if (productVariantAttributeValues.Count > 0)
                {
                    this.gvProductVariantAttributeValues.Visible    = true;
                    this.gvProductVariantAttributeValues.DataSource = productVariantAttributeValues;
                    this.gvProductVariantAttributeValues.DataBind();
                }
                else
                {
                    this.gvProductVariantAttributeValues.Visible = false;
                }
            }
            else
            {
                Response.Redirect("Products.aspx");
            }
        }
Esempio n. 20
0
        //string _wooOrderBy = "menu_order";
        //switch (v.ToLower())
        //{
        //    case "id":   // OrderBys.Id.ToString().ToLower():
        //        _wooOrderBy = "id";
        //        break;
        //    case "name":  //OrderBys.Name
        //        _wooOrderBy = "name";
        //        break;

        //    case "number":  //OrderBys.Number
        //        _wooOrderBy = "name_num";
        //        break;

        //    default:
        //        break;
        //}
        //return _wooOrderBy;
        private async Task <ProductAttribute> AddItemToWooOnlySync(ItemAttributeLookup addEntity)
        {
            IWooProductAttribute _wooProductAttributeRepository = await GetIWooProductAttribute();

            if (_wooProductAttributeRepository == null)
            {
                return(null);
            }

            ProductAttribute _wooProductAttribute = new ProductAttribute
            {
                name     = addEntity.AttributeName,
                order_by = ConvertToWooOrderBy(addEntity.OrderBy),
            };

            return(await _wooProductAttributeRepository.AddProductAttributeAsync(_wooProductAttribute));  // should return a new version with ID
        }
        public async Task <int> CreateAsync(ProductAttributeModifyRequest productAttribute)
        {
            var newProductAttribute = new ProductAttribute
            {
                Description = productAttribute.Description,
                Name        = productAttribute.Name,
                StatusId    = ProductAttributeStatus.Actived.GetCode(),
                CreatedById = productAttribute.CreatedById,
                UpdatedById = productAttribute.UpdatedById,
                UpdatedDate = DateTime.UtcNow,
                CreatedDate = DateTime.UtcNow,
            };

            var id = await _productAttributeRepository.AddWithInt32EntityAsync(newProductAttribute);

            return(id);
        }
Esempio n. 22
0
        public IActionResult Create(ProductPictureModifierModel model, bool continueEditing)
        {
            if (!_permissionService.Authorize(StandardPermissionProvider.ManageWidgets))
            {
                return(AccessDeniedView());
            }

            //todo find out why model state validation failed even though product id is only validated and model has product id
            if (model.ProductId < 1)
            {
                ModelState.AddModelError(nameof(model.ProductId),
                                         _localizationService.GetResource("Admin.Widgets.ProductPictureModifier.Fields.Product.Required"));
                return(View("~/Plugins/Widgets.ProductPictureModifier/Views/Admin/Create.cshtml", model));
            }

            ProductAttribute productAttribute = _productPictureModifierService.
                                                GetProductAttributeByName(ProductPictureModifierDefault.ProductAttributeName).First();

            var productAttributeMapping = new ProductAttributeMapping
            {
                ProductAttributeId     = productAttribute.Id,
                ProductId              = model.ProductId,
                DefaultValue           = model.ColorCode,
                AttributeControlTypeId = (int)AttributeControlType.TextBox
            };

            _productAttributeService.InsertProductAttributeMapping(productAttributeMapping);

            //Logo Default Value
            _logoPositionService.Insert(new LogoPosition
            {
                ProductId = model.ProductId,
                ColorCode = model.ColorCode
            });
            //Clear the cache for product picture preparation
            _cacheManager.RemoveByPattern(string.Format(ModelCacheEventConsumer.PRODUCT_DEFAULTPICTURE_PATTERN_KEY_BY_ID, model.ProductId));

            SuccessNotification(_localizationService.GetResource("Widgets.ProductPictureModifier.Mapping.Created"));

            if (!continueEditing)
            {
                return(RedirectToAction("Configure"));
            }

            return(RedirectToAction("Edit", new { id = productAttributeMapping.Id }));
        }
        public IActionResult Post([FromBody] ProductAttributeFormVm model)
        {
            if (ModelState.IsValid)
            {
                var productAttribute = new ProductAttribute
                {
                    Name    = model.Name,
                    GroupId = model.GroupId
                };

                _productAttrRepository.Add(productAttribute);
                _productAttrRepository.SaveChanges();

                return(Ok());
            }
            return(BadRequest(ModelState));
        }
Esempio n. 24
0
        public static ResponseViewModel <ProductAttribute> UpdateProductAttribute(ProductAttributeViewModel viewModel)
        {
            ResponseViewModel <ProductAttribute> responseViewModel = new ResponseViewModel <ProductAttribute>();

            using (EcommerceEntities entities = new EcommerceEntities())
            {
                ProductAttribute productAtributeDb = entities.ProductAttributes.Where(entry => entry.ID == viewModel.ID).FirstOrDefault();
                productAtributeDb.Name = viewModel.attributeName;
                productAtributeDb.ProductCategoryID    = viewModel.productCategoryId;
                productAtributeDb.ProductSubCategoryID = viewModel.productSubCategoryId;
                entities.SaveChanges();
                ProductAttributeManager.AddOption(viewModel.options, productAtributeDb.ID);
                responseViewModel.Data = productAtributeDb;
                entities.SaveChanges();
                return(responseViewModel);
            }
        }
Esempio n. 25
0
        private async Task MergeGiftsAsync(AbcMattressModel model, ProductAttribute pa, Product product)
        {
            var displayOrder = 50;
            var pam          = (await _productAttributeService.GetProductAttributeMappingsByProductIdAsync(product.Id))
                               .Where(pam => pam.ProductAttributeId == pa.Id && pam.DisplayOrder == displayOrder)
                               .FirstOrDefault();
            var modelHasGifts = _abcMattressGiftService.GetAbcMattressGiftsByModelId(model.Id).Any();

            if (pam == null && modelHasGifts)
            {
                pam = new ProductAttributeMapping()
                {
                    ProductId            = product.Id,
                    ProductAttributeId   = pa.Id,
                    IsRequired           = false,
                    AttributeControlType = AttributeControlType.DropdownList,
                    DisplayOrder         = displayOrder
                };
                await _productAttributeService.InsertProductAttributeMappingAsync(pam);
            }
            else if (pam != null && !modelHasGifts)
            {
                await _productAttributeService.DeleteProductAttributeMappingAsync(pam);
            }

            if (!modelHasGifts)
            {
                return;
            }

            var existingGifts = (await _productAttributeService.GetProductAttributeValuesAsync(pam.Id))
                                .Where(pav =>
                                       pav.ProductAttributeMappingId == pam.Id
                                       );
            var gifts    = _abcMattressGiftService.GetAbcMattressGiftsByModelId(model.Id);
            var newGifts = gifts.Select(g => g.ToProductAttributeValue(pam.Id)).ToList();

            var toBeDeleted = existingGifts
                              .Where(e => !newGifts.Any(n => n.Name == e.Name && n.DisplayOrder == e.DisplayOrder));
            var toBeInserted = newGifts
                               .Where(n => !existingGifts.Any(e => n.Name == e.Name && n.DisplayOrder == e.DisplayOrder));

            toBeInserted.ToList().ForEach(async n => await _productAttributeService.InsertProductAttributeValueAsync(n));
            toBeDeleted.ToList().ForEach(async e => await _productAttributeService.DeleteProductAttributeValueAsync(e));
        }
        /// <summary>
        /// Inserts a product attribute
        /// </summary>
        /// <param name="productAttribute">Product attribute</param>
        public virtual async Task InsertProductAttribute(ProductAttribute productAttribute)
        {
            if (productAttribute == null)
            {
                throw new ArgumentNullException("productAttribute");
            }

            await _productAttributeRepository.InsertAsync(productAttribute);

            //cache
            _cacheManager.RemoveByPattern(PRODUCTATTRIBUTES_PATTERN_KEY);
            _cacheManager.RemoveByPattern(PRODUCTATTRIBUTEMAPPINGS_PATTERN_KEY);
            _cacheManager.RemoveByPattern(PRODUCTATTRIBUTEVALUES_PATTERN_KEY);
            _cacheManager.RemoveByPattern(PRODUCTATTRIBUTECOMBINATIONS_PATTERN_KEY);

            //event notification
            await _eventPublisher.EntityInserted(productAttribute);
        }
Esempio n. 27
0
        /// <summary>
        /// Updates the product attribute
        /// </summary>
        /// <param name="productAttribute">Product attribute</param>
        public virtual void UpdateProductAttribute(ProductAttribute productAttribute)
        {
            if (productAttribute == null)
            {
                throw new ArgumentNullException("productAttribute");
            }

            _productAttributeRepository.Update(productAttribute);

            //cache
            _cacheManager.GetCache(CACHE_NAME_PRODUCTATTRIBUTES).Clear();
            _cacheManager.GetCache(CACHE_NAME_PRODUCTATTRIBUTEMAPPINGS).Clear();
            _cacheManager.GetCache(CACHE_NAME_PRODUCTATTRIBUTEVALUES).Clear();
            _cacheManager.GetCache(CACHE_NAME_PRODUCTATTRIBUTECOMBINATIONS).Clear();

            //event notification
            //_eventPublisher.EntityUpdated(productAttribute);
        }
        /// <summary>
        /// Updates the product attribute
        /// </summary>
        /// <param name="productAttribute">Product attribute</param>
        public virtual void UpdateProductAttribute(ProductAttribute productAttribute)
        {
            if (productAttribute == null)
            {
                throw new ArgumentNullException("productAttribute");
            }

            _productAttributeRepository.Update(productAttribute);

            //cache
            _cacheManager.RemoveByPattern(PRODUCTATTRIBUTES_PATTERN_KEY);
            _cacheManager.RemoveByPattern(PRODUCTATTRIBUTEMAPPINGS_PATTERN_KEY);
            _cacheManager.RemoveByPattern(PRODUCTATTRIBUTEVALUES_PATTERN_KEY);
            _cacheManager.RemoveByPattern(PRODUCTATTRIBUTECOMBINATIONS_PATTERN_KEY);

            //event notification
            _eventPublisher.EntityUpdated(productAttribute);
        }
Esempio n. 29
0
 public ProductAttributeEntity(ProductAttribute ProductAttribute, params object[] args) : base(ProductAttribute)
 {
     foreach (object arg in args)
     {
         if (arg is Category Category)
         {
             CategoryEntity = new CategoryEntity(Category);
         }
         if (arg is ICollection <ProductAttributeName> ProductAttributeNames)
         {
             ProductAttributeNameEntities = ProductAttributeNames.Select(model => new ProductAttributeNameEntity(model, model.Language)).ToList();
         }
         if (arg is ICollection <ProductValue> ProductValues)
         {
             ProductValueEntities = ProductValues.Select(model => new ProductValueEntity(model, model.Language, model.Product)).ToList();
         }
     }
 }
Esempio n. 30
0
        /// <summary>
        /// Deletes a product attribute
        /// </summary>
        /// <param name="productAttribute">Product attribute</param>
        public virtual void DeleteProductAttribute(ProductAttribute productAttribute)
        {
            if (productAttribute == null)
            {
                throw new ArgumentNullException(nameof(productAttribute));
            }

            _productAttributeRepository.Delete(productAttribute);

            //cache
            _cacheManager.RemoveByPattern(NopCatalogDefaults.ProductAttributesPatternCacheKey);
            _cacheManager.RemoveByPattern(NopCatalogDefaults.ProductAttributeMappingsPatternCacheKey);
            _cacheManager.RemoveByPattern(NopCatalogDefaults.ProductAttributeValuesPatternCacheKey);
            _cacheManager.RemoveByPattern(NopCatalogDefaults.ProductAttributeCombinationsPatternCacheKey);

            //event notification
            _eventPublisher.EntityDeleted(productAttribute);
        }
Esempio n. 31
0
        public ProductAttribute SaveInfo()
        {
            ProductAttribute productAttribute = ProductAttributeManager.GetProductAttributeById(this.ProductAttributeId, 0);

            if (productAttribute != null)
            {
                productAttribute = ProductAttributeManager.UpdateProductAttribute(productAttribute.ProductAttributeId,
                                                                                  txtName.Text, txtDescription.Text);
            }
            else
            {
                productAttribute = ProductAttributeManager.InsertProductAttribute(txtName.Text, txtDescription.Text);
            }

            SaveLocalizableContent(productAttribute);

            return(productAttribute);
        }
Esempio n. 32
0
    /// <summary>
    /// Submit button click event
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void btnSubmit_Click(object sender, EventArgs e)
    {
        //Declarations
        AttributeTypeAdmin _AdminAccess = new AttributeTypeAdmin();
        ProductAttribute  _ProductAttribute = new  ProductAttribute();

        //Check for Edit Mode
        if (AttributeID > 0)
        {
            _ProductAttribute = _AdminAccess.GetByAttributeID(AttributeID);
        }

        //Set Values
        _ProductAttribute.Name = Name.Text.Trim();
        _ProductAttribute.DisplayOrder = int.Parse(DisplayOrder.Text.Trim());
        _ProductAttribute.AttributeTypeId = ItemID;
        _ProductAttribute.ExternalId = null;
        _ProductAttribute.OldAttributeId = null;
        _ProductAttribute.IsActive = true;

        bool status = false;

        if (AttributeID > 0)
        {
            //Update Product Attribute
            status = _AdminAccess.UpdateProductAttribute(_ProductAttribute);
        }
        else
        {
            status = _AdminAccess.AddProductAttribute(_ProductAttribute);
        }

        if (status)
        {
            //redirect to main page
            Response.Redirect(viewLink + ItemID);
        }
        else
        {
            //display error message
            lblError.Text = "An error occurred while updating. Please try again.";
        }
    }
Esempio n. 33
0
 public static ProductAttribute CreateProductAttribute(string ID)
 {
     ProductAttribute productAttribute = new ProductAttribute();
     productAttribute.Id = ID;
     return productAttribute;
 }
Esempio n. 34
0
 public void AddToProductAttributes(ProductAttribute productAttribute)
 {
     base.AddObject("ProductAttributes", productAttribute);
 }