//
        // GET: /Reminder/Details/1
        public ActionResult Details(int id)
        {
            var reminder = Using<GetReminder>()
                .Execute(id);

            var vehicles = Using<GetVehicleListForUser>()
                .Execute(CurrentUserId);

            var vehicle = vehicles.First(v => v.VehicleId == reminder.VehicleId);

            var reminders = Using<GetUnfulfilledRemindersForVehicle>()
                .Execute(CurrentUserId, reminder.VehicleId, vehicle.Odometer ?? 0)
                .Select(r => new ReminderSummaryModel(r, r.IsOverdue ?? false));

            var viewModel = new ReminderDetailsViewModel
                                {
                                    VehicleList = new VehicleListViewModel(vehicles, vehicle.VehicleId) { IsCollapsed = true },
                                    Reminder = ToFormModel(reminder),
                                    Reminders = new SelectedItemList<ReminderSummaryModel>(reminders, x => x.First(item => item.ReminderId == id)),
                                };

            return View(viewModel);
        }
        //
        // GET: /Reminder/List/1
        public ActionResult List(int vehicleId)
        {
            var vehicles = Using<GetVehicleListForUser>()
                .Execute(CurrentUserId);

            var vehicle = vehicles
                .First(v => v.VehicleId == vehicleId);

            var reminders = Using<GetUnfulfilledRemindersForVehicle>()
                .Execute(CurrentUserId, vehicleId, vehicle.Odometer ?? 0);

            var list = reminders
                .Select(x => new ReminderSummaryModel(x, x.IsOverdue ?? false))
                .ToList();

            var viewModel = new ReminderDetailsViewModel
            {
                VehicleList = new VehicleListViewModel(vehicles, vehicle.VehicleId) { IsCollapsed = true },
                Reminder = ToFormModel(reminders.FirstOrDefault()),
                Reminders = new SelectedItemList<ReminderSummaryModel>(list, Enumerable.FirstOrDefault),
            };

            return View(viewModel);
        }