예제 #1
0
        public static moduleModel.Catalog ToModuleModel(this webModel.Catalog catalog)
        {
            var retVal = new moduleModel.Catalog();

            retVal.InjectFrom(catalog);
            if (catalog.Languages != null)
            {
                retVal.Languages = catalog.Languages.Select(x => x.ToModuleModel()).ToList();
            }

            if (catalog.Properties != null)
            {
                retVal.PropertyValues = new List <moduleModel.PropertyValue>();
                foreach (var property in catalog.Properties)
                {
                    foreach (var propValue in property.Values)
                    {
                        propValue.ValueType = property.ValueType;
                        //Need populate required fields
                        propValue.PropertyName = property.Name;
                        retVal.PropertyValues.Add(propValue.ToModuleModel());
                    }
                }
            }
            return(retVal);
        }
예제 #2
0
		public static moduleModel.Catalog ToModuleModel(this webModel.Catalog catalog)
		{
			var retVal = new moduleModel.Catalog();
			retVal.InjectFrom(catalog);
			if (catalog.Languages != null)
			{
				retVal.Languages = catalog.Languages.Select(x => x.ToModuleModel()).ToList();
			}

			if (catalog.Properties != null)
			{
				retVal.PropertyValues = new List<moduleModel.PropertyValue>();
				foreach (var property in catalog.Properties)
				{
					foreach (var propValue in property.Values)
					{
						propValue.ValueType = property.ValueType;
						//Need populate required fields
						propValue.PropertyName = property.Name;
						retVal.PropertyValues.Add(propValue.ToModuleModel());
					}
				}

			}
			return retVal;
		}
예제 #3
0
        /// <summary>
        /// Converting to model type
        /// </summary>
        /// <param name="catalogBase"></param>
        /// <returns></returns>
        public static coreModel.Catalog ToCoreModel(this dataModel.Catalog dbCatalog, bool convertProps = true)
        {
            if (dbCatalog == null)
            {
                throw new ArgumentNullException("catalog");
            }

            var retVal = new coreModel.Catalog();

            retVal.InjectFrom(dbCatalog);
            retVal.IsVirtual = dbCatalog.Virtual;
            retVal.Languages = new List <coreModel.CatalogLanguage>();

            var defaultLanguage = (new dataModel.CatalogLanguage {
                Language = string.IsNullOrEmpty(dbCatalog.DefaultLanguage) ? "en-us" : dbCatalog.DefaultLanguage
            }).ToCoreModel(retVal);

            defaultLanguage.IsDefault = true;
            retVal.Languages          = new List <coreModel.CatalogLanguage>();
            retVal.Languages.Add(defaultLanguage);

            //populate additional languages
            foreach (var catalogLanguage in dbCatalog.CatalogLanguages.Where(x => x.Language != defaultLanguage.LanguageCode).Select(x => x.ToCoreModel(retVal)))
            {
                catalogLanguage.Catalog = retVal;
                retVal.Languages.Add(catalogLanguage);
            }


            if (convertProps)
            {
                retVal.PropertyValues = dbCatalog.CatalogPropertyValues.Select(x => x.ToCoreModel()).ToList();
                //Self properties
                retVal.Properties = dbCatalog.Properties.Where(x => x.CategoryId == null).Select(x => x.ToCoreModel()).ToList();

                //Next need set Property in PropertyValues objects
                foreach (var propValue in retVal.PropertyValues.ToArray())
                {
                    propValue.Property = retVal.Properties.FirstOrDefault(x => x.IsSuitableForValue(propValue));
                    //Return each localized value for selecte dictionary value
                    //Because multilingual dictionary values for all languages may not stored in db need add it in result manually from property dictionary values
                    var localizedDictValues = propValue.TryGetAllLocalizedDictValues();
                    foreach (var localizedDictValue in localizedDictValues)
                    {
                        if (!retVal.PropertyValues.Any(x => x.ValueId == localizedDictValue.ValueId && x.LanguageCode == localizedDictValue.LanguageCode))
                        {
                            retVal.PropertyValues.Add(localizedDictValue);
                        }
                    }
                }
            }

            return(retVal);
        }
