public void Can_save_and_load_measureWeight() { var measureWeight = new MeasureWeight { Name = "ounce(s)", SystemKeyword = "ounce", Ratio = 1.12345678M, DisplayOrder = 2, }; var fromDb = SaveAndLoadEntity(measureWeight); fromDb.ShouldNotBeNull(); fromDb.Name.ShouldEqual("ounce(s)"); fromDb.SystemKeyword.ShouldEqual("ounce"); fromDb.Ratio.ShouldEqual(1.12345678M); fromDb.DisplayOrder.ShouldEqual(2); }
/// <summary> /// Converts from primary weight /// </summary> /// <param name="value">Value to convert</param> /// <param name="targetMeasureWeight">Target weight</param> /// <returns>Converted value</returns> public virtual decimal ConvertFromPrimaryMeasureWeight(decimal value, MeasureWeight targetMeasureWeight) { decimal result = value; var baseWeightIn = GetMeasureWeightById(_measureSettings.BaseWeightId); if (result != decimal.Zero && targetMeasureWeight.ID != baseWeightIn.ID) { decimal exchangeRatio = targetMeasureWeight.Ratio; if (exchangeRatio == decimal.Zero) throw new NopException(string.Format("Exchange ratio not set for weight [{0}]", targetMeasureWeight.Name)); result = result * exchangeRatio; } return result; }
/// <summary> /// Converts weight /// </summary> /// <param name="value">Value to convert</param> /// <param name="sourceMeasureWeight">Source weight</param> /// <param name="targetMeasureWeight">Target weight</param> /// <param name="round">A value indicating whether a result should be rounded</param> /// <returns>Converted value</returns> public virtual decimal ConvertWeight(decimal value, MeasureWeight sourceMeasureWeight, MeasureWeight targetMeasureWeight, bool round = true) { decimal result = value; if (result != decimal.Zero && sourceMeasureWeight.ID != targetMeasureWeight.ID) { result = ConvertToPrimaryMeasureWeight(result, sourceMeasureWeight); result = ConvertFromPrimaryMeasureWeight(result, targetMeasureWeight); } if (round) result = Math.Round(result, 2); return result; }
/// <summary> /// Updates the measure weight /// </summary> /// <param name="measure">Measure weight</param> public virtual void UpdateMeasureWeight(MeasureWeight measure) { if (measure == null) throw new ArgumentNullException("measure"); _measureWeightRepository.Update(measure); _cacheManager.RemoveByPattern(MEASUREWEIGHTS_PATTERN_KEY); //event notification _eventPublisher.EntityUpdated(measure); }
public static MeasureWeight ToEntity(this MeasureWeightModel model, MeasureWeight destination) { return Mapper.Map(model, destination); }
private int ConvertFromPrimaryMeasureWeight(decimal quantity, MeasureWeight usedMeasureWeighht) { return Convert.ToInt32(Math.Ceiling(_measureService.ConvertFromPrimaryMeasureWeight(quantity, usedMeasureWeighht))); }
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 = 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 NopNullCache(); _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); }
public ActionResult WeightAdd([Bind(Exclude="Id")] MeasureWeightModel model) { if (!_permissionService.Authorize(StandardPermissionProvider.ManageMeasures)) return AccessDeniedView(); if (!ModelState.IsValid) { return Json(new DataSourceResult {Errors = ModelState.SerializeErrors()}); } var weight = new MeasureWeight(); weight = model.ToEntity(weight); _measureService.InsertMeasureWeight(weight); return new NullJsonResult(); }
public ActionResult WeightAdd([Bind(Exclude="Id")] MeasureWeightModel model, GridCommand command) { if (!_permissionService.Authorize(StandardPermissionProvider.ManageMeasures)) return AccessDeniedView(); if (!ModelState.IsValid) { //display the first model error var modelStateErrors = this.ModelState.Values.SelectMany(x => x.Errors).Select(x => x.ErrorMessage); return Content(modelStateErrors.FirstOrDefault()); } var weight = new MeasureWeight(); weight = model.ToEntity(weight); _measureService.InsertMeasureWeight(weight); return Weights(command); }
/// <summary> /// Converts to primary measure weight /// </summary> /// <param name="quantity">Quantity</param> /// <param name="sourceMeasureWeight">Source weight</param> /// <returns>Converted value</returns> public virtual decimal ConvertToPrimaryMeasureWeight(decimal quantity, MeasureWeight sourceMeasureWeight) { decimal result = quantity; var baseWeightIn = GetMeasureWeightById(_measureSettings.BaseWeightId); if (result != decimal.Zero && sourceMeasureWeight.Id != baseWeightIn.Id) { decimal exchangeRatio = sourceMeasureWeight.Ratio; if (exchangeRatio == decimal.Zero) throw new NopException(string.Format("Exchange ratio not set for weight [{0}]", sourceMeasureWeight.Name)); result = result / exchangeRatio; } return result; }
/// <summary> /// Converts weight /// </summary> /// <param name="value">Value to convert</param> /// <param name="sourceMeasureWeight">Source weight</param> /// <param name="targetMeasureWeight">Target weight</param> /// <param name="round">A value indicating whether a result should be rounded</param> /// <returns>Converted value</returns> public virtual decimal ConvertWeight(decimal value, MeasureWeight sourceMeasureWeight, MeasureWeight targetMeasureWeight, bool round = true) { if (sourceMeasureWeight == null) throw new ArgumentNullException("sourceMeasureWeight"); if (targetMeasureWeight == null) throw new ArgumentNullException("targetMeasureWeight"); decimal result = value; if (result != decimal.Zero && sourceMeasureWeight.Id != targetMeasureWeight.Id) { result = ConvertToPrimaryMeasureWeight(result, sourceMeasureWeight); result = ConvertFromPrimaryMeasureWeight(result, targetMeasureWeight); } if (round) result = Math.Round(result, 2); return result; }
public ActionResult WeightAdd([Bind(Exclude="Id")] MeasureWeightModel model, GridCommand command) { if (!_permissionService.Authorize(StandardPermissionProvider.ManageMeasures)) return AccessDeniedView(); if (!ModelState.IsValid) { return new JsonResult {Data = "error"}; } var weight = new MeasureWeight(); weight = model.ToEntity(weight); _measureService.InsertMeasureWeight(weight); return Weights(command); }