public ActionResult SaveSubmissionCycle(SubmissionCycle submissionCycle)
        {
            if (submissionCycle.EndDate < submissionCycle.StartDate)
            {
                ModelState.AddModelError("EndDate", "End Date needs to be later than Start Date");
            }

            // We should not let the user add a collection cycle with the same school year and collectionId combination
            // that already exists in the database, or set the school year and collectionId of an existing cycle
            // to ones of another existing collection cycle.
            SubmissionCycle duplicate = _submissionCycleService.SchoolYearCollectionAlreadyExists(submissionCycle);

            if (duplicate != null && (submissionCycle.Id == 0 || submissionCycle.Id != duplicate.Id))
            {
                ModelState.AddModelError("CollectionId", "A collection cycle with this School Year and Collection already exists.");
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _submissionCycleService.SaveSubmissionCycle(submissionCycle);
                    var submissionCycles = _submissionCycleService.GetSubmissionCycles();
                    return(RedirectToAction("Index", new { tab = "submissioncycles" }));
                }
                catch (Exception ex)
                {
                    ModelState.AddModelError("General Error", ex.Message);
                    PopulateDropDownLists(submissionCycle);
                    return(PartialView("Partials/SubmissionCycleEditModal", submissionCycle));
                }
            }
            else
            {
                PopulateDropDownLists(submissionCycle);
                return(PartialView("Partials/SubmissionCycleEditModal", submissionCycle));
            }
        }