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; }
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); }
private void EnsureThatIsItCustomerQuoteRequest(QuoteRequest quote) { if (WorkContext.CurrentCustomer.Id != quote.CustomerId) { throw new StorefrontException("Requested quote not belongs to user " + WorkContext.CurrentCustomer.UserName); } }