// // 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)); }
// // 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)); }
public ActionResult Edit(int id) { var reminderViewModel = new ReminderDetailsViewModel() { ReminderItem = _reminderRepository.GetReminders().Where(reminder => reminder.Id == id) .Join( _userReminderRelationsRepository.GetUserReminderRelations() .Where(relation => relation.UserId == User.Identity.GetUserId()), reminder => reminder.Id, relation => relation.ReminderId, (reminder, relation) => reminder).FirstOrDefault() }; if (reminderViewModel.ReminderItem != null) { return(View(reminderViewModel)); } return(RedirectToAction("MyReminders", "Home")); }