/// <summary>
        /// Deletes a specification attribute option
        /// </summary>
        /// <param name="specificationAttributeOption">The specification attribute option</param>
        public virtual async Task DeleteSpecificationAttributeOption(SpecificationAttributeOption specificationAttributeOption)
        {
            if (specificationAttributeOption == null)
            {
                throw new ArgumentNullException(nameof(specificationAttributeOption));
            }

            //delete from all product collections
            await _productRepository.PullFilter(string.Empty, x => x.ProductSpecificationAttributes, z => z.SpecificationAttributeOptionId, specificationAttributeOption.Id, true);

            var specificationAttribute = await GetSpecificationAttributeByOptionId(specificationAttributeOption.Id);

            var sao = specificationAttribute.SpecificationAttributeOptions.Where(x => x.Id == specificationAttributeOption.Id).FirstOrDefault();

            if (sao == null)
            {
                throw new ArgumentException("No specification attribute option found with the specified id");
            }

            specificationAttribute.SpecificationAttributeOptions.Remove(sao);
            await UpdateSpecificationAttribute(specificationAttribute);

            //clear cache
            await _cacheBase.RemoveByPrefix(CacheKey.SPECIFICATION_PATTERN_KEY);

            await _cacheBase.RemoveByPrefix(CacheKey.PRODUCTS_PATTERN_KEY);

            //event notification
            await _mediator.EntityDeleted(specificationAttributeOption);
        }
        /// <summary>
        /// Deletes a specification attribute option
        /// </summary>
        /// <param name="specificationAttributeOption">The specification attribute option</param>
        public virtual void DeleteSpecificationAttributeOption(SpecificationAttributeOption specificationAttributeOption)
        {
            if (specificationAttributeOption == null)
            {
                throw new ArgumentNullException("specificationAttributeOption");
            }

            var builder      = Builders <Product> .Update;
            var updatefilter = builder.PullFilter(x => x.ProductSpecificationAttributes,
                                                  y => y.SpecificationAttributeId == specificationAttributeOption.SpecificationAttributeId &&
                                                  y.SpecificationAttributeOptionId == specificationAttributeOption.Id);
            var result = _productRepository.Collection.UpdateManyAsync(new BsonDocument(), updatefilter).Result;

            var specificationAttribute = GetSpecificationAttributeById(specificationAttributeOption.SpecificationAttributeId);
            var sao = specificationAttribute.SpecificationAttributeOptions.Where(x => x.Id == specificationAttributeOption.Id).FirstOrDefault();

            if (sao == null)
            {
                throw new ArgumentException("No specification attribute option found with the specified id");
            }

            specificationAttribute.SpecificationAttributeOptions.Remove(sao);
            UpdateSpecificationAttribute(specificationAttribute);

            _cacheManager.RemoveByPattern(PRODUCTS_PATTERN_KEY);
            _cacheManager.RemoveByPattern(PRODUCTSPECIFICATIONATTRIBUTE_PATTERN_KEY);

            //event notification
            _eventPublisher.EntityDeleted(specificationAttributeOption);
        }
예제 #3
0
        /// <summary>
        /// Deletes a specification attribute option
        /// </summary>
        /// <param name="specificationAttributeOption">The specification attribute option</param>
        public virtual async Task DeleteSpecificationAttributeOption(SpecificationAttributeOption specificationAttributeOption)
        {
            if (specificationAttributeOption == null)
            {
                throw new ArgumentNullException(nameof(specificationAttributeOption));
            }

            var builder      = Builders <Product> .Update;
            var updatefilter = builder.PullFilter(x => x.ProductSpecificationAttributes,
                                                  y => y.SpecificationAttributeOptionId == specificationAttributeOption.Id);
            await _productRepository.Collection.UpdateManyAsync(new BsonDocument(), updatefilter);

            var specificationAttribute = await GetSpecificationAttributeByOptionId(specificationAttributeOption.Id);

            var sao = specificationAttribute.SpecificationAttributeOptions.Where(x => x.Id == specificationAttributeOption.Id).FirstOrDefault();

            if (sao == null)
            {
                throw new ArgumentException("No specification attribute option found with the specified id");
            }

            specificationAttribute.SpecificationAttributeOptions.Remove(sao);
            await UpdateSpecificationAttribute(specificationAttribute);

            //clear cache
            await _cacheBase.RemoveByPrefix(CacheKey.SPECIFICATION_PATTERN_KEY);

            await _cacheBase.RemoveByPrefix(CacheKey.PRODUCTS_PATTERN_KEY);

            //event notification
            await _mediator.EntityDeleted(specificationAttributeOption);
        }