예제 #4
0
        /// <summary>
        /// Converting to model type
        /// </summary>
        /// <param name="catalogBase"></param>
        /// <returns></returns>
        public static coreModel.Catalog ToCoreModel(this dataModel.Catalog dbCatalog, bool convertProps = true)
        {
            if (dbCatalog == null)
                throw new ArgumentNullException("catalog");

            var retVal = new coreModel.Catalog();
            retVal.InjectFrom(dbCatalog);
            retVal.IsVirtual = dbCatalog.Virtual;
            retVal.Languages = new List<coreModel.CatalogLanguage>();

            var defaultLanguage = (new dataModel.CatalogLanguage { Language = string.IsNullOrEmpty(dbCatalog.DefaultLanguage) ? "en-us" : dbCatalog.DefaultLanguage }).ToCoreModel(retVal);
            defaultLanguage.IsDefault = true;
            retVal.Languages = new List<coreModel.CatalogLanguage>();
            retVal.Languages.Add(defaultLanguage);

            //populate additional languages
            foreach (var catalogLanguage in dbCatalog.CatalogLanguages.Where(x => x.Language != defaultLanguage.LanguageCode).Select(x => x.ToCoreModel(retVal)))
            {
                catalogLanguage.Catalog = retVal;
                retVal.Languages.Add(catalogLanguage);
            }


            if (convertProps)
            {
                retVal.PropertyValues = dbCatalog.CatalogPropertyValues.Select(x => x.ToCoreModel()).ToList();
                //Self properties
                retVal.Properties = dbCatalog.Properties.Where(x => x.CategoryId == null).OrderBy(x => x.Name).Select(x => x.ToCoreModel()).ToList();

                //Next need set Property in PropertyValues objects
                foreach (var propValue in retVal.PropertyValues.ToArray())
                {
                    propValue.Property = retVal.Properties.FirstOrDefault(x => x.IsSuitableForValue(propValue));
                    //Return each localized value for selecte dictionary value
                    //Because multilingual dictionary values for all languages may not stored in db need add it in result manually from property dictionary values
                    var localizedDictValues = propValue.TryGetAllLocalizedDictValues();
                    foreach (var localizedDictValue in localizedDictValues)
                    {
                        if (!retVal.PropertyValues.Any(x => x.ValueId == localizedDictValue.ValueId && x.LanguageCode == localizedDictValue.LanguageCode))
                        {
                            retVal.PropertyValues.Add(localizedDictValue);
                        }
                    }
                }
            }

            return retVal;
        }
        /// <summary>
        /// Converting to model type
        /// </summary>
        /// <param name="catalogBase"></param>
        /// <returns></returns>
        public static coreModel.Catalog ToCoreModel(this dataModel.CatalogBase catalogBase, coreModel.Property[] properties = null)
        {
            if (catalogBase == null)
            {
                throw new ArgumentNullException("catalogBase");
            }

            var catalog        = catalogBase as dataModel.Catalog;
            var virtualCatalog = catalogBase as dataModel.VirtualCatalog;

            var retVal = new coreModel.Catalog();

            retVal.InjectFrom(catalogBase);
            retVal.Virtual   = virtualCatalog != null;
            retVal.Languages = new List <coreModel.CatalogLanguage>();

            if (catalog != null)
            {
                foreach (var catalogLanguage in catalog.CatalogLanguages.Select(x => x.ToCoreModel(retVal)))
                {
                    catalogLanguage.Catalog   = retVal;
                    catalogLanguage.IsDefault = catalogBase.DefaultLanguage == catalogLanguage.LanguageCode;
                    retVal.Languages.Add(catalogLanguage);
                }

                if (properties != null)
                {
                    retVal.PropertyValues = catalog.CatalogPropertyValues.Select(x => x.ToCoreModel(properties)).ToList();
                }
            }

            if (virtualCatalog != null)
            {
                var catalogLanguage = (new dataModel.CatalogLanguage {
                    Language = catalogBase.DefaultLanguage
                }).ToCoreModel(retVal);
                catalogLanguage.IsDefault = true;
                retVal.Languages.Add(catalogLanguage);
            }


            return(retVal);
        }
        /// <summary>
        /// Converting to model type
        /// </summary>
        /// <param name="catalogBase"></param>
        /// <returns></returns>
        public static coreModel.Catalog ToCoreModel(this dataModel.CatalogBase catalogBase, coreModel.Property[] properties = null)
        {
            if (catalogBase == null)
                throw new ArgumentNullException("catalogBase");

            var catalog = catalogBase as dataModel.Catalog;
            var virtualCatalog = catalogBase as dataModel.VirtualCatalog;

            var retVal = new coreModel.Catalog();
            retVal.InjectFrom(catalogBase);
            retVal.Virtual = virtualCatalog != null;
            retVal.Languages = new List<coreModel.CatalogLanguage>();

            if (catalog != null)
            {
                foreach (var catalogLanguage in catalog.CatalogLanguages.Select(x => x.ToCoreModel(retVal)))
                {
                    catalogLanguage.Catalog = retVal;
                    catalogLanguage.IsDefault = catalogBase.DefaultLanguage == catalogLanguage.LanguageCode;
                    retVal.Languages.Add(catalogLanguage);
                }

                if (properties != null)
                {
                    retVal.PropertyValues = catalog.CatalogPropertyValues.Select(x => x.ToCoreModel(properties)).ToList();
                }

            }

            if (virtualCatalog != null)
            {
                var catalogLanguage = (new dataModel.CatalogLanguage { Language = catalogBase.DefaultLanguage }).ToCoreModel(retVal);
                catalogLanguage.IsDefault = true;
                retVal.Languages.Add(catalogLanguage);
            }

	
            return retVal;
        }