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