Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 4
0
        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));
 }
Ejemplo n.º 6
0
        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);
        }