Exemplo n.º 1
0
        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);
            }
        }
Exemplo n.º 2
0
        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));
                }
            }
        }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 5
0
        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)));
                }
            }
        }