예제 #4
0
 public void UpdateOptionLocales(SpecificationAttributeOption specificationAttributeOption, SpecificationAttributeOptionModel model)
 {
     foreach (var localized in model.Locales)
     {
         _localizedEntityService.SaveLocalizedValue(specificationAttributeOption, x => x.Name, localized.Name, localized.LanguageId);
     }
 }
예제 #5
0
        private void AddMultipleOptionNames(SpecificationAttributeOptionModel model)
        {
            var values = model.Name.SplitSafe(";");
            int order  = model.DisplayOrder;

            for (int i = 0; i < values.Length; ++i)
            {
                var sao = new SpecificationAttributeOption()
                {
                    Name                     = values[i].Trim(),
                    DisplayOrder             = order++,
                    SpecificationAttributeId = model.SpecificationAttributeId
                };

                _specificationAttributeService.InsertSpecificationAttributeOption(sao);

                foreach (var localized in model.Locales.Where(l => l.Name.HasValue()))
                {
                    var    localizedValues = localized.Name.SplitSafe(";");
                    string value           = (i < localizedValues.Length ? localizedValues[i].Trim() : sao.Name);

                    _localizedEntityService.SaveLocalizedValue(sao, x => x.Name, value, localized.LanguageId);
                }
            }
        }
        protected void btnAdd_Click(object sender, EventArgs e)
        {
            try
            {
                var specificationAttribute = this.SpecificationAttributeService.GetSpecificationAttributeById(this.SpecificationAttributeId);
                if (specificationAttribute != null)
                {
                    var sao = new SpecificationAttributeOption()
                    {
                        SpecificationAttributeId = specificationAttribute.SpecificationAttributeId,
                        Name         = txtNewOptionName.Text,
                        DisplayOrder = txtNewOptionDisplayOrder.Value
                    };
                    this.SpecificationAttributeService.InsertSpecificationAttributeOption(sao);

                    SaveLocalizableContent(sao);

                    string url = string.Format("SpecificationAttributeDetails.aspx?SpecificationAttributeID={0}&TabID={1}", specificationAttribute.SpecificationAttributeId, "pnlOptions");
                    Response.Redirect(url);
                }
            }
            catch (Exception exc)
            {
                processAjaxError(exc);
            }
        }
 protected void AddButton_Click(object sender, EventArgs e)
 {
     if (Page.IsValid && IsValidUpload())
     {
         try
         {
             SpecificationAttributeOption sao = null;
             if (IsColor)
             {
                 int colorArgb = -1;
                 if (!String.IsNullOrEmpty(txtColorArgb.Text))
                 {
                     colorArgb = Int32.Parse(txtColorArgb.Text, System.Globalization.NumberStyles.AllowHexSpecifier);
                 }
                 ColorManager.InsertColor(txtNewOptionName.Text, colorArgb);
                 ColorItem colorItem = ColorManager.GetColorByColorName(txtNewOptionName.Text);
                 Upload(colorItem);
             }
             sao = SpecificationAttributeManager.InsertSpecificationAttributeOption(SpecificationAttributeID, txtNewOptionName.Text, txtNewOptionDisplayOrder.Value);
             Response.Redirect("SpecificationAttributeDetails.aspx?SpecificationAttributeID=" + sao.SpecificationAttributeID.ToString());
         }
         catch (Exception exc)
         {
             ProcessException(exc);
         }
     }
 }
