Пример #1
0
        public virtual CatalogProperty ToProperty(catalogDto.Property propertyDto, Language currentLanguage)
        {
            var retVal = new CatalogProperty();

            retVal.Id        = propertyDto.Id;
            retVal.Name      = propertyDto.Name;
            retVal.Type      = propertyDto.Type;
            retVal.ValueType = propertyDto.ValueType;

            //Set display names and set current display name for requested language
            if (propertyDto.DisplayNames != null)
            {
                retVal.DisplayNames = propertyDto.DisplayNames.Select(x => new LocalizedString(new Language(x.LanguageCode), x.Name)).ToList();
                retVal.DisplayName  = retVal.DisplayNames.FindWithLanguage(currentLanguage, x => x.Value, null);
            }

            //if display name for requested language not set get system property name
            if (string.IsNullOrEmpty(retVal.DisplayName))
            {
                retVal.DisplayName = propertyDto.Name;
            }

            //For multilingual properties need populate LocalizedValues collection and set value for requested language
            if (propertyDto.Multilanguage ?? false)
            {
                if (propertyDto.Values != null)
                {
                    retVal.LocalizedValues = propertyDto.Values.Where(x => x.Value != null).Select(x => new LocalizedString(new Language(x.LanguageCode), x.Value.ToString())).ToList();
                }
            }

            //Set property value
            if (propertyDto.Values != null)
            {
                var propValue = propertyDto.Values.FirstOrDefault(x => x.Value != null);
                if (propValue != null)
                {
                    //Use only one prop value (reserve multi-values to other scenarios)
                    retVal.Value   = propValue.Value;
                    retVal.ValueId = propValue.ValueId;
                }
            }

            //Try to set value for requested language
            if (retVal.LocalizedValues.Any())
            {
                retVal.Value = retVal.LocalizedValues.FindWithLanguage(currentLanguage, x => x.Value, retVal.Value);
            }

            return(retVal);
        }
Пример #2
0
        public static CatalogProperty ToWebModel(this VirtoCommerceCatalogModuleWebModelProperty property, Language currentLanguage)
        {
            var retVal = new CatalogProperty();

            retVal.InjectFrom(property);
            //Set display names and set current display name for requested language
            if (property.DisplayNames != null)
            {
                retVal.DisplayNames = property.DisplayNames.Select(x => new LocalizedString(new Language(x.LanguageCode), x.Name)).ToList();
                retVal.DisplayName  = retVal.DisplayNames.Where(x => x.Language.Equals(currentLanguage))
                                      .Select(x => x.Value)
                                      .FirstOrDefault();
            }
            //if display name for requested language not set get system property name
            if (String.IsNullOrEmpty(retVal.DisplayName))
            {
                retVal.DisplayName = property.Name;
            }

            //For multilingual properties need populate LocalizedValues collection and set value for requested language
            if (property.Multilanguage ?? false)
            {
                if (property.Values != null)
                {
                    retVal.LocalizedValues = property.Values.Where(x => x.Value != null).Select(x => new LocalizedString(new Language(x.LanguageCode), x.Value.ToString())).ToList();
                }
            }
            //Set property value
            if (property.Values != null)
            {
                var propValue = property.Values.Where(x => x.Value != null).FirstOrDefault();
                if (propValue != null)
                {
                    //Use only one prop value (reserve multivalues to other scenarious)
                    retVal.Value   = propValue.Value.ToString();
                    retVal.ValueId = propValue.ValueId;
                }
            }
            //Try to set value for requested language
            if (retVal.LocalizedValues.Any())
            {
                retVal.Value = retVal.LocalizedValues.Where(x => x.Language.Equals(currentLanguage))
                               .Select(x => x.Value ?? retVal.Value)
                               .FirstOrDefault() ?? retVal.Value;
            }

            return(retVal);
        }
 public JsonResult UpdateProperty(long id, string cataproname, string cataprokey, int typeproperty, int typedesignproperty)
 {
     try
     {
         CatalogPropertiesBusiness catalogPropertiesBusiness = new CatalogPropertiesBusiness();
         CatalogProperty           catalogProperty           = new CatalogProperty();
         catalogProperty            = catalogPropertiesBusiness.GetById(id);
         catalogProperty.Key        = cataprokey;
         catalogProperty.Type       = typeproperty;
         catalogProperty.TypeDesign = typedesignproperty;
         catalogProperty.Name       = cataproname;
         catalogPropertiesBusiness.Edit(catalogProperty);
         return(Json(1));
     }
     catch
     {
         return(Json(0));
     }
 }
        public JsonResult AddPropertyUpdate(long id, string propertyvalue)
        {
            try
            {
                CatalogPropertiesBusiness catalogPropertiesBusiness = new CatalogPropertiesBusiness();
                CatalogProperty           catalogProperty           = new CatalogProperty();
                catalogProperty = catalogPropertiesBusiness.GetById(id);

                CatalogPropertiesValue objCatalogPropertiesValue = new CatalogPropertiesValue();
                objCatalogPropertiesValue.Value = propertyvalue;
                objCatalogPropertiesValue.CatalogPropertieId = id;
                catalogProperty.CatalogPropertiesValues.Add(objCatalogPropertiesValue);
                catalogPropertiesBusiness.Edit(catalogProperty);

                return(Json(1));//Cập nhật thành công
            }
            catch (Exception)
            {
                return(Json(0));

                //write log
                throw;
            }
        }
