public new void SetUp() { measureDimension1 = new MeasureDimension() { Id = 1, Name = "inch(es)", SystemKeyword = "inch", Ratio = 1M, DisplayOrder = 1, }; measureDimension2 = new MeasureDimension() { Id = 2, Name = "feet", SystemKeyword = "ft", Ratio = 0.08333333M, DisplayOrder = 2, }; measureDimension3 = new MeasureDimension() { Id = 3, Name = "meter(s)", SystemKeyword = "m", Ratio = 0.0254M, DisplayOrder = 3, }; measureDimension4 = new MeasureDimension() { Id = 4, Name = "millimetre(s)", SystemKeyword = "mm", Ratio = 25.4M, DisplayOrder = 4, }; measureWeight1 = new MeasureWeight() { Id = 1, Name = "ounce(s)", SystemKeyword = "oz", Ratio = 16M, DisplayOrder = 1, }; measureWeight2 = new MeasureWeight() { Id = 2, Name = "lb(s)", SystemKeyword = "lb", Ratio = 1M, DisplayOrder = 2, }; measureWeight3 = new MeasureWeight() { Id = 3, Name = "kg(s)", SystemKeyword = "kg", Ratio = 0.45359237M, DisplayOrder = 3, }; measureWeight4 = new MeasureWeight() { Id = 4, Name = "gram(s)", SystemKeyword = "g", Ratio = 453.59237M, DisplayOrder = 4, }; _measureDimensionRepository = MockRepository.GenerateMock <IRepository <MeasureDimension> >(); _measureDimensionRepository.Expect(x => x.Table).Return(new List <MeasureDimension>() { measureDimension1, measureDimension2, measureDimension3, measureDimension4 }.AsQueryable()); _measureDimensionRepository.Expect(x => x.GetById(measureDimension1.Id)).Return(measureDimension1); _measureDimensionRepository.Expect(x => x.GetById(measureDimension2.Id)).Return(measureDimension2); _measureDimensionRepository.Expect(x => x.GetById(measureDimension3.Id)).Return(measureDimension3); _measureDimensionRepository.Expect(x => x.GetById(measureDimension4.Id)).Return(measureDimension4); _measureWeightRepository = MockRepository.GenerateMock <IRepository <MeasureWeight> >(); _measureWeightRepository.Expect(x => x.Table).Return(new List <MeasureWeight>() { measureWeight1, measureWeight2, measureWeight3, measureWeight4 }.AsQueryable()); _measureWeightRepository.Expect(x => x.GetById(measureWeight1.Id)).Return(measureWeight1); _measureWeightRepository.Expect(x => x.GetById(measureWeight2.Id)).Return(measureWeight2); _measureWeightRepository.Expect(x => x.GetById(measureWeight3.Id)).Return(measureWeight3); _measureWeightRepository.Expect(x => x.GetById(measureWeight4.Id)).Return(measureWeight4); var cacheManager = new NullCache(); _measureSettings = new MeasureSettings(); _measureSettings.BaseDimensionId = measureDimension1.Id; //inch(es) _measureSettings.BaseWeightId = measureWeight2.Id; //lb(s) _eventPublisher = MockRepository.GenerateMock <IEventPublisher>(); _eventPublisher.Expect(x => x.Publish(Arg <object> .Is.Anything)); _measureService = new MeasureService(cacheManager, _measureDimensionRepository, _measureWeightRepository, _measureSettings, _eventPublisher); }
private int ConvertFromPrimaryMeasureDimension(decimal quantity, MeasureDimension usedMeasureDimension) { return(Convert.ToInt32(Math.Ceiling(_measureService.ConvertFromPrimaryMeasureDimension(quantity, usedMeasureDimension)))); }
public static MeasureDimensionModel ToModel(this MeasureDimension entity) { return(Mapper.Map <MeasureDimension, MeasureDimensionModel>(entity)); }
/// <summary> /// Converts dimension /// </summary> /// <param name="value">Value to convert</param> /// <param name="sourceMeasureDimension">Source dimension</param> /// <param name="targetMeasureDimension">Target dimension</param> /// <param name="round">A value indicating whether a result should be rounded</param> /// <returns>Converted value</returns> public virtual decimal ConvertDimension(decimal value, MeasureDimension sourceMeasureDimension, MeasureDimension targetMeasureDimension, bool round = true) { if (sourceMeasureDimension == null) { throw new ArgumentNullException(nameof(sourceMeasureDimension)); } if (targetMeasureDimension == null) { throw new ArgumentNullException(nameof(targetMeasureDimension)); } var result = value; if (result != decimal.Zero && sourceMeasureDimension.Id != targetMeasureDimension.Id) { result = ConvertToPrimaryMeasureDimension(result, sourceMeasureDimension); result = ConvertFromPrimaryMeasureDimension(result, targetMeasureDimension); } if (round) { result = Math.Round(result, 2); } return(result); }
/// <summary> /// Converts dimension /// </summary> /// <param name="value">Value to convert</param> /// <param name="sourceMeasureDimension">Source dimension</param> /// <param name="targetMeasureDimension">Target dimension</param> /// <param name="round">A value indicating whether a result should be rounded</param> /// <returns>Converted value</returns> public virtual async Task <double> ConvertDimension(double value, MeasureDimension sourceMeasureDimension, MeasureDimension targetMeasureDimension, bool round = true) { if (sourceMeasureDimension == null) { throw new ArgumentNullException(nameof(sourceMeasureDimension)); } if (targetMeasureDimension == null) { throw new ArgumentNullException(nameof(targetMeasureDimension)); } double result = value; if (result != 0 && sourceMeasureDimension.Id != targetMeasureDimension.Id) { result = await ConvertToPrimaryMeasureDimension(result, sourceMeasureDimension); result = await ConvertFromPrimaryMeasureDimension(result, targetMeasureDimension); } if (round) { result = Math.Round(result, 2); } return(result); }
public static MeasureDimensionModel ToModel(this MeasureDimension entity) { return(entity.MapTo <MeasureDimension, MeasureDimensionModel>()); }
private void BindData() { txtStoreName.Text = SettingManager.StoreName; txtStoreURL.Text = SettingManager.StoreURL; cbStoreClosed.Checked = SettingManager.GetSettingValueBoolean("Common.StoreClosed"); cbAnonymousCheckoutAllowed.Checked = CustomerManager.AnonymousCheckoutAllowed; cbStoreNameInTitle.Checked = SettingManager.GetSettingValueBoolean("SEO.IncludeStoreNameInTitle"); txtDefaulSEOTitle.Text = SettingManager.GetSettingValue("SEO.DefaultTitle"); txtDefaulSEODescription.Text = SettingManager.GetSettingValue("SEO.DefaultMetaDescription"); txtDefaulSEOKeywords.Text = SettingManager.GetSettingValue("SEO.DefaultMetaKeywords"); cbShowWelcomeMessage.Checked = SettingManager.GetSettingValueBoolean("Display.ShowWelcomeMessageOnMainPage"); cbShowNewsHeaderRssURL.Checked = SettingManager.GetSettingValueBoolean("Display.ShowNewsHeaderRssURL"); cbShowBlogHeaderRssURL.Checked = SettingManager.GetSettingValueBoolean("Display.ShowBlogHeaderRssURL"); txtProductUrlRewriteFormat.Text = SettingManager.GetSettingValue("SEO.Product.UrlRewriteFormat"); txtCategoryUrlRewriteFormat.Text = SettingManager.GetSettingValue("SEO.Category.UrlRewriteFormat"); txtManufacturerUrlRewriteFormat.Text = SettingManager.GetSettingValue("SEO.Manufacturer.UrlRewriteFormat"); txtNewsUrlRewriteFormat.Text = SettingManager.GetSettingValue("SEO.News.UrlRewriteFormat"); txtBlogUrlRewriteFormat.Text = SettingManager.GetSettingValue("SEO.Blog.UrlRewriteFormat"); txtTopicUrlRewriteFormat.Text = SettingManager.GetSettingValue("SEO.Topic.UrlRewriteFormat"); txtMaxImageSize.Value = SettingManager.GetSettingValueInteger("Media.MaximumImageSize"); txtProductThumbSize.Value = SettingManager.GetSettingValueInteger("Media.Product.ThumbnailImageSize"); txtProductDetailSize.Value = SettingManager.GetSettingValueInteger("Media.Product.DetailImageSize"); txtProductVariantSize.Value = SettingManager.GetSettingValueInteger("Media.Product.VariantImageSize"); txtCategoryThumbSize.Value = SettingManager.GetSettingValueInteger("Media.Category.ThumbnailImageSize"); txtManufacturerThumbSize.Value = SettingManager.GetSettingValueInteger("Media.Manufacturer.ThumbnailImageSize"); cbShowCartImages.Checked = SettingManager.GetSettingValueBoolean("Display.ShowProductImagesOnShoppingCart"); cbShowWishListImages.Checked = SettingManager.GetSettingValueBoolean("Display.ShowProductImagesOnWishList"); txtShoppingCartThumbSize.Value = SettingManager.GetSettingValueInteger("Media.ShoppingCart.ThumbnailImageSize"); MeasureWeight baseWeight = MeasureManager.BaseWeightIn; if (baseWeight != null) { CommonHelper.SelectListItem(this.ddlBaseWeight, baseWeight.MeasureWeightID); } MeasureDimension baseDimension = MeasureManager.BaseDimensionIn; if (baseDimension != null) { CommonHelper.SelectListItem(this.ddlBaseDimension, baseDimension.MeasureDimensionID); } txtAdminEmailAddress.Text = MessageManager.AdminEmailAddress; txtAdminEmailDisplayName.Text = MessageManager.AdminEmailDisplayName; txtAdminEmailHost.Text = MessageManager.AdminEmailHost; txtAdminEmailPort.Text = MessageManager.AdminEmailPort.ToString(); txtAdminEmailUser.Text = MessageManager.AdminEmailUser; txtAdminEmailPassword.Text = MessageManager.AdminEmailPassword; cbAdminEmailEnableSsl.Checked = MessageManager.AdminEmailEnableSsl; cbAdminEmailUseDefaultCredentials.Checked = MessageManager.AdminEmailUseDefaultCredentials; txtEncryptionPrivateKey.Text = SettingManager.GetSettingValue("Security.EncryptionPrivateKey"); cbEnableLoginCaptchaImage.Checked = SettingManager.GetSettingValueBoolean("Common.LoginCaptchaImageEnabled"); cbEnableRegisterCaptchaImage.Checked = SettingManager.GetSettingValueBoolean("Common.RegisterCaptchaImageEnabled"); CommonHelper.SelectListItem(this.ddlCustomerNameFormat, (int)CustomerManager.CustomerNameFormatting); cbShowCustomersLocation.Checked = CustomerManager.ShowCustomersLocation; cbShowCustomersJoinDate.Checked = CustomerManager.ShowCustomersJoinDate; cbAllowPM.Checked = ForumManager.AllowPrivateMessages; cbAllowViewingProfiles.Checked = CustomerManager.AllowViewingProfiles; cbCustomersAllowedToUploadAvatars.Checked = CustomerManager.AllowCustomersToUploadAvatars; cbDefaultAvatarEnabled.Checked = CustomerManager.DefaultAvatarEnabled; lblCurrentTimeZone.Text = DateTimeHelper.CurrentTimeZone.DisplayName; TimeZoneInfo defaultStoreTimeZone = DateTimeHelper.DefaultStoreTimeZone; if (defaultStoreTimeZone != null) { CommonHelper.SelectListItem(this.ddlDefaultStoreTimeZone, defaultStoreTimeZone.Id); } cbAllowCustomersToSetTimeZone.Checked = DateTimeHelper.AllowCustomersToSetTimeZone; cbUsernamesEnabled.Checked = CustomerManager.UsernamesEnabled; cbNewCustomerRegistrationDisabled.Checked = CustomerManager.NewCustomerRegistrationDisabled; cbAllowNavigationOnlyRegisteredCustomers.Checked = CustomerManager.AllowNavigationOnlyRegisteredCustomers; cbRegistrationEmailValidation.Checked = CustomerManager.RegistrationEmailValidation; cbEnableCompareProducts.Checked = ProductManager.CompareProductsEnabled; cbEnableWishlist.Checked = SettingManager.GetSettingValueBoolean("Common.EnableWishlist"); cbEnableEmailAFriend.Checked = SettingManager.GetSettingValueBoolean("Common.EnableEmailAFirend"); cbRecentlyViewedProductsEnabled.Checked = ProductManager.RecentlyViewedProductsEnabled; cbRecentlyAddedProductsEnabled.Checked = ProductManager.RecentlyAddedProductsEnabled; cbNotifyAboutNewProductReviews.Checked = ProductManager.NotifyAboutNewProductReviews; cbShowBestsellersOnHomePage.Checked = SettingManager.GetSettingValueBoolean("Display.ShowBestsellersOnMainPage"); cbProductsAlsoPurchased.Checked = ProductManager.ProductsAlsoPurchasedEnabled; txtProductsAlsoPurchasedNumber.Value = ProductManager.ProductsAlsoPurchasedNumber; }
/// <summary> /// Deletes measure dimension /// </summary> /// <param name="measureDimension">Measure dimension</param> public virtual void DeleteMeasureDimension(MeasureDimension measureDimension) { _measureDimensionRepository.Delete(measureDimension); }
public virtual async Task <decimal> ConvertFromPrimaryDimensionAsync(decimal quantity, MeasureDimension target) { decimal result = quantity; var baseDimensionIn = await _db.MeasureDimensions.FindByIdAsync(_measureSettings.BaseDimensionId); if (result != decimal.Zero && target.Id != baseDimensionIn.Id) { decimal exchangeRatio = target.Ratio; if (exchangeRatio == decimal.Zero) { throw new SmartException(string.Format("Exchange ratio not set for dimension [{0}]", target.Name)); } result *= exchangeRatio; } return(result); }
public static MeasureDimensionModel ToModel(this MeasureDimension entity) { return(AutoMapperConfiguration.Mapper.Map <MeasureDimension, MeasureDimensionModel>(entity)); }
public virtual async Task <decimal> ConvertDimensionAsync(decimal quantity, MeasureDimension source, MeasureDimension target, bool round = true) { decimal result = quantity; if (result != decimal.Zero && source.Id != target.Id) { result = await ConvertToPrimaryDimensionAsync(result, source); result = await ConvertFromPrimaryDimensionAsync(result, target); } if (round) { result = Math.Round(result, 2); } return(result); }
public static MeasureDimension ToEntity(this MeasureDimensionModel model, MeasureDimension destination) { return model.MapTo(destination); }
private string CreateRequest(string AccessKey, string Username, string Password, ShipmentPackage ShipmentPackage, UPSCustomerClassification customerClassification, UPSPickupType pickupType, UPSPackagingType packagingType) { int length = Convert.ToInt32(Math.Ceiling(ShipmentPackage.GetTotalLength())); int height = Convert.ToInt32(Math.Ceiling(ShipmentPackage.GetTotalHeight())); int width = Convert.ToInt32(Math.Ceiling(ShipmentPackage.GetTotalWidth())); int weight = Convert.ToInt32(Math.Ceiling(ShippingManager.GetShoppingCartTotalWeigth(ShipmentPackage.Items))); string zipPostalCodeFrom = ShipmentPackage.ZipPostalCodeFrom; string zipPostalCodeTo = ShipmentPackage.ShippingAddress.ZipPostalCode; string countryCodeFrom = ShipmentPackage.CountryFrom.TwoLetterISOCode; string countryCodeTo = ShipmentPackage.ShippingAddress.Country.TwoLetterISOCode; //TODO convert measure weight MeasureWeight baseWeightIn = MeasureManager.BaseWeightIn; if (baseWeightIn.SystemKeyword != "lb") { throw new NopException("UPS shipping service. Base weight should be set to lb(s)"); } //TODO convert measure dimension MeasureDimension baseDimensionIn = MeasureManager.BaseDimensionIn; if (baseDimensionIn.SystemKeyword != "inches") { throw new NopException("UPS shipping service. Base dimension should be set to inch(es)"); } StringBuilder sb = new StringBuilder(); sb.Append("<?xml version='1.0'?>"); sb.Append("<AccessRequest xml:lang='en-US'>"); sb.AppendFormat("<AccessLicenseNumber>{0}</AccessLicenseNumber>", AccessKey); sb.AppendFormat("<UserId>{0}</UserId>", Username); sb.AppendFormat("<Password>{0}</Password>", Password); sb.Append("</AccessRequest>"); sb.Append("<?xml version='1.0'?>"); sb.Append("<RatingServiceSelectionRequest xml:lang='en-US'>"); sb.Append("<Request>"); sb.Append("<TransactionReference>"); sb.Append("<CustomerContext>Bare Bones Rate Request</CustomerContext>"); sb.Append("<XpciVersion>1.0001</XpciVersion>"); sb.Append("</TransactionReference>"); sb.Append("<RequestAction>Rate</RequestAction>"); sb.Append("<RequestOption>Shop</RequestOption>"); sb.Append("</Request>"); sb.Append("<PickupType>"); sb.AppendFormat("<Code>{0}</Code>", GetPickupTypeCode(pickupType)); sb.Append("</PickupType>"); sb.Append("<CustomerClassification>"); sb.AppendFormat("<Code>{0}</Code>", GetCustomerClassificationCode(customerClassification)); sb.Append("</CustomerClassification>"); sb.Append("<Shipment>"); sb.Append("<Shipper>"); sb.Append("<Address>"); sb.AppendFormat("<PostalCode>{0}</PostalCode>", zipPostalCodeFrom); sb.AppendFormat("<CountryCode>{0}</CountryCode>", countryCodeFrom); sb.Append("</Address>"); sb.Append("</Shipper>"); sb.Append("<ShipTo>"); sb.Append("<Address>"); sb.Append("<ResidentialAddressIndicator/>"); sb.AppendFormat("<PostalCode>{0}</PostalCode>", zipPostalCodeTo); sb.AppendFormat("<CountryCode>{0}</CountryCode>", countryCodeTo); sb.Append("</Address>"); sb.Append("</ShipTo>"); sb.Append("<ShipFrom>"); sb.Append("<Address>"); sb.AppendFormat("<PostalCode>{0}</PostalCode>", zipPostalCodeFrom); sb.AppendFormat("<CountryCode>{0}</CountryCode>", countryCodeFrom); sb.Append("</Address>"); sb.Append("</ShipFrom>"); sb.Append("<Service>"); //UNDONE set correct service code sb.Append("<Code>03</Code>"); sb.Append("</Service>"); if ((!IsPackageTooHeavy(weight)) && (!IsPackageTooLarge(length, height, width))) { sb.Append("<Package>"); sb.Append("<PackagingType>"); sb.AppendFormat("<Code>{0}</Code>", GetPackagingTypeCode(packagingType)); sb.Append("</PackagingType>"); sb.Append("<Dimensions>"); sb.AppendFormat("<Length>{0}</Length>", length); sb.AppendFormat("<Width>{0}</Width>", width); sb.AppendFormat("<Height>{0}</Height>", height); sb.Append("</Dimensions>"); sb.Append("<PackageWeight>"); sb.AppendFormat("<Weight>{0}</Weight>", weight); sb.Append("</PackageWeight>"); sb.Append("</Package>"); } else { int totalPackages = 1; int totalPackagesDims = 1; int totalPackagesWeights = 1; if (IsPackageTooHeavy(weight)) { totalPackagesWeights = Convert.ToInt32(Math.Ceiling((decimal)weight / (decimal)MAXPACKAGEWEIGHT)); } if (IsPackageTooLarge(length, height, width)) { totalPackagesDims = TotalPackageSize(length, height, width) / 108; } totalPackages = totalPackagesDims > totalPackagesWeights ? totalPackagesDims : totalPackagesWeights; if (totalPackages == 0) { totalPackages = 1; } int weight2 = weight / totalPackages; int height2 = height / totalPackages; int width2 = width / totalPackages; for (int i = 0; i < totalPackages; i++) { sb.Append("<Package>"); sb.Append("<PackagingType>"); sb.AppendFormat("<Code>{0}</Code>", GetPackagingTypeCode(packagingType)); sb.Append("</PackagingType>"); sb.Append("<Dimensions>"); sb.AppendFormat("<Length>{0}</Length>", length); sb.AppendFormat("<Width>{0}</Width>", width2); sb.AppendFormat("<Height>{0}</Height>", height2); sb.Append("</Dimensions>"); sb.Append("<PackageWeight>"); sb.AppendFormat("<Weight>{0}</Weight>", weight2); sb.Append("</PackageWeight>"); sb.Append("</Package>"); } } sb.Append("</Shipment>"); sb.Append("</RatingServiceSelectionRequest>"); string requestString = sb.ToString(); return(requestString); }
/// <summary> /// Gets available shipping options /// </summary> /// <param name="ShipmentPackage">Shipment package</param> /// <param name="Error">Error</param> /// <returns>Shipping options</returns> public ShippingOptionCollection GetShippingOptions(ShipmentPackage ShipmentPackage, ref string Error) { ShippingOptionCollection shippingOptions = new ShippingOptionCollection(); if (ShipmentPackage == null) { throw new ArgumentNullException("ShipmentPackage"); } if (ShipmentPackage.Items == null) { throw new NopException("No shipment items"); } if (ShipmentPackage.ShippingAddress == null) { Error = "Shipping address is not set"; return(shippingOptions); } if (ShipmentPackage.ShippingAddress.Country == null) { Error = "Shipping country is not set"; return(shippingOptions); } MeasureWeight baseWeightIn = MeasureManager.BaseWeightIn; if (baseWeightIn.SystemKeyword != "lb") { throw new NopException("USPS shipping service. Base weight should be set to lb(s)"); } MeasureDimension baseDimensionIn = MeasureManager.BaseDimensionIn; if (baseDimensionIn.SystemKeyword != "inches") { throw new NopException("USPS shipping service. Base dimension should be set to inch(es)"); } RateRequest request = CreateRateRequest(ShipmentPackage); RateService service = new RateService(); // Initialize the service service.Url = SettingManager.GetSettingValue("ShippingRateComputationMethod.FedEx.URL"); try { // This is the call to the web service passing in a RateRequest and returning a RateReply RateReply reply = service.getRates(request); // Service call // if (reply.HighestSeverity == NotificationSeverityType.SUCCESS || reply.HighestSeverity == NotificationSeverityType.NOTE || reply.HighestSeverity == NotificationSeverityType.WARNING) // check if the call was successful { if (reply != null && reply.RateReplyDetails != null) { shippingOptions = ParseResponse(reply); } else { Error = "Could not get reply from shipping server"; } } else { Debug.WriteLine(reply.Notifications[0].Message); Error = reply.Notifications[0].Message; } } catch (SoapException e) { Debug.WriteLine(e.Detail.InnerText); Error = e.Detail.InnerText; } catch (Exception e) { Debug.WriteLine(e.Message); Error = e.Message; } if (String.IsNullOrEmpty(Error) && shippingOptions.Count == 0) { Error = "Shipping options could not be loaded"; } return(shippingOptions); }
public static MeasureDimension ToEntity(this MeasureDimensionModel model, MeasureDimension entity) { MapperFactory.Map(model, entity); return(entity); }
/// <summary> /// Updates the measure dimension /// </summary> /// <param name="measure">Measure dimension</param> public virtual void UpdateMeasureDimension(MeasureDimension measure) { _measureDimensionRepository.Update(measure); }
protected MeasureDimension Save() { MeasureDimension measureDimension = ctrlMeasureDimensionInfo.SaveInfo(); return(measureDimension); }
public void TestInitialize() { _measureDimensionInches = new MeasureDimension { Id = "1", Name = "inch(es)", SystemKeyword = "inches", Ratio = 1M, DisplayOrder = 1, }; _measureDimensionFeets = new MeasureDimension { Id = "2", Name = "feet", SystemKeyword = "feet", Ratio = 0.08333333M, DisplayOrder = 2, }; _measureDimensionMeters = new MeasureDimension { Id = "3", Name = "meter(s)", SystemKeyword = "meters", Ratio = 0.0254M, DisplayOrder = 3, }; _measureDimensionMilimeters = new MeasureDimension { Id = "4", Name = "millimetre(s)", SystemKeyword = "millimetres", Ratio = 25.4M, DisplayOrder = 4, }; _measureWeightOunces = new MeasureWeight { Id = "1", Name = "ounce(s)", SystemKeyword = "ounce", Ratio = 16M, DisplayOrder = 1, }; _measureWeightPounds = new MeasureWeight { Id = "2", Name = "lb(s)", SystemKeyword = "lb", Ratio = 1M, DisplayOrder = 2, }; _measureWeightKilograms = new MeasureWeight { Id = "3", Name = "kg(s)", SystemKeyword = "kg", Ratio = 0.45359237M, DisplayOrder = 3, }; _measureWeightGrams = new MeasureWeight { Id = "4", Name = "gram(s)", SystemKeyword = "grams", Ratio = 453.59237M, DisplayOrder = 4, }; var tempMeasureDimensionRepository = new Mock <IRepository <MeasureDimension> >(); { var IMongoCollection = new Mock <IMongoCollection <MeasureDimension> >().Object; IMongoCollection.InsertOne(_measureDimensionInches); IMongoCollection.InsertOne(_measureDimensionFeets); IMongoCollection.InsertOne(_measureDimensionMeters); IMongoCollection.InsertOne(_measureDimensionMilimeters); tempMeasureDimensionRepository.Setup(x => x.Table).Returns(IMongoCollection.AsQueryable()); tempMeasureDimensionRepository.Setup(x => x.GetByIdAsync(_measureDimensionInches.Id)).ReturnsAsync(_measureDimensionInches); tempMeasureDimensionRepository.Setup(x => x.GetByIdAsync(_measureDimensionFeets.Id)).ReturnsAsync(_measureDimensionFeets); tempMeasureDimensionRepository.Setup(x => x.GetByIdAsync(_measureDimensionMeters.Id)).ReturnsAsync(_measureDimensionMeters); tempMeasureDimensionRepository.Setup(x => x.GetByIdAsync(_measureDimensionMilimeters.Id)).ReturnsAsync(_measureDimensionMilimeters); tempMeasureDimensionRepository.Setup(x => x.GetByIdAsync(_measureDimensionInches.Id)).ReturnsAsync(_measureDimensionInches); tempMeasureDimensionRepository.Setup(x => x.GetByIdAsync(_measureDimensionFeets.Id)).ReturnsAsync(_measureDimensionFeets); tempMeasureDimensionRepository.Setup(x => x.GetByIdAsync(_measureDimensionMeters.Id)).ReturnsAsync(_measureDimensionMeters); tempMeasureDimensionRepository.Setup(x => x.GetByIdAsync(_measureDimensionMilimeters.Id)).ReturnsAsync(_measureDimensionMilimeters); _measureDimensionRepository = tempMeasureDimensionRepository.Object; } var tempMeasureWeightRepository = new Mock <IRepository <MeasureWeight> >(); { var IMongoCollection = new Mock <IMongoCollection <MeasureWeight> >().Object; IMongoCollection.InsertOne(_measureWeightOunces); IMongoCollection.InsertOne(_measureWeightPounds); IMongoCollection.InsertOne(_measureWeightKilograms); IMongoCollection.InsertOne(_measureWeightGrams); tempMeasureWeightRepository.Setup(x => x.Table).Returns(IMongoCollection.AsQueryable()); tempMeasureWeightRepository.Setup(x => x.GetByIdAsync(_measureWeightOunces.Id)).ReturnsAsync(_measureWeightOunces); tempMeasureWeightRepository.Setup(x => x.GetByIdAsync(_measureWeightPounds.Id)).ReturnsAsync(_measureWeightPounds); tempMeasureWeightRepository.Setup(x => x.GetByIdAsync(_measureWeightKilograms.Id)).ReturnsAsync(_measureWeightKilograms); tempMeasureWeightRepository.Setup(x => x.GetByIdAsync(_measureWeightGrams.Id)).ReturnsAsync(_measureWeightGrams); tempMeasureWeightRepository.Setup(x => x.GetByIdAsync(_measureWeightOunces.Id)).ReturnsAsync(_measureWeightOunces); tempMeasureWeightRepository.Setup(x => x.GetByIdAsync(_measureWeightPounds.Id)).ReturnsAsync(_measureWeightPounds); tempMeasureWeightRepository.Setup(x => x.GetByIdAsync(_measureWeightKilograms.Id)).ReturnsAsync(_measureWeightKilograms); tempMeasureWeightRepository.Setup(x => x.GetByIdAsync(_measureWeightGrams.Id)).ReturnsAsync(_measureWeightGrams); _measureWeightRepository = tempMeasureWeightRepository.Object; } _measureUnits = new MeasureUnit { Id = "1", Name = "pcs.", }; var tempMeasureUnitRepository = new Mock <IRepository <MeasureUnit> >(); { var IMongoCollection = new Mock <IMongoCollection <MeasureUnit> >().Object; IMongoCollection.InsertOne(_measureUnits); tempMeasureUnitRepository.Setup(x => x.Table).Returns(IMongoCollection.AsQueryable()); tempMeasureUnitRepository.Setup(x => x.GetById(_measureUnits.Id)).Returns(_measureUnits); _measureUnitRepository = tempMeasureUnitRepository.Object; } _measureSettings = new MeasureSettings(); _measureSettings.BaseDimensionId = _measureDimensionInches.Id; //inch(es) because all other dimensions are in relation to inches _measureSettings.BaseWeightId = _measureWeightPounds.Id; //lb(s) because all other weights are in relation to pounds var tempEventPublisher = new Mock <IMediator>(); { //tempEventPublisher.Setup(x => x.PublishAsync(It.IsAny<object>())); _eventPublisher = tempEventPublisher.Object; } _serviceProvider = new Mock <IServiceProvider>().Object; _measureService = new MeasureService(new TestMemoryCacheManager(new Mock <IMemoryCache>().Object, _eventPublisher), _measureDimensionRepository, _measureWeightRepository, _measureUnitRepository, _measureSettings, _eventPublisher); }
public new void SetUp() { measureDimension1 = new MeasureDimension { Id = 1, Name = "inch(es)", SystemKeyword = "inches", Ratio = 1M, DisplayOrder = 1 }; measureDimension2 = new MeasureDimension { Id = 2, Name = "feet", SystemKeyword = "feet", Ratio = 0.08333333M, DisplayOrder = 2 }; measureDimension3 = new MeasureDimension { Id = 3, Name = "meter(s)", SystemKeyword = "meters", Ratio = 0.0254M, DisplayOrder = 3 }; measureDimension4 = new MeasureDimension { Id = 4, Name = "millimetre(s)", SystemKeyword = "millimetres", Ratio = 25.4M, DisplayOrder = 4 }; measureWeight1 = new MeasureWeight { Id = 1, Name = "ounce(s)", SystemKeyword = "ounce", Ratio = 16M, DisplayOrder = 1 }; measureWeight2 = new MeasureWeight { Id = 2, Name = "lb(s)", SystemKeyword = "lb", Ratio = 1M, DisplayOrder = 2 }; measureWeight3 = new MeasureWeight { Id = 3, Name = "kg(s)", SystemKeyword = "kg", Ratio = 0.45359237M, DisplayOrder = 3 }; measureWeight4 = new MeasureWeight { Id = 4, Name = "gram(s)", SystemKeyword = "grams", Ratio = 453.59237M, DisplayOrder = 4 }; _measureDimensionRepository = new FakeRepository <MeasureDimension>(new List <MeasureDimension> { measureDimension1, measureDimension2, measureDimension3, measureDimension4 }); _measureWeightRepository = new FakeRepository <MeasureWeight>(new List <MeasureWeight> { measureWeight1, measureWeight2, measureWeight3, measureWeight4 }); _measureSettings = new MeasureSettings { BaseDimensionId = measureDimension1.Id, //inch(es) BaseWeightId = measureWeight2.Id //lb(s) }; _eventPublisher = new Mock <IEventPublisher>(); _eventPublisher.Setup(x => x.Publish(It.IsAny <object>())); _measureService = new MeasureService(_measureDimensionRepository, _measureWeightRepository, _measureSettings); }
public Task Add(MeasureDimension measureDimension, CancellationToken cancellationToken) { return(_repository.UpSert(measureDimension, cancellationToken)); }
private string CreateRequest(string Username, string Password, ShipmentPackage ShipmentPackage) { int length = Convert.ToInt32(Math.Ceiling(ShipmentPackage.GetTotalLength())); int height = Convert.ToInt32(Math.Ceiling(ShipmentPackage.GetTotalHeight())); int width = Convert.ToInt32(Math.Ceiling(ShipmentPackage.GetTotalWidth())); decimal weight = ShippingManager.GetShoppingCartTotalWeigth(ShipmentPackage.Items); string zipPostalCodeFrom = ShipmentPackage.ZipPostalCodeFrom; string zipPostalCodeTo = ShipmentPackage.ShippingAddress.ZipPostalCode; //valid values for testing. http://testing.shippingapis.com/ShippingAPITest.dll //Zip to = "20008"; Zip from ="10022"; weight = 2; //TODO convert measure weight MeasureWeight baseWeightIn = MeasureManager.BaseWeightIn; if (baseWeightIn.SystemKeyword != "lb") { throw new NopException("USPS shipping service. Base weight should be set to lb(s)"); } //TODO convert measure dimension MeasureDimension baseDimensionIn = MeasureManager.BaseDimensionIn; if (baseDimensionIn.SystemKeyword != "inches") { throw new NopException("USPS shipping service. Base dimension should be set to inch(es)"); } int pounds = Convert.ToInt32(Math.Truncate(weight)); //int ounces = Convert.ToInt32((weight - pounds) * 16.0M); int ounces = 0; StringBuilder sb = new StringBuilder(); sb.AppendFormat("<RateV3Request USERID=\"{0}\" PASSWORD=\"{1}\">", Username, Password); USPSStrings xmlStrings = new USPSStrings(); // Create new instance with string array if ((!IsPackageTooHeavy(pounds)) && (!IsPackageTooLarge(length, height, width))) { USPSPackageSize packageSize = GetPackageSize(length, height, width); // RJH get all XML strings not commented out for USPSStrings. // RJH V3 USPS Service must be Express, Express SH, Express Commercial, Express SH Commercial, First Class, Priority, Priority Commercial, Parcel, Library, BPM, Media, ALL or ONLINE; foreach (string element in xmlStrings.Elements) // Loop over elements with property { sb.Append("<Package ID=\"0\">"); // sb.AppendFormat("<Service>{0}</Service>", USPSService.All); sb.AppendFormat("<Service>{0}</Service>", element); sb.AppendFormat("<ZipOrigination>{0}</ZipOrigination>", zipPostalCodeFrom); sb.AppendFormat("<ZipDestination>{0}</ZipDestination>", zipPostalCodeTo); sb.AppendFormat("<Pounds>{0}</Pounds>", pounds); sb.AppendFormat("<Ounces>{0}</Ounces>", ounces); sb.AppendFormat("<Size>{0}</Size>", packageSize); sb.Append("<Machinable>FALSE</Machinable>"); sb.Append("</Package>"); } } else { int totalPackages = 1; int totalPackagesDims = 1; int totalPackagesWeights = 1; if (IsPackageTooHeavy(pounds)) { totalPackagesWeights = Convert.ToInt32(Math.Ceiling((decimal)pounds / (decimal)MAXPACKAGEWEIGHT)); } if (IsPackageTooLarge(length, height, width)) { totalPackagesDims = TotalPackageSize(length, height, width) / 108; } totalPackages = totalPackagesDims > totalPackagesWeights ? totalPackagesDims : totalPackagesWeights; if (totalPackages == 0) { totalPackages = 1; } int pounds2 = pounds / totalPackages; int ounces2 = ounces / totalPackages; int height2 = height / totalPackages; int width2 = width / totalPackages; USPSPackageSize packageSize = GetPackageSize(length, height2, width2); for (int i = 0; i < totalPackages; i++) { foreach (string element in xmlStrings.Elements) { sb.AppendFormat("<Package ID=\"{0}\">", i.ToString()); // sb.AppendFormat("<Service>{0}</Service>", USPSService.All); sb.AppendFormat("<Service>{0}</Service>", element); sb.AppendFormat("<ZipOrigination>{0}</ZipOrigination>", zipPostalCodeFrom); sb.AppendFormat("<ZipDestination>{0}</ZipDestination>", zipPostalCodeTo); sb.AppendFormat("<Pounds>{0}</Pounds>", pounds2); sb.AppendFormat("<Ounces>{0}</Ounces>", ounces2); sb.AppendFormat("<Size>{0}</Size>", packageSize); sb.Append("<Machinable>FALSE</Machinable>"); sb.Append("</Package>"); } } } sb.Append("</RateV3Request>"); string requestString = "API=RateV3&XML=" + sb.ToString(); return(requestString); }
/// <returns>A task that represents the asynchronous operation</returns> private async Task <int> ConvertFromPrimaryMeasureDimensionAsync(decimal quantity, MeasureDimension usedMeasureDimension) { return(Convert.ToInt32(Math.Ceiling(await _measureService.ConvertFromPrimaryMeasureDimensionAsync(quantity, usedMeasureDimension)))); }
/// <summary> /// Inserts a measure dimension /// </summary> /// <param name="measure">Measure dimension</param> /// <returns>A task that represents the asynchronous operation</returns> public virtual async Task InsertMeasureDimensionAsync(MeasureDimension measure) { await _measureDimensionRepository.InsertAsync(measure); }
public static MeasureDimension ToEntity(this MeasureDimensionModel model, MeasureDimension destination) { return(Mapper.Map(model, destination)); }
/// <summary> /// Updates the measure dimension /// </summary> /// <param name="measure">Measure dimension</param> /// <returns>A task that represents the asynchronous operation</returns> public virtual async Task UpdateMeasureDimensionAsync(MeasureDimension measure) { await _measureDimensionRepository.UpdateAsync(measure); }
public new void SetUp() { measureDimension1 = new MeasureDimension { Id = 1, Name = "inch(es)", SystemKeyword = "inches", Ratio = 1M, DisplayOrder = 1 }; measureDimension2 = new MeasureDimension { Id = 2, Name = "feet", SystemKeyword = "feet", Ratio = 0.08333333M, DisplayOrder = 2 }; measureDimension3 = new MeasureDimension { Id = 3, Name = "meter(s)", SystemKeyword = "meters", Ratio = 0.0254M, DisplayOrder = 3 }; measureDimension4 = new MeasureDimension { Id = 4, Name = "millimetre(s)", SystemKeyword = "millimetres", Ratio = 25.4M, DisplayOrder = 4 }; measureWeight1 = new MeasureWeight { Id = 1, Name = "ounce(s)", SystemKeyword = "ounce", Ratio = 16M, DisplayOrder = 1 }; measureWeight2 = new MeasureWeight { Id = 2, Name = "lb(s)", SystemKeyword = "lb", Ratio = 1M, DisplayOrder = 2 }; measureWeight3 = new MeasureWeight { Id = 3, Name = "kg(s)", SystemKeyword = "kg", Ratio = 0.45359237M, DisplayOrder = 3 }; measureWeight4 = new MeasureWeight { Id = 4, Name = "gram(s)", SystemKeyword = "grams", Ratio = 453.59237M, DisplayOrder = 4 }; _measureDimensionRepository = new Mock <IRepository <MeasureDimension> >(); _measureDimensionRepository.Setup(x => x.Table).Returns(new List <MeasureDimension> { measureDimension1, measureDimension2, measureDimension3, measureDimension4 }.AsQueryable()); _measureDimensionRepository.Setup(x => x.GetById(measureDimension1.Id)).Returns(measureDimension1); _measureDimensionRepository.Setup(x => x.GetById(measureDimension2.Id)).Returns(measureDimension2); _measureDimensionRepository.Setup(x => x.GetById(measureDimension3.Id)).Returns(measureDimension3); _measureDimensionRepository.Setup(x => x.GetById(measureDimension4.Id)).Returns(measureDimension4); _measureWeightRepository = new Mock <IRepository <MeasureWeight> >(); _measureWeightRepository.Setup(x => x.Table).Returns(new List <MeasureWeight> { measureWeight1, measureWeight2, measureWeight3, measureWeight4 }.AsQueryable()); _measureWeightRepository.Setup(x => x.GetById(measureWeight1.Id)).Returns(measureWeight1); _measureWeightRepository.Setup(x => x.GetById(measureWeight2.Id)).Returns(measureWeight2); _measureWeightRepository.Setup(x => x.GetById(measureWeight3.Id)).Returns(measureWeight3); _measureWeightRepository.Setup(x => x.GetById(measureWeight4.Id)).Returns(measureWeight4); var cacheManager = new TestMemoryCacheManager(new Mock <IMemoryCache>().Object); _measureSettings = new MeasureSettings { BaseDimensionId = measureDimension1.Id, //inch(es) BaseWeightId = measureWeight2.Id //lb(s) }; _eventPublisher = new Mock <IEventPublisher>(); _eventPublisher.Setup(x => x.Publish(It.IsAny <object>())); _measureService = new MeasureService(cacheManager, _eventPublisher.Object, _measureDimensionRepository.Object, _measureWeightRepository.Object, _measureSettings); }
/// <summary> /// Deletes measure dimension /// </summary> /// <param name="measureDimension">Measure dimension</param> /// <returns>A task that represents the asynchronous operation</returns> public virtual async Task DeleteMeasureDimensionAsync(MeasureDimension measureDimension) { await _measureDimensionRepository.DeleteAsync(measureDimension); }
public virtual decimal ConvertDimension(decimal quantity, MeasureDimension sourceMeasureDimension, MeasureDimension targetMeasureDimension, bool round = true) { decimal result = quantity; if (result != decimal.Zero && sourceMeasureDimension.Id != targetMeasureDimension.Id) { result = ConvertToPrimaryMeasureDimension(result, sourceMeasureDimension); result = ConvertFromPrimaryMeasureDimension(result, targetMeasureDimension); } if (round) { result = Math.Round(result, 2); } return(result); }
/// <summary> /// Inserts a measure dimension /// </summary> /// <param name="measure">Measure dimension</param> public virtual void InsertMeasureDimension(MeasureDimension measure) { _measureDimensionRepository.Insert(measure); }
public static MeasureDimension MakeClone(MeasureDimension another) { if (another == null) return null; return another.MakeClone(); }
public int GetLength(GetShippingOptionRequest shipmentPackage, MeasureDimension usedMeasureDimension, MeasureDimension baseUsedMeasureDimension) { decimal lengthTmp, widthTmp, heightTmp; _shippingService.GetDimensions(shipmentPackage.Items, out widthTmp, out lengthTmp, out heightTmp); int packageLength = Convert.ToInt32(Math.Ceiling(lengthTmp / baseUsedMeasureDimension.Ratio * usedMeasureDimension.Ratio)); return(packageLength < 1 ? 1 : packageLength); }