예제 #8
0
        public IActionResult UpdateSpecificationAttributeOption([ModelBinder(typeof(JsonModelBinder <SpecificationAttributeOptionDto>))] Delta <SpecificationAttributeOptionDto> specificationAttributeOptionDelta)
        {
            // Here we display the errors if the validation has failed at some point.
            if (!ModelState.IsValid)
            {
                return(Error());
            }

            // We do not need to validate the product attribute id, because this will happen in the model binder using the dto validator.
            int saoId = specificationAttributeOptionDelta.Dto.Id;

            SpecificationAttributeOption specificationAttributeOption = _specificationAttributeService.GetSpecificationAttributeOptionById(saoId);

            if (specificationAttributeOption == null)
            {
                return(Error(HttpStatusCode.NotFound, "specification attribute options", "not found"));
            }

            specificationAttributeOptionDelta.Merge(specificationAttributeOption);

            _specificationAttributeService.UpdateSpecificationAttributeOption(specificationAttributeOption);

            UpdateLocalesSpecificationAttributeOption(specificationAttributeOption, specificationAttributeOptionDelta.Dto.LocalizedNames);

            // Preparing the result dto of the new product attribute
            SpecificationAttributeOptionDto specificationAttributeOptionDto = _dtoHelper.PrepareSpecificationAttributeOptionDTO(specificationAttributeOption);

            var saoRootObjectDto = new SpecificationAttributesOptionRootObjectDto();

            saoRootObjectDto.SpecificationAttributeOptions.Add(specificationAttributeOptionDto);

            var json = JsonFieldsSerializer.Serialize(saoRootObjectDto, string.Empty);

            return(new RawJsonActionResult(json));
        }
예제 #9
0
        public static string FindSpecificationAttributeOptionOfProductBySpecificationAttribute(string specificationAttributeName, List <ProductSpecificationAttributeMapping> productSpecificationAttributeMappings)
        {
            SpecificationAttribute specificationAttribute = specificationAttributes
                                                            .Where(sa => sa.Name == specificationAttributeName).FirstOrDefault();

            SpecificationAttributeOption specificationAttributeOption = null;

            foreach (ProductSpecificationAttributeMapping productSpecificationAttributeMapping in productSpecificationAttributeMappings)
            {
                specificationAttributeOption = specificationAttributeOptions
                                               .Where(saop => saop.SpecificationAttributeId == specificationAttribute.Id &&
                                                      saop.Id == productSpecificationAttributeMapping.SpecificationAttributeOptionId).FirstOrDefault();
                if (specificationAttributeOption != null)
                {
                    break;
                }
            }


            if (specificationAttributeOption != null)
            {
                return(specificationAttributeOption.Name);
            }
            return(null);
        }
예제 #10
0
        public IActionResult CreateSpecificationAttributeOption([ModelBinder(typeof(JsonModelBinder <SpecificationAttributeOptionDto>))] Delta <SpecificationAttributeOptionDto> specificationAttributeOptionDelta)
        {
            // Here we display the errors if the validation has failed at some point.
            if (!ModelState.IsValid)
            {
                return(Error());
            }

            // Inserting the new product
            SpecificationAttributeOption sao = new SpecificationAttributeOption();

            specificationAttributeOptionDelta.Merge(sao);

            _specificationAttributeService.InsertSpecificationAttributeOption(sao);

            UpdateLocalesSpecificationAttributeOption(sao, specificationAttributeOptionDelta.Dto.LocalizedNames);


            // Preparing the result dto of the new product
            SpecificationAttributeOptionDto specificationAttributeOptionDto = _dtoHelper.PrepareSpecificationAttributeOptionDTO(sao);

            var saoRootObjectDto = new SpecificationAttributesOptionRootObjectDto();

            saoRootObjectDto.SpecificationAttributeOptions.Add(specificationAttributeOptionDto);

            var json = JsonFieldsSerializer.Serialize(saoRootObjectDto, string.Empty);

            return(new RawJsonActionResult(json));
        }
        protected SpecificationAttributeOptionFilterCollection getAlreadyFilteredSpecs()
        {
            SpecificationAttributeOptionFilterCollection result = new SpecificationAttributeOptionFilterCollection();

            string[] queryStringParams = getAlreadyFilteredSpecsQueryStringParams();
            foreach (string qsp in queryStringParams)
            {
                int id = 0;
                int.TryParse(Request.QueryString[qsp], out id);
                SpecificationAttributeOption sao = SpecificationAttributeManager.GetSpecificationAttributeOptionByID(id);
                if (sao != null)
                {
                    SpecificationAttribute sa = sao.SpecificationAttribute;
                    if (sa != null)
                    {
                        result.Add(new SpecificationAttributeOptionFilter
                        {
                            SpecificationAttributeID   = sa.SpecificationAttributeID,
                            SpecificationAttributeName = sa.Name,
                            DisplayOrder = sa.DisplayOrder,
                            SpecificationAttributeOptionID   = sao.SpecificationAttributeOptionID,
                            SpecificationAttributeOptionName = sao.Name
                        });
                    }
                }
            }

            return(result);
        }
 public async Task <int> InsertAsync(SpecificationAttributeOption entity)
 {
     if (entity == null)
     {
         throw new ArgumentNullException("SpecificationAttributeOption");
     }
     return(await _SpecificationAttributeOptionRepository.InsertAsync(entity));
 }