Пример #5
0
        public static CatalogProperty ToProperty(this catalogDto.Property propertyDto, Language currentLanguage)
        {
            var result = new CatalogProperty
            {
                Id           = propertyDto.Id,
                Name         = propertyDto.Name,
                Type         = propertyDto.Type,
                ValueType    = propertyDto.ValueType,
                IsMultivalue = propertyDto.Multivalue ?? false
            };

            //Set display names and set current display name for requested language
            if (propertyDto.DisplayNames != null)
            {
                result.DisplayNames = propertyDto.DisplayNames.Select(x => new LocalizedString(new Language(x.LanguageCode), x.Name)).ToList();
                result.DisplayName  = result.DisplayNames.FindWithLanguage(currentLanguage, x => x.Value, null);
            }

            //if display name for requested language not set get system property name
            if (string.IsNullOrEmpty(result.DisplayName))
            {
                result.DisplayName = propertyDto.Name;
            }

            //For multilingual properties need populate LocalizedValues collection and set value for requested language
            if (propertyDto.Multilanguage ?? false)
            {
                if (propertyDto.Values != null)
                {
                    result.LocalizedValues = propertyDto.Values.Where(x => x.Value != null).Select(x => new LocalizedString(new Language(x.LanguageCode), x.Value.ToString())).ToList();
                }
            }

            //Set property value
            var propValue = propertyDto.Values?.FirstOrDefault(v => v.Value != null);

            if (propValue != null)
            {
                //Use only one prop value (reserve multi-values to other scenarios)
                result.Value   = propValue.Value?.ToString();
                result.ValueId = propValue.ValueId;
            }

            //Try to set value for requested language
            if (result.LocalizedValues.Any())
            {
                result.Value = result.LocalizedValues.FindWithLanguage(currentLanguage, x => x.Value, result.Value);
            }

            //Set multivalues
            if (result.IsMultivalue && propertyDto.Values != null)
            {
                if (result.LocalizedValues.Any())
                {
                    result.Values = result.LocalizedValues.GetLocalizedStringsForLanguage(currentLanguage).Select(x => x.Value).ToList();
                }
                else
                {
                    result.Values = propertyDto.Values.Where(x => x != null).Select(x => x.Value.ToString()).ToList();
                }
            }

            return(result);
        }
