public virtual void Execute(int userId, int vehicleId, ICreateFillupEntryCommand newFillup) { if (newFillup == null) throw new ArgumentNullException("newFillup"); try { var vehicle = _vehicleRepository.GetVehicle(userId, vehicleId); if (vehicle != null) { newFillup.VehicleId = vehicleId; var fillup = newFillup; var entity = ToEntry(fillup); AdjustSurroundingFillupEntries(entity); _fillupRepository.Create(userId, vehicleId, entity); newFillup.Distance = entity.Distance; // update calculated value } } catch (InvalidOperationException ex) { throw new BusinessServicesException(Resources.UnableToAddFillupToVehicleExceptionMessage, ex); } }
public virtual void Execute(int userId, int vehicleId, ICreateFillupEntryCommand newFillup) { if (newFillup == null) { throw new ArgumentNullException("newFillup"); } try { var vehicle = _vehicleRepository.GetVehicle(userId, vehicleId); if (vehicle != null) { newFillup.VehicleId = vehicleId; var fillup = newFillup; var entity = ToEntry(fillup); AdjustSurroundingFillupEntries(entity); _fillupRepository.Create(userId, vehicleId, entity); newFillup.Distance = entity.Distance; // update calculated value } } catch (InvalidOperationException ex) { throw new UnauthorizedException(Resources.UnableToAddFillupToVehicleExceptionMessage, ex); } }
public virtual IEnumerable<ValidationResult> Execute(int userId, int vehicleId, ICreateFillupEntryCommand fillup) { var foundVehicle = _vehicleRepository.GetVehicle(userId, vehicleId); if (foundVehicle == null) { yield return new ValidationResult(Resources.VehicleNotFound); } else { var fillups = _fillupRepository.GetFillups(vehicleId); if (!fillups.Any()) yield break; var priorFillup = fillups.LastOrDefault(f => f.Date <= fillup.Date); if ((priorFillup != null) && (priorFillup.Odometer >= fillup.Odometer)) { yield return new ValidationResult( "Odometer", string.Format(CultureInfo.CurrentUICulture, Resources.OdometerNotGreaterThanPrior, priorFillup.Odometer)); } } }
private static FillupEntry ToEntry(ICreateFillupEntryCommand source) { if (source == null) { return(null); } var fillup = new FillupEntry { FillupEntryId = source.FillupEntryId, Date = source.Date.Value, Distance = source.Distance, Odometer = source.Odometer, PricePerUnit = source.PricePerUnit.Value, Remarks = source.Remarks, TotalUnits = source.TotalUnits.Value, TransactionFee = source.TransactionFee.Value, VehicleId = source.VehicleId, Vendor = source.Vendor ?? source.Location, UnitOfMeasure = source.UnitOfMeasure }; return(fillup); }
private static FillupEntry ToEntry(ICreateFillupEntryCommand source) { if (source == null) { return null; } var fillup = new FillupEntry { FillupEntryId = source.FillupEntryId, Date = source.Date, Distance = source.Distance, Odometer = source.Odometer, PricePerUnit = source.PricePerUnit, Remarks = source.Remarks, TotalUnits = source.TotalUnits, TransactionFee = source.TransactionFee, VehicleId = source.VehicleId, Vendor = source.Vendor, UnitOfMeasure = source.UnitOfMeasure }; return fillup; }
public virtual IEnumerable <ValidationResult> Execute(int userId, int vehicleId, ICreateFillupEntryCommand fillup) { var foundVehicle = _vehicleRepository.GetVehicle(userId, vehicleId); if (foundVehicle == null) { yield return(new ValidationResult(Resources.VehicleNotFound)); } else { var fillups = _fillupRepository.GetFillups(vehicleId); if (!fillups.Any()) { yield break; } var priorFillup = fillups.Where(f => f.Date < fillup.Date).FirstOrDefault(); if ((priorFillup != null) && (priorFillup.Odometer >= fillup.Odometer)) { yield return(new ValidationResult( "Odometer", string.Format(CultureInfo.CurrentUICulture, Resources.OdometerNotGreaterThanPrior, priorFillup.Odometer))); } } }