예제 #13
0
        public IActionResult UpdateSpecificationAttribute([ModelBinder(typeof(JsonModelBinder <SpecificationAttributeDto>))] Delta <SpecificationAttributeDto> specificaitonAttributeDelta)
        {
            // Here we display the errors if the validation has failed at some point.
            if (!ModelState.IsValid)
            {
                return(Error());
            }

            var specificationAttribute = new SpecificationAttribute();

            specificaitonAttributeDelta.Merge(specificationAttribute);

            if (specificationAttribute.Id <= 0)
            {
                _specificationAttributeService.InsertSpecificationAttribute(specificationAttribute);
            }

            var options = new List <SpecificationAttributeOption>();

            if (specificaitonAttributeDelta.Dto.SpecificationAttributeOptions?.Any() == true)
            {
                var ix = 0;
                foreach (var option in specificaitonAttributeDelta.Dto.SpecificationAttributeOptions)
                {
                    if (option.Id <= 0)
                    {
                        var opt = new SpecificationAttributeOption
                        {
                            Name = option.Name,
                            SpecificationAttributeId = specificationAttribute.Id,
                            DisplayOrder             = ix
                        };
                        ix++;
                        _specificationAttributeService.InsertSpecificationAttributeOption(opt);
                        options.Add(opt);
                    }
                }
            }

            CustomerActivityService.InsertActivity("UpdateSpecAttribute", LocalizationService.GetResource("ActivityLog.AddNewSpecAttribute"), specificationAttribute);

            // Preparing the result dto of the new product
            var specificationAttributeDto = _dtoHelper.PrepareSpecificationAttributeDto(specificationAttribute);

            specificationAttributeDto.SpecificationAttributeOptions = new List <SpecificationAttributeOptionDto>();
            foreach (var option in options)
            {
                specificationAttributeDto.SpecificationAttributeOptions.Add(_dtoHelper.PrepareSpecificationAttributeOptionDto(option));
            }
            var specificationAttributesRootObjectDto = new SpecificationAttributesRootObjectDto();

            specificationAttributesRootObjectDto.SpecificationAttributes.Add(specificationAttributeDto);

            var json = JsonFieldsSerializer.Serialize(specificationAttributesRootObjectDto, string.Empty);

            return(new RawJsonActionResult(json));
        }
        public virtual void UpdateSpecificationAttributeOption(SpecificationAttributeOption specificationAttributeOption)
        {
            if (specificationAttributeOption == null)
            {
                throw new ArgumentNullException("specificationAttributeOption");
            }

            _specificationAttributeOptionRepository.Update(specificationAttributeOption);
        }
