コード例 #1
0
        public static QuoteRequest ToWebModel(this VirtoCommerceQuoteModuleWebModelQuoteRequest serviceModel, IEnumerable<Currency> availCurrencies, Language language)
        {
            var currency = availCurrencies.FirstOrDefault(x => x.Equals(serviceModel.Currency)) ?? new Currency(language, serviceModel.Currency);
            var webModel = new QuoteRequest(currency, language);

            webModel.InjectFrom<NullableAndEnumValueInjecter>(serviceModel);
           
            webModel.Currency = currency;
            webModel.Language = language;
            webModel.ManualRelDiscountAmount = new Money(serviceModel.ManualRelDiscountAmount ?? 0, currency);
            webModel.ManualShippingTotal = new Money(serviceModel.ManualShippingTotal ?? 0, currency);
            webModel.ManualSubTotal = new Money(serviceModel.ManualSubTotal ?? 0, currency);

            if (serviceModel.Addresses != null)
            {
                webModel.Addresses = serviceModel.Addresses.Select(a => a.ToWebModel()).ToList();
            }

            if (serviceModel.Attachments != null)
            {
                webModel.Attachments = serviceModel.Attachments.Select(a => a.ToWebModel()).ToList();
            }

            if (!string.IsNullOrEmpty(serviceModel.Coupon))
            {
                webModel.Coupon = new Coupon { AppliedSuccessfully = true, Code = serviceModel.Coupon };
            }

            if (serviceModel.DynamicProperties != null)
            {
                webModel.DynamicProperties = serviceModel.DynamicProperties.Select(dp => dp.ToWebModel()).ToList();
            }

            if (serviceModel.Items != null)
            {
                webModel.Items = serviceModel.Items.Select(i => i.ToWebModel(currency)).ToList();
            }

            // TODO
            if (serviceModel.ShipmentMethod != null)
            {
                
            }

            if (serviceModel.TaxDetails != null)
            {
                webModel.TaxDetails = serviceModel.TaxDetails.Select(td => td.ToWebModel(currency)).ToList();
            }

            if (serviceModel.Totals != null)
            {
                webModel.Totals = serviceModel.Totals.ToWebModel(currency);
            }

            return webModel;
        }
コード例 #2
0
        public void QuoteRequest()
        {
            var originalObject = new QuoteRequest(_currency, _language);
            var expectedJson = JsonConvert.SerializeObject(originalObject, _settings);

            var deserializedObject = JsonConvert.DeserializeObject<QuoteRequest>(expectedJson, _settings);
            var actualJson = JsonConvert.SerializeObject(deserializedObject, _settings);

            Assert.Equal(expectedJson, actualJson);
        }
コード例 #3
0
 private void EnsureThatIsItCustomerQuoteRequest(QuoteRequest quote)
 {
     if (WorkContext.CurrentCustomer.Id != quote.CustomerId)
     {
         throw new StorefrontException("Requested quote not belongs to user " + WorkContext.CurrentCustomer.UserName);
     }
 }