コード例 #1
0
        public virtual void Execute(int userId, int vehicleId, ICreateReminderCommand reminder)
        {
            if (reminder == null)
            {
                throw new ArgumentNullException("reminder");
            }
            try
            {
                var vehicle = _vehicleRepository.GetVehicle(userId, vehicleId);
                if (vehicle != null)
                {
                    reminder.VehicleId = vehicleId;
                    var entity = ToEntity(reminder);

                    _reminderRepository.Create(vehicleId, entity);

                    // Update reminder fields
                    reminder.ReminderId = entity.ReminderId;
                    reminder.VehicleId  = entity.VehicleId;
                }
            }
            catch (InvalidOperationException ex)
            {
                throw new UnauthorizedException(Resources.UnableToAddReminderToVehicleExceptionMessage, ex);
            }
        }
コード例 #2
0
        static Reminder ToEntity(ICreateReminderCommand source)
        {
            if (source == null)
            {
                return(null);
            }

            return(new Reminder
            {
                DueDate = source.DueDate,
                DueDistance = source.DueDistance,
                Remarks = source.Remarks,
                ReminderId = source.ReminderId,
                Title = source.Title,
                VehicleId = source.VehicleId,
                IsFulfilled = source.IsFulfilled
            });
        }
コード例 #3
0
        static Reminder ToEntity(ICreateReminderCommand source)
        {
            if (source == null)
            {
                return null;
            }

            return new Reminder
                       {
                DueDate = source.DueDate,
                DueDistance = source.DueDistance,
                Remarks = source.Remarks,
                ReminderId = source.ReminderId,
                Title = source.Title,
                VehicleId = source.VehicleId,
                IsFulfilled = source.IsFulfilled
            };
        }
コード例 #4
0
        public virtual IEnumerable<ValidationResult> Execute(int userId, ICreateReminderCommand reminder)
        {
            var foundVehicle = _vehicleRepository.GetVehicle(userId, reminder.VehicleId);

            if (foundVehicle == null)
            {
                yield return new ValidationResult(Resources.VehicleNotFound);
            }
            else
            {
                var stats = CalculateStatistics.Calculate(foundVehicle.Fillups);
                var odometer = stats.Odometer;

                if ((reminder.DueDistance.HasValue) && (reminder.DueDistance.Value <= odometer))
                {
                    yield return new ValidationResult(
                        "DueDistance",
                        string.Format(CultureInfo.CurrentUICulture, Resources.DueDistanceNotGreaterThanOdometer, odometer));
                }
            }
        }
コード例 #5
0
        public virtual IEnumerable <ValidationResult> Execute(int userId, ICreateReminderCommand reminder)
        {
            var foundVehicle = _vehicleRepository.GetVehicle(userId, reminder.VehicleId);

            if (foundVehicle == null)
            {
                yield return(new ValidationResult(Resources.VehicleNotFound));
            }
            else
            {
                var stats    = CalculateStatistics.Calculate(foundVehicle.Fillups);
                var odometer = stats.Odometer;

                if ((reminder.DueDistance.HasValue) && (reminder.DueDistance.Value <= odometer))
                {
                    yield return(new ValidationResult(
                                     "DueDistance",
                                     string.Format(CultureInfo.CurrentUICulture, Resources.DueDistanceNotGreaterThanOdometer, odometer)));
                }
            }
        }
コード例 #6
0
        public virtual void Execute(int userId, int vehicleId, ICreateReminderCommand reminder)
        {
            if (reminder == null) throw new ArgumentNullException("reminder");
            try
            {
                var vehicle = _vehicleRepository.GetVehicle(userId, vehicleId);
                if (vehicle != null)
                {
                    reminder.VehicleId = vehicleId;
                    var entity = ToEntity(reminder);

                    _reminderRepository.Create(vehicleId, entity);

                    // Update reminder fields
                    reminder.ReminderId = entity.ReminderId;
                    reminder.VehicleId = entity.VehicleId;
                }
            }
            catch (InvalidOperationException ex)
            {
                throw new BusinessServicesException(Resources.UnableToAddReminderToVehicleExceptionMessage, ex);
            }
        }