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 async Task <Store> GetStoreByIdAsync(string id, Currency currency) { var storeDto = await _storeApi.GetStoreByIdAsync(id); var result = storeDto.ToStore(); if (!storeDto.PaymentMethods.IsNullOrEmpty() && currency != null) { result.PaymentMethods = storeDto.PaymentMethods .Where(pm => pm.IsActive != null && pm.IsActive.Value) .Select(pm => pm.ToStorePaymentMethod(currency)).ToArray(); } else if (storeDto.PaymentMethods.IsNullOrEmpty() && currency != null) { var paymentSearchCriteria = new PaymentMethodsSearchCriteria { StoreId = id }; var paymentsSearchResult = await _paymentModule.SearchPaymentMethodsAsync(paymentSearchCriteria); result.PaymentMethods = paymentsSearchResult.Results .Where(pm => pm.IsActive != null && pm.IsActive.Value) .Select(pm => { var paymentMethod = pm.JsonConvert <StorePaymentMethod>().ToStorePaymentMethod(currency); paymentMethod.Name = pm.TypeName; return(paymentMethod); }).ToArray(); } if (storeDto.TaxProviders.IsNullOrEmpty()) { var taxSearchCriteria = new TaxProviderSearchCriteria { StoreId = id }; var taxProviderSearchResult = await _taxModule.SearchTaxProvidersAsync(taxSearchCriteria); result.FixedTaxRate = GetFixedTaxRate(taxProviderSearchResult.Results.Select(xp => xp.JsonConvert <TaxProvider>()).ToArray()); } else { result.FixedTaxRate = GetFixedTaxRate(storeDto.TaxProviders); } //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 async Task <Store> GetStoreByIdAsync(string id, Currency currency) { var storeDto = await _storeApi.GetStoreByIdAsync(id); var result = storeDto.ToStore(); if (!storeDto.PaymentMethods.IsNullOrEmpty() && currency != null) { result.PaymentMethods = storeDto.PaymentMethods .Where(pm => pm.IsActive != null && pm.IsActive.Value) .Select(pm => pm.ToStorePaymentMethod(currency)).ToArray(); } else if (storeDto.PaymentMethods.IsNullOrEmpty() && currency != null) { var paymentSearchCriteria = new PaymentMethodsSearchCriteria { StoreId = id }; var paymentsSearchResult = await _paymentModule.SearchPaymentMethodsAsync(paymentSearchCriteria); result.PaymentMethods = paymentsSearchResult.Results .Where(pm => pm.IsActive != null && pm.IsActive.Value) .Select(pm => { var paymentMethod = pm.JsonConvert <StorePaymentMethod>().ToStorePaymentMethod(currency); paymentMethod.Name = pm.TypeName; return(paymentMethod); }).ToArray(); } if (storeDto.TaxProviders.IsNullOrEmpty()) { var taxSearchCriteria = new TaxProviderSearchCriteria { StoreId = id }; var taxProviderSearchResult = await _taxModule.SearchTaxProvidersAsync(taxSearchCriteria); result.FixedTaxRate = GetFixedTaxRate(taxProviderSearchResult.Results.Select(xp => xp.JsonConvert <TaxProvider>()).ToArray()); } else { result.FixedTaxRate = GetFixedTaxRate(storeDto.TaxProviders); } return(result); }