예제 #15
0
        protected void SaveLocalizableContent(SpecificationAttributeOption sao)
        {
            if (sao == null)
            {
                return;
            }

            if (!this.HasLocalizableContent)
            {
                return;
            }

            foreach (GridViewRow row in grdSpecificationAttributeOptions.Rows)
            {
                Repeater rptrLanguageDivs2 = row.FindControl("rptrLanguageDivs2") as Repeater;
                if (rptrLanguageDivs2 != null)
                {
                    HiddenField hfSpecificationAttributeOptionId = row.FindControl("hfSpecificationAttributeOptionId") as HiddenField;
                    int         saoId = int.Parse(hfSpecificationAttributeOptionId.Value);
                    if (saoId == sao.SpecificationAttributeOptionId)
                    {
                        foreach (RepeaterItem item in rptrLanguageDivs2.Items)
                        {
                            if (item.ItemType == ListItemType.Item || item.ItemType == ListItemType.AlternatingItem)
                            {
                                var txtLocalizedOptionName = (TextBox)item.FindControl("txtLocalizedOptionName");
                                var lblLanguageId          = (Label)item.FindControl("lblLanguageId");

                                int    languageId = int.Parse(lblLanguageId.Text);
                                string name       = txtLocalizedOptionName.Text;

                                bool allFieldsAreEmpty = string.IsNullOrEmpty(name);

                                var content = SpecificationAttributeManager.GetSpecificationAttributeOptionLocalizedBySpecificationAttributeOptionIdAndLanguageId(sao.SpecificationAttributeOptionId, 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 = SpecificationAttributeManager.InsertSpecificationAttributeOptionLocalized(sao.SpecificationAttributeOptionId,
                                                                                                                            languageId, name);
                                    }
                                }
                                else
                                {
                                    if (languageId > 0)
                                    {
                                        content = SpecificationAttributeManager.UpdateSpecificationAttributeOptionLocalized(content.SpecificationAttributeOptionLocalizedId,
                                                                                                                            content.SpecificationAttributeOptionId, languageId, name);
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
예제 #16
0
        private bool AddMultipleOptionNames(SpecificationAttributeOptionModel model)
        {
            var values = model.Name.SplitSafe(";");
            var alias  = model.Alias.SplitSafe(";");
            var order  = model.DisplayOrder;

            for (int i = 0; i < values.Length; ++i)
            {
                var sao = new SpecificationAttributeOption
                {
                    Name                     = values.SafeGet(i).Trim(),
                    Alias                    = alias.SafeGet(i).Trim(),
                    DisplayOrder             = order++,
                    SpecificationAttributeId = model.SpecificationAttributeId
                };

                try
                {
                    _specificationAttributeService.InsertSpecificationAttributeOption(sao);
                }
                catch (Exception exception)
                {
                    ModelState.AddModelError("", exception.Message);
                    return(false);
                }

                try
                {
                    // save localized properties
                    foreach (var localized in model.Locales.Where(l => l.Name.HasValue()))
                    {
                        var localizedValues = localized.Name.SplitSafe(";");
                        var value           = (i < localizedValues.Length ? localizedValues[i].Trim() : sao.Name);

                        _localizedEntityService.SaveLocalizedValue(sao, x => x.Name, value, localized.LanguageId);
                    }

                    foreach (var localized in model.Locales.Where(l => l.Alias.HasValue()))
                    {
                        var localizedAlias = localized.Alias.SplitSafe(";");
                        var value          = localizedAlias.SafeGet(i).Trim();

                        if (value.HasValue())
                        {
                            _localizedEntityService.SaveLocalizedValue(sao, x => x.Alias, value, localized.LanguageId);
                        }
                    }
                }
                catch (Exception)
                {
                    // TODO: what?
                }
            }

            return(true);
        }
        /// <summary>
        /// Inserts a specification attribute option
        /// </summary>
        /// <param name="specificationAttributeOption">The specification attribute option</param>
        public virtual void InsertSpecificationAttributeOption(SpecificationAttributeOption specificationAttributeOption)
        {
            if (specificationAttributeOption == null)
            {
                throw new ArgumentNullException("specificationAttributeOption");
            }

            _specificationAttributeOptionRepository.Insert(specificationAttributeOption);
            //_unitOfWork.Commit();
        }
예제 #18
0
 /// <returns>A task that represents the asynchronous operation</returns>
 protected virtual async Task UpdateOptionLocalesAsync(SpecificationAttributeOption specificationAttributeOption, SpecificationAttributeOptionModel model)
 {
     foreach (var localized in model.Locales)
     {
         await _localizedEntityService.SaveLocalizedValueAsync(specificationAttributeOption,
                                                               x => x.Name,
                                                               localized.Name,
                                                               localized.LanguageId);
     }
 }
예제 #19
0
        public static SpecificationAttributeOptionCustomValueMap FindSpecificationAttributeOptionWithCustomValue(string specificationAttributeName, string specificationAttributeOptionName)
        {
            SpecificationAttribute specificationAttribute = specificationAttributes
                                                            .Where(sa => sa.Name == specificationAttributeName).FirstOrDefault();

            SpecificationAttributeOptionCustomValueMap specificationAttributeOptionCustomValueMap = null;

            if (!string.IsNullOrEmpty(specificationAttributeOptionName))
            {
                if (specificationAttribute.DisplayOrder == 0)
                {
                    SpecificationAttributeOption specificationAttributeOption = specificationAttributeOptions
                                                                                .Where(sao => sao.SpecificationAttributeId == specificationAttribute.Id && sao.Name == specificationAttributeName).FirstOrDefault();
                    if (specificationAttributeOption == null)
                    {
                        specificationAttributeOption = new SpecificationAttributeOption()
                        {
                            Name = specificationAttributeName ?? "",
                            SpecificationAttributeId = specificationAttribute.Id,
                            DisplayOrder             = 0
                        };
                        specificationAttributeOptions.Add(specificationAttributeOption);
                    }
                    specificationAttributeOptionCustomValueMap = new SpecificationAttributeOptionCustomValueMap()
                    {
                        specificationAttributeOption            = specificationAttributeOption,
                        specificationAttributeOptionCustomValue = specificationAttributeOptionName
                    };
                }
                else
                {
                    SpecificationAttributeOption specificationAttributeOption = specificationAttributeOptions
                                                                                .Where(sao => sao.SpecificationAttributeId == specificationAttribute.Id && sao.Name == specificationAttributeOptionName).FirstOrDefault();
                    if (specificationAttributeOption == null)
                    {
                        specificationAttributeOption = new SpecificationAttributeOption()
                        {
                            Name = specificationAttributeOptionName ?? "",
                            SpecificationAttributeId = specificationAttribute.Id,
                            DisplayOrder             = 0
                        };
                        specificationAttributeOptions.Add(specificationAttributeOption);
                    }
                    specificationAttributeOptionCustomValueMap = new SpecificationAttributeOptionCustomValueMap()
                    {
                        specificationAttributeOption            = specificationAttributeOption,
                        specificationAttributeOptionCustomValue = null
                    };
                }
            }


            return(specificationAttributeOptionCustomValueMap);
        }
예제 #20
0
        protected void OnSpecificationAttributeOptionsDeleting(object sender, GridViewDeleteEventArgs e)
        {
            int saoId = (int)grdSpecificationAttributeOptions.DataKeys[e.RowIndex]["SpecificationAttributeOptionId"];
            SpecificationAttributeOption sao = SpecificationAttributeManager.GetSpecificationAttributeOptionById(saoId, 0);

            if (sao != null)
            {
                SpecificationAttributeManager.DeleteSpecificationAttributeOption(sao.SpecificationAttributeOptionId);
                BindData();
            }
        }
예제 #21
0
        public async Task <IHttpActionResult> Delete(int id)
        {
            SpecificationAttributeOption entity = await SpecificationAttributeOptionService.FindOneAsync(id);

            if (entity == null)
            {
                return(NotFound());
            }
            await SpecificationAttributeOptionService.DeleteAsync(entity);

            return(Ok(entity.ToModel()));
        }
        public virtual void InsertSpecificationAttributeOption(SpecificationAttributeOption specificationAttributeOption)
        {
            if (specificationAttributeOption == null)
            {
                throw new ArgumentNullException("specificationAttributeOption");
            }

            _specificationAttributeOptionRepository.Insert(specificationAttributeOption);

            //event notification
            _eventPublisher.EntityInserted(specificationAttributeOption);
        }
예제 #23
0
        /// <summary>
        /// Updates the specification attribute
        /// </summary>
        /// <param name="specificationAttributeOption">The specification attribute option</param>
        public virtual void UpdateSpecificationAttributeOption(SpecificationAttributeOption specificationAttributeOption)
        {
            if (specificationAttributeOption == null)
            {
                throw new ArgumentNullException(nameof(specificationAttributeOption));
            }

            _specificationAttributeOptionRepository.Update(specificationAttributeOption);

            //event notification
            _eventPublisher.EntityUpdated(specificationAttributeOption);
        }
예제 #24
0
        protected void OnSpecificationAttributeOptionsDeleting(object sender, GridViewDeleteEventArgs e)
        {
            int saoID = (int)grdSpecificationAttributeOptions.DataKeys[e.RowIndex]["SpecificationAttributeOptionID"];
            SpecificationAttributeOption sao = SpecificationAttributeManager.GetSpecificationAttributeOptionByID(saoID);

            if (sao != null)
            {
                SpecificationAttributeManager.DeleteSpecificationAttributeOption(sao.SpecificationAttributeOptionID);
                string paletteFolderPath = Server.MapPath("~/images/palette/");
                ColorManager.DeleteColor(sao.Name, paletteFolderPath);
                BindData();
            }
        }
        protected void SaveLocalizableContent(SpecificationAttributeOption sao)
        {
            if (sao == null)
            {
                return;
            }

            if (!this.HasLocalizableContent)
            {
                return;
            }

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

                    int    languageId = int.Parse(lblLanguageId.Text);
                    string name       = txtNewLocalizedOptionName.Text;

                    bool allFieldsAreEmpty = string.IsNullOrEmpty(name);

                    var content = this.SpecificationAttributeService.GetSpecificationAttributeOptionLocalizedBySpecificationAttributeOptionIdAndLanguageId(sao.SpecificationAttributeOptionId, 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 = new SpecificationAttributeOptionLocalized()
                            {
                                SpecificationAttributeOptionId = sao.SpecificationAttributeOptionId,
                                LanguageId = languageId,
                                Name       = name
                            };
                            this.SpecificationAttributeService.InsertSpecificationAttributeOptionLocalized(content);
                        }
                    }
                    else
                    {
                        if (languageId > 0)
                        {
                            content.LanguageId = languageId;
                            content.Name       = name;
                            this.SpecificationAttributeService.UpdateSpecificationAttributeOptionLocalized(content);
                        }
                    }
                }
            }
        }
예제 #26
0
        /// <summary>
        /// Updates the specification attribute
        /// </summary>
        /// <param name="specificationAttributeOption">The specification attribute option</param>
        public virtual void UpdateSpecificationAttributeOption(SpecificationAttributeOption specificationAttributeOption)
        {
            if (specificationAttributeOption == null)
            {
                throw new ArgumentNullException(nameof(specificationAttributeOption));
            }

            _specificationAttributeOptionRepository.Update(specificationAttributeOption);

            _cacheManager.RemoveByPrefix(NopCatalogDefaults.ProductSpecificationAttributePrefixCacheKey);

            //event notification
            _eventPublisher.EntityUpdated(specificationAttributeOption);
        }
예제 #27
0
        /// <summary>
        /// Inserts a specification attribute option
        /// </summary>
        /// <param name="specificationAttributeOption">The specification attribute option</param>
        public virtual void InsertSpecificationAttributeOption(SpecificationAttributeOption specificationAttributeOption)
        {
            if (specificationAttributeOption == null)
            {
                throw new ArgumentNullException(nameof(specificationAttributeOption));
            }

            _specificationAttributeOptionRepository.Insert(specificationAttributeOption);

            _cacheManager.RemoveByPattern(GSCatalogDefaults.ProductSpecificationAttributePatternCacheKey);

            //event notification
            _eventPublisher.EntityInserted(specificationAttributeOption);
        }
        /// <summary>
        /// Updates the specification attribute
        /// </summary>
        /// <param name="specificationAttributeOption">The specification attribute option</param>
        public virtual void UpdateSpecificationAttributeOption(SpecificationAttributeOption specificationAttributeOption)
        {
            if (specificationAttributeOption == null)
            {
                throw new ArgumentNullException("specificationAttributeOption");
            }

            _specificationAttributeOptionRepository.Update(specificationAttributeOption);

            _cacheManager.RemoveByPattern(PRODUCTSPECIFICATIONATTRIBUTE_PATTERN_KEY);

            //event notification
            _eventPublisher.EntityUpdated(specificationAttributeOption);
        }
예제 #29
0
        /// <summary>
        /// Updates the specification attribute
        /// </summary>
        /// <param name="specificationAttributeOption">The specification attribute option</param>
        public virtual void UpdateSpecificationAttributeOption(SpecificationAttributeOption specificationAttributeOption)
        {
            if (specificationAttributeOption == null)
            {
                throw new ArgumentNullException("specificationAttributeOption");
            }

            _specificationAttributeOptionRepository.Update(specificationAttributeOption);

            _cacheManager.GetCache(CACHE_NAME_PRODUCTSPECIFICATIONATTRIBUTE).Clear();

            //event notification
            //_eventPublisher.EntityUpdated(specificationAttributeOption);
        }
예제 #30
0
        protected virtual void UpdateLocalesSpecificationAttributeOption(SpecificationAttributeOption specificationAttributeOption, List <LocalizedNameDto> localizedNameDto)
        {
            if (localizedNameDto == null)
            {
                return;
            }

            foreach (var localized in localizedNameDto)
            {
                _localizedEntityService.SaveLocalizedValue(specificationAttributeOption,
                                                           x => x.Name,
                                                           localized.LocalizedName,
                                                           localized.LanguageId.Value);
            }
        }