public ActionResult Duplicate(Course course) { if (IsAuthorized(course.ID)) { if (ModelState.IsValid) { try { course.Responsible = (int)SessionManager.GetCurrentUserId(HttpContext.User.Identity.Name); int id_course = CourseModel.CreateCourse(course); List <SlotRange> slotRanges = course.GetSlotRangesForCourse(); int days = 0; foreach (SlotRange sr in slotRanges) { if (days == 0) { TimeSpan span = course.DuplDestDate - sr.StartRes; days = (int)span.TotalDays; } SlotRangeModel.DuplicateSlotRange(sr, days, id_course); } return(RedirectToAction("Index")); } catch (GrException gex) { System.Diagnostics.Debug.WriteLine(gex.UserMessage); System.Diagnostics.Debug.WriteLine(gex.StackTrace); ModelState.AddModelError("", gex.UserMessage); return(View(course)); } } else { // addinge extra error message here in case JS is deactivated on client. ModelState.AddModelError("", "vous avez envoyé des données invalides"); return(View(course)); } } else { SessionManager.RedirectAccessDenied(HttpContext.Request.RequestContext); return(null); } }
public ActionResult Duplicate(int id, SlotRange target) { SlotRange source = SlotRangeModel.GetSlotRange(id); if (source == null) { return(View("NoSuchRange")); } int?rId = source.GetResponsible(); if (IsAuthorized(source)) { TimeSpan span = target.StartRes - source.StartRes; int days = (int)span.TotalDays; SlotRangeModel.DuplicateSlotRange(source, days, source.IdCourse); return(RedirectToAction("CourseRanges", new { id = source.IdCourse })); } else { SessionManager.RedirectAccessDenied(HttpContext.Request.RequestContext); return(null); } }