Пример #6
0
 set => SetValue(CatalogProperty, value);
        public JsonResult AddProperty(string nameproperty, int typevalue, int typedesgin, long cate, string allvalue)
        {
            try
            {
                CatalogProperty objCatalogProperty = new CatalogProperty();
                objCatalogProperty.CatalogId  = cate;
                objCatalogProperty.Type       = typevalue;
                objCatalogProperty.TypeDesign = typedesgin;
                objCatalogProperty.Name       = nameproperty;
                objCatalogProperty.Key        = Function.ConvertFileName(nameproperty);
                var vl       = allvalue.TrimEnd('|');
                var arrValue = vl.Split('|');
                List <CatalogPropertiesValue> catalogPropertiesValues = new List <CatalogPropertiesValue>();
                foreach (var s in arrValue)
                {
                    CatalogPropertiesValue objCatalogPropertiesValue = new CatalogPropertiesValue();
                    objCatalogPropertiesValue.Value = s;
                    catalogPropertiesValues.Add(objCatalogPropertiesValue);
                }
                objCatalogProperty.CatalogPropertiesValues = catalogPropertiesValues;
                _catalogPropertiesBusiness.AddNew(objCatalogProperty);

                string htm = "";

                htm += "<div class=\"panel panel-default tht_panel  panlel_" + objCatalogProperty.Id + "\">" +
                       "<div class=\"panel-heading\">" +
                       "<h3 class=\"panel-title\">" +
                       "  <input id=\"cataproname" + objCatalogProperty.Id + "\" type=\"text\" value=\"" + objCatalogProperty.Name + "\" />" +
                       " <input id=\"cataprokey" + objCatalogProperty.Id + "\" type=\"text\" value=\"" + objCatalogProperty.Key + "\" />";
                if (objCatalogProperty.TypeDesign == 1)
                {
                    if (objCatalogProperty.Type == 1)
                    {
                        htm += "<label ><input type=\"checkbox\" style=\"display:none;\" checked id =\"typeproperty\" value=\"" + objCatalogProperty.Type + "\">Cho phép chọn nhiều? </label><input type=\"checkbox\" id =\"typedesignproperty\" checked value=\"" + objCatalogProperty.TypeDesign + "\">Hiển thị 1 dòng </label><a class=\"del_1\" onclick=\"UpdateProperties(" + objCatalogProperty.Id + ")\">Sửa</a><a class=\"del_1\" onclick=\"DeleteProperties(" + objCatalogProperty.Id + ")\">Xóa</a></div>" +
                               "<div class=\"panel-body\">";
                    }
                    else
                    {
                        htm += "<label ><input type=\"checkbox\" style=\"display:none;\" id =\"typeproperty\" value=\"" + objCatalogProperty.Type + "\">Cho phép chọn nhiều? </label><input type=\"checkbox\" id =\"typedesignproperty\" checked value=\"" + objCatalogProperty.TypeDesign + "\">Hiển thị 1 dòng </label><a class=\"del_1\" onclick=\"UpdateProperties(" + objCatalogProperty.Id + ")\">Sửa</a><a class=\"del_1\" onclick=\"DeleteProperties(" + objCatalogProperty.Id + ")\">Xóa</a></div>" +
                               "<div class=\"panel-body\">";
                    }
                }
                else
                {
                    if (objCatalogProperty.Type == 1)
                    {
                        htm += "<label><input type=\"checkbox\" style=\"display:none;\" id =\"typeproperty\" checked value=\"" + objCatalogProperty.Type + "\">Cho phép chọn nhiều? </label><input type=\"checkbox\" id =\"typedesignproperty\"  value=\"" + objCatalogProperty.TypeDesign + "\">Hiển thị 1 dòng </label><a class=\"del_1\" onclick=\"UpdateProperties(" + objCatalogProperty.Id + ")\">Sửa</a><a class=\"del_1\" onclick=\"DeleteProperties(" + objCatalogProperty.Id + ")\">Xóa</a></div>" +
                               "<div class=\"panel-body\">";
                    }
                    else
                    {
                        htm += "<label><input type=\"checkbox\" style=\"display:none;\" id =\"typeproperty\" value=\"" + objCatalogProperty.Type + "\">Cho phép chọn nhiều? </label><input type=\"checkbox\" id =\"typedesignproperty\"  value=\"" + objCatalogProperty.TypeDesign + "\">Hiển thị 1 dòng </label><a class=\"del_1\" onclick=\"UpdateProperties(" + objCatalogProperty.Id + ")\">Sửa</a><a class=\"del_1\" onclick=\"DeleteProperties(" + objCatalogProperty.Id + ")\">Xóa</a></div>" +
                               "<div class=\"panel-body\">";
                    }
                }

                foreach (var item2 in objCatalogProperty.CatalogPropertiesValues)
                {
                    htm += "<p id=\"properties_value_" + item2.Id + "\">+  <input id=\"properties_value_edit_" + item2.Id + "\" type=\"text\" value=\"" + item2.Value + "\" /><a class=\"update_2\" onclick=\"UpdatePropertiesValue(" + item2.Id + ")\">Sửa</a><a class=\"del_2\" onclick=\"DeletePropertiesValue(" + item2.Id + ")\">Xóa</a></p>";
                }
                htm += " </div></div>";

                return(Json(htm));//add susess
            }
            catch (Exception)
            {
                return(Json(0));

                //write log
                throw;
            }
        }