public ActionResult EditAppointment(EditAppointmentViewModel viewModel) { if (appointmentsService.IsValidModelState()) { Appointment dbAppointment = appointmentsService.GetById(viewModel.AppointmentId); dbAppointment.StartDateTime = viewModel.StartDateTime; double summedMinutes = 0; dbAppointment.Activities.Clear(); List <Activity> activities = activitiesService.GetAll(a => viewModel.CheckedRows.Contains(a.ActivityId)).ToList(); foreach (Activity activity in activities) { summedMinutes += activity.Duration; dbAppointment.Activities.Add(activity); } DateTime startDateTime = viewModel.StartDateTime; dbAppointment.StartDateTime = startDateTime; TimeSpan summedDuration = TimeSpan.FromMinutes(summedMinutes); DateTime endDateTime = startDateTime.Add(summedDuration); dbAppointment.EndDateTime = endDateTime; dbAppointment.UserId = LoginUserSession.Current.UserId; bool hasSavedSuccessfully = appointmentsService.Edit(dbAppointment); if (hasSavedSuccessfully) { TempData["SuccessfullMessage"] = "Appointment added successfully"; return(RedirectToAction("ViewAppointments", "Appointments")); } else { TempData["ErrorMessage"] = "There was a server error while adding the appointment."; return(RedirectToAction("Index", "Home")); } } return(View(viewModel)); }