private PublicOrder CreateBasicOrder() { string country = this.countryProvider.GetDefaultCountry().Code; var vatValidationResult = vatNumberValidator.ValidateCustomerVatNumber(); var vatNumber = string.Empty; if (vatValidationResult != null && vatValidationResult.Valid) { vatNumber = vatValidationResult.VatNumber; country = vatValidationResult.CountryCode; } else if (this.contactDataProvider != null) { var allContacts = this.contactDataProvider.GetContactData(); IEnumerable <ContactData> contacts = allContacts?.GetContactData(); if (contacts != null) { ContactData contactData = contacts.FirstOrDefault(c => c.Id == "BillingContact" && !string.IsNullOrEmpty(c.Country)) ?? contacts.FirstOrDefault(c => c.Id == "MainContact" && !string.IsNullOrEmpty(c.Country)); if (!string.IsNullOrEmpty(contactData?.Country)) { country = contactData.Country; } } } return(new PublicOrder { ResellerId = resellerProvider.GetReseller().Id, Country = country, Currency = currencyPreferenceProvider.GetCurrentCurrency().Code, LegalNumber = vatNumber }); }
private PublicOrder CreateBasicOrder() { string country = this.countryProvider.GetDefaultCountry().Code; if (this.contactDataProvider != null) { var allContacts = this.contactDataProvider.GetContactData(); IEnumerable <ContactData> contacts = allContacts?.GetContactData(); if (contacts != null) { ContactData contactData = contacts.FirstOrDefault(c => c.Id == "BillingContact" && !string.IsNullOrEmpty(c.Country)) ?? contacts.FirstOrDefault(c => c.Id == "MainContact" && !string.IsNullOrEmpty(c.Country)); if (!string.IsNullOrEmpty(contactData?.Country)) { country = contactData.Country; } } } return(new PublicOrder { ResellerId = resellerProvider.GetReseller().Id, Country = country, Currency = currencyPreferenceProvider.GetCurrentCurrency().Code }); }
/// <summary> /// Set order reseller id from current reseller /// </summary> public override PublicOrder AmendOrder(PublicOrder order, PublicOrderContext orderContext) { var resellerId = resellerProvider.GetReseller().Id; order.ResellerId = resellerId; return(order); }
/// <summary> /// Construct a new instance of CartPricingProvider /// </summary> public CartPricingProvider( IResellerProvider resellerProvider, ICurrencyPreferenceProvider currencyPreferenceProvider, ICountryProvider countryProvider, IContactDataProvider contactDataProvider, RenewalPeriodProvider renewalPeriodProvider, IVatDisplayPreferenceProvider vatDisplayPreferenceProvider, PublicBillingApiProxy billingApi, IVatNumberValidator vatNumberValidator) : base(billingApi) { if (resellerProvider == null) { throw new ArgumentNullException("resellerProvider"); } if (currencyPreferenceProvider == null) { throw new ArgumentNullException("currencyPreferenceProvider"); } if (countryProvider == null) { throw new ArgumentNullException("countryProvider"); } if (contactDataProvider == null) { throw new ArgumentNullException("contactDataProvider"); } if (renewalPeriodProvider == null) { throw new ArgumentNullException("renewalPeriodProvider"); } if (vatDisplayPreferenceProvider == null) { throw new ArgumentNullException("vatDisplayPreferenceProvider"); } if (vatNumberValidator == null) { throw new ArgumentNullException("vatNumberValidator"); } this.resellerProvider = resellerProvider; this.currencyPreferenceProvider = currencyPreferenceProvider; this.countryProvider = countryProvider; this.contactDataProvider = contactDataProvider; this.renewalPeriodProvider = renewalPeriodProvider; this.pricesIncludeVat = vatDisplayPreferenceProvider.ShowPricesIncludingVat(); this.inclusiveTaxCalculationType = resellerProvider.GetReseller().InclusiveTaxCalculationType; this.vatNumberValidator = vatNumberValidator; }
/// <summary> /// Construct a new instance of CartPricingProvider /// </summary> public CartPricingProvider( IResellerProvider resellerProvider, ICurrencyPreferenceProvider currencyPreferenceProvider, ICountryProvider countryProvider, IContactDataProvider contactDataProvider, RenewalPeriodProvider renewalPeriodProvider, IVatDisplayPreferenceProvider vatDisplayPreferenceProvider, PublicBillingApiProxy billingApi) : base(billingApi) { if (resellerProvider == null) { throw new ArgumentNullException("resellerProvider"); } if (currencyPreferenceProvider == null) { throw new ArgumentNullException("currencyPreferenceProvider"); } if (countryProvider == null) { throw new ArgumentNullException("countryProvider"); } if (contactDataProvider == null) { throw new ArgumentNullException("contactDataProvider"); } if (renewalPeriodProvider == null) { throw new ArgumentNullException("renewalPeriodProvider"); } if (vatDisplayPreferenceProvider == null) { throw new ArgumentNullException("vatDisplayPreferenceProvider"); } this.resellerProvider = resellerProvider; this.currencyPreferenceProvider = currencyPreferenceProvider; this.countryProvider = countryProvider; this.contactDataProvider = contactDataProvider; this.renewalPeriodProvider = renewalPeriodProvider; this.pricesIncludeVat = vatDisplayPreferenceProvider.ShowPricesIncludingVat(); this.inclusiveTaxCalculationType = resellerProvider.GetReseller().InclusiveTaxCalculationType; }
/// <summary> /// Get terms of service for products in current cart from resource provider. /// Terms of service name should have key "{id}_Name", and description should have key "{id}_Description". /// </summary> /// <returns>The terms of service applicable to products in current cart.</returns> public IEnumerable <TermsOfService> GetTermsOfService() { var termsOfService = new HashSet <TermsOfService>(); var cart = cartProvider.GetCart(); var articleNumbers = new HashSet <string>(cart.CartItems.Select(c => c.ArticleNumber)); var isReseller = resellerProvider.GetReseller().IsSubReseller; var tosResources = new HashSet <string>(); foreach (var articleNumber in articleNumbers) { var product = productProvider.GetProduct(articleNumber); if (product != null) { string tosNoSplit = null; if (isReseller && product.CustomAttributes.Any(ca => ca.Name == "resellertos")) { tosNoSplit = product.CustomAttributes.First(ca => ca.Name == "resellertos").Value; } else if (product.CustomAttributes.Any(ca => ca.Name == "tos")) { tosNoSplit = product.CustomAttributes.First(ca => ca.Name == "tos").Value; } if (!string.IsNullOrEmpty(tosNoSplit)) { tosResources.UnionWith(tosNoSplit.Split('|')); } } } foreach (var resource in tosResources) { termsOfService.Add(new TermsOfService { Id = resource, Name = resourceProvider.GetResource(resource + "_Name"), Terms = resourceProvider.GetResource(resource + "_Terms"), Link = resourceProvider.GetResource(resource + "_Link") }); } return(termsOfService); }
public ApiProductsProvider(IProductsProvider productsProvider, IShopNameProvider shopNameProvider, IResellerProvider resellerProvider) { if (productsProvider == null) { throw new ArgumentNullException("productsProvider"); } if (shopNameProvider == null) { throw new ArgumentNullException("shopNameProvider"); } if (resellerProvider == null) { throw new ArgumentNullException("resellerProvider"); } this.productsProvider = productsProvider; this.resellerId = resellerProvider.GetReseller().Id; this.shopName = shopNameProvider.GetShopName(); }
public ProductMapper(ILanguagePreferenceProvider languagePreferenceProvider, ICurrencyPreferenceProvider currencyPreferenceProvider, IVatDisplayPreferenceProvider vatDisplayPreferenceProvider, IResellerProvider resellerProvider) { if (languagePreferenceProvider == null) { throw new ArgumentNullException("languagePreferenceProvider"); } if (currencyPreferenceProvider == null) { throw new ArgumentNullException("currencyPreferenceProvider"); } if (vatDisplayPreferenceProvider == null) { throw new ArgumentNullException("vatDisplayPreferenceProvider"); } this.language = languagePreferenceProvider.GetCurrentLanguage(); this.currencyCode = currencyPreferenceProvider.GetCurrentCurrency().Code; this.pricesIncludeVat = vatDisplayPreferenceProvider.ShowPricesIncludingVat(); this.inclusiveTaxCalculationType = resellerProvider.GetReseller().InclusiveTaxCalculationType; }