protected virtual async Task <Store> ConvertStoreAndLoadDependeciesAsync(StoreApi.Store storeDto, Currency currency = null) { var result = storeDto.ToStore(); if (currency != null) { var paymentSearchCriteria = new PaymentMethodsSearchCriteria { StoreId = result.Id }; var paymentsSearchResult = await _paymentModule.SearchPaymentMethodsAsync(paymentSearchCriteria); result.PaymentMethods = paymentsSearchResult.Results .Where(pm => pm.IsActive != null && pm.IsActive.Value) .Select(pm => { var paymentMethod = pm.ToStorePaymentMethod(currency); paymentMethod.Name = pm.TypeName; paymentMethod.DisplayName = pm.Name; return(paymentMethod); }).ToArray(); } var taxSearchCriteria = new TaxProviderSearchCriteria { StoreId = result.Id }; var taxProviderSearchResult = await _taxModule.SearchTaxProvidersAsync(taxSearchCriteria); result.FixedTaxRate = GetFixedTaxRate(taxProviderSearchResult.Results.Select(xp => xp.JsonConvert <TaxProvider>()).ToArray()); //use url for stores from configuration file with hight priority than store url defined in manager result.Url = _storefrontOptions.StoreUrls[result.Id] ?? result.Url; return(result); }
public static Store ToStore(this storeDto.Store storeDto) { var result = new Store { AdminEmail = storeDto.AdminEmail, Catalog = storeDto.Catalog, Country = storeDto.Country, Description = storeDto.Description, Email = storeDto.Email, Id = storeDto.Id, Name = storeDto.Name, Region = storeDto.Region, SecureUrl = storeDto.SecureUrl, TimeZone = storeDto.TimeZone, Url = storeDto.Url, DefaultFulfillmentCenterId = storeDto.MainFulfillmentCenterId, AvailFulfillmentCenterIds = storeDto.AdditionalFulfillmentCenterIds ?? Array.Empty <string>() }; if (!storeDto.SeoInfos.IsNullOrEmpty()) { result.SeoInfos = storeDto.SeoInfos.Select(ToSeoInfo).ToList(); } result.DefaultLanguage = storeDto.DefaultLanguage != null ? new Language(storeDto.DefaultLanguage) : Language.InvariantLanguage; if (!storeDto.Languages.IsNullOrEmpty()) { result.Languages = storeDto.Languages.Select(x => new Language(x)).ToList(); } result.CurrenciesCodes = storeDto.Currencies.Concat(new[] { storeDto.DefaultCurrency }) .Where(x => !string.IsNullOrEmpty(x)) .Distinct() .ToList(); result.DefaultCurrencyCode = storeDto.DefaultCurrency; if (!storeDto.DynamicProperties.IsNullOrEmpty()) { result.DynamicProperties = storeDto.DynamicProperties.Select(ToDynamicProperty).ToList(); result.ThemeName = result.DynamicProperties.GetDynamicPropertyValue("DefaultThemeName"); } if (!storeDto.Settings.IsNullOrEmpty()) { result.Settings = storeDto.Settings.Where(x => !x.ValueType.EqualsInvariant("SecureString")).Select(x => x.JsonConvert <platformDto.Setting>().ToSettingEntry()).ToList(); } result.TrustedGroups = storeDto.TrustedGroups; result.StoreState = EnumUtility.SafeParse(storeDto.StoreState, StoreStatus.Open); result.SeoLinksType = EnumUtility.SafeParse(result.Settings.GetSettingValue("Stores.SeoLinksType", ""), SeoLinksType.Collapsed); return(result); }
public virtual Store ToStore(storeDto.Store storeDto) { var result = new Store(); result.InjectFrom <NullableAndEnumValueInjecter>(storeDto); if (!storeDto.SeoInfos.IsNullOrEmpty()) { result.SeoInfos = storeDto.SeoInfos.Select(ToSeoInfo).ToList(); } result.DefaultLanguage = storeDto.DefaultLanguage != null ? new Language(storeDto.DefaultLanguage) : Language.InvariantLanguage; if (!storeDto.Languages.IsNullOrEmpty()) { result.Languages = storeDto.Languages.Select(x => new Language(x)).ToList(); } if (!storeDto.Currencies.IsNullOrEmpty()) { result.Currencies.AddRange(storeDto.Currencies.Select(x => new Currency(Language.InvariantLanguage, x))); } result.DefaultCurrency = result.Currencies.FirstOrDefault(x => x.Equals(storeDto.DefaultCurrency)); if (!storeDto.DynamicProperties.IsNullOrEmpty()) { result.DynamicProperties = storeDto.DynamicProperties.Select(ToDynamicProperty).ToList(); result.ThemeName = result.DynamicProperties.GetDynamicPropertyValue("DefaultThemeName"); } if (!storeDto.Settings.IsNullOrEmpty()) { result.Settings = storeDto.Settings.Where(x => !x.ValueType.EqualsInvariant("SecureString")).Select(x => x.JsonConvert <platformDto.Setting>().ToSettingEntry()).ToList(); } if (storeDto.FulfillmentCenter != null) { result.PrimaryFullfilmentCenter = ToFulfillmentCenter(storeDto.FulfillmentCenter); result.FulfilmentCenters.Add(result.PrimaryFullfilmentCenter); } if (!storeDto.FulfillmentCenters.IsNullOrEmpty()) { result.FulfilmentCenters.AddRange(storeDto.FulfillmentCenters.Select(x => ToFulfillmentCenter(x))); } result.TrustedGroups = storeDto.TrustedGroups; result.StoreState = EnumUtility.SafeParse(storeDto.StoreState, StoreStatus.Open); result.SeoLinksType = EnumUtility.SafeParse(result.Settings.GetSettingValue("Stores.SeoLinksType", ""), SeoLinksType.Collapsed); return(result); }
public virtual Store ToStore(storeDto.Store storeDto) { var result = ServiceLocator.Current.GetInstance <StoreFactory>().CreateStore(); result.InjectFrom <NullableAndEnumValueInjecter>(storeDto); if (!storeDto.SeoInfos.IsNullOrEmpty()) { result.SeoInfos = storeDto.SeoInfos.Select(ToSeoInfo).ToList(); } result.DefaultLanguage = storeDto.DefaultLanguage != null ? new Language(storeDto.DefaultLanguage) : Language.InvariantLanguage; if (!storeDto.Languages.IsNullOrEmpty()) { result.Languages = storeDto.Languages.Select(x => new Language(x)).ToList(); } if (!storeDto.Currencies.IsNullOrEmpty()) { result.Currencies.AddRange(storeDto.Currencies.Select(x => new Currency(Language.InvariantLanguage, x))); } result.DefaultCurrency = result.Currencies.FirstOrDefault(x => x.Equals(storeDto.DefaultCurrency)); if (!storeDto.DynamicProperties.IsNullOrEmpty()) { result.DynamicProperties = storeDto.DynamicProperties.Select(ToDynamicProperty).ToList(); result.ThemeName = result.DynamicProperties.GetDynamicPropertyValue("DefaultThemeName"); } if (!storeDto.Settings.IsNullOrEmpty()) { result.Settings = storeDto.Settings.Select(x => x.JsonConvert <platformDto.Setting>().ToSettingEntry()).ToList(); } result.TrustedGroups = storeDto.TrustedGroups; result.StoreState = EnumUtility.SafeParse(storeDto.StoreState, StoreStatus.Open); result.SeoLinksType = EnumUtility.SafeParse(result.Settings.GetSettingValue("Stores.SeoLinksType", ""), SeoLinksType.Collapsed); return(result); }
public static Store ToStore(this storeDto.Store storeDto) { return(StoreConverterInstance.ToStore(storeDto)); }
public virtual Store ToStore(storeDto.Store storeDto) { var result = new Store(); result.AdminEmail = storeDto.AdminEmail; result.Catalog = storeDto.Catalog; result.Country = storeDto.Country; result.Description = storeDto.Description; result.Email = storeDto.Email; result.Id = storeDto.Id; result.Name = storeDto.Name; result.Region = storeDto.Region; result.SecureUrl = storeDto.SecureUrl; result.TimeZone = storeDto.TimeZone; result.Url = storeDto.Url; if (!storeDto.SeoInfos.IsNullOrEmpty()) { result.SeoInfos = storeDto.SeoInfos.Select(ToSeoInfo).ToList(); } result.DefaultLanguage = storeDto.DefaultLanguage != null ? new Language(storeDto.DefaultLanguage) : Language.InvariantLanguage; if (!storeDto.Languages.IsNullOrEmpty()) { result.Languages = storeDto.Languages.Select(x => new Language(x)).ToList(); } result.CurrenciesCodes = storeDto.Currencies.Concat(new[] { storeDto.DefaultCurrency }) .Where(x => !string.IsNullOrEmpty(x)) .Distinct() .ToList(); result.DefaultCurrencyCode = storeDto.DefaultCurrency; if (!storeDto.DynamicProperties.IsNullOrEmpty()) { result.DynamicProperties = storeDto.DynamicProperties.Select(ToDynamicProperty).ToList(); result.ThemeName = result.DynamicProperties.GetDynamicPropertyValue("DefaultThemeName"); } if (!storeDto.Settings.IsNullOrEmpty()) { result.Settings = storeDto.Settings.Where(x => !x.ValueType.EqualsInvariant("SecureString")).Select(x => x.JsonConvert <platformDto.Setting>().ToSettingEntry()).ToList(); } if (storeDto.FulfillmentCenter != null) { result.PrimaryFullfilmentCenter = ToFulfillmentCenter(storeDto.FulfillmentCenter); result.FulfilmentCenters.Add(result.PrimaryFullfilmentCenter); } if (!storeDto.FulfillmentCenters.IsNullOrEmpty()) { result.FulfilmentCenters.AddRange(storeDto.FulfillmentCenters.Select(x => ToFulfillmentCenter(x))); } result.TrustedGroups = storeDto.TrustedGroups; result.StoreState = EnumUtility.SafeParse(storeDto.StoreState, StoreStatus.Open); result.SeoLinksType = EnumUtility.SafeParse(result.Settings.GetSettingValue("Stores.SeoLinksType", ""), SeoLinksType.Collapsed); return(result); }
public static Store ToStore(this storeDto.Store storeDto) { var result = new Store { AdminEmail = storeDto.AdminEmail, Catalog = storeDto.Catalog, Country = storeDto.Country, Description = storeDto.Description, Email = storeDto.Email, Id = storeDto.Id, Name = storeDto.Name, Region = storeDto.Region, SecureUrl = storeDto.SecureUrl, TimeZone = storeDto.TimeZone, Url = storeDto.Url, DefaultFulfillmentCenterId = storeDto.MainFulfillmentCenterId, AvailFulfillmentCenterIds = (storeDto.AdditionalFulfillmentCenterIds ?? Array.Empty <string>()).ToList(), }; if (result.DefaultFulfillmentCenterId != null) { result.AvailFulfillmentCenterIds.Add(result.DefaultFulfillmentCenterId); } if (!storeDto.SeoInfos.IsNullOrEmpty()) { result.SeoInfos = storeDto.SeoInfos.Select(ToSeoInfo).ToList(); } result.DefaultLanguage = storeDto.DefaultLanguage != null ? new Language(storeDto.DefaultLanguage) : Language.InvariantLanguage; if (!storeDto.Languages.IsNullOrEmpty()) { result.Languages = storeDto.Languages.Select(x => new Language(x)).ToList(); } result.CurrenciesCodes = storeDto.Currencies.Concat(new[] { storeDto.DefaultCurrency }) .Where(x => !string.IsNullOrEmpty(x)) .Distinct() .ToList(); result.DefaultCurrencyCode = storeDto.DefaultCurrency; if (!storeDto.DynamicProperties.IsNullOrEmpty()) { result.DynamicProperties = new MutablePagedList <DynamicProperty>(storeDto.DynamicProperties.Select(ToDynamicProperty).ToList()); result.ThemeName = result.DynamicProperties.GetDynamicPropertyValue("DefaultThemeName"); } if (!storeDto.Settings.IsNullOrEmpty()) { result.Settings = new MutablePagedList <SettingEntry>(storeDto.Settings.Where(x => !x.ValueType.EqualsInvariant("SecureString")) .Select(x => x.JsonConvert <platformDto.ObjectSettingEntry>() .ToSettingEntry())); } result.TrustedGroups = storeDto.TrustedGroups; result.StoreState = EnumUtility.SafeParse(storeDto.StoreState, StoreStatus.Open); result.SeoLinksType = EnumUtility.SafeParse(result.Settings.GetSettingValue("Stores.SeoLinksType", ""), SeoLinksType.Collapsed); result.QuotesEnabled = result.Settings.GetSettingValue("Quotes.EnableQuotes", false); result.SubscriptionEnabled = result.Settings.GetSettingValue("Subscription.EnableSubscriptions", false); result.TaxCalculationEnabled = result.Settings.GetSettingValue("Stores.TaxCalculationEnabled", true); result.AnonymousUsersAllowed = result.Settings.GetSettingValue("Stores.AllowAnonymousUsers", true); result.IsSpa = result.Settings.GetSettingValue("Stores.IsSpa", false); result.EmailVerificationEnabled = result.Settings.GetSettingValue("Stores.EmailVerificationEnabled", false); result.CartValidationRuleSet = result.Settings.GetSettingValue <string>("Stores.CartValidationRuleSet", null); if (string.IsNullOrEmpty(result.CartValidationRuleSet)) { result.CartValidationRuleSet = result.DynamicProperties?.GetDynamicPropertyValue("CartValidationRuleSet"); } return(result); }