示例#1
0
        public IActionResult SetCurrentCourseCompleteByDate(int id, ReturnPageQuery returnPageQuery)
        {
            var currentCourses = courseDataService.GetCurrentCourses(User.GetCandidateIdKnownNotNull());
            var course         = currentCourses.FirstOrDefault(c => c.Id == id);

            if (course == null)
            {
                logger.LogWarning(
                    $"Attempt to set complete by date for course with id {id} which is not a current course for user with id {User.GetCandidateIdKnownNotNull()}"
                    );
                return(RedirectToAction("StatusCode", "LearningSolutions", new { code = 404 }));
            }

            var courseModel = new CurrentCourseViewModel(course, returnPageQuery);

            if (courseModel.CompleteByDate != null && !courseModel.SelfEnrolled)
            {
                logger.LogWarning(
                    $"Attempt to set complete by date for course with id {id} for user with id ${User.GetCandidateIdKnownNotNull()} " +
                    "but the complete by date has already been set and the user has not self enrolled"
                    );
                return(RedirectToAction("StatusCode", "LearningSolutions", new { code = 403 }));
            }

            var editCompleteByDateViewModel = new EditCompleteByDateViewModel(
                id,
                course.Name,
                LearningItemType.Course,
                courseModel.CompleteByDate,
                returnPageQuery,
                courseModel.ProgressId
                );

            return(View("Current/SetCompleteByDate", editCompleteByDateViewModel));
        }
示例#2
0
        public IActionResult SetCurrentActionPlanResourceCompleteByDate(
            int learningLogItemId,
            EditCompleteByDateFormData formData
            )
        {
            if (!ModelState.IsValid)
            {
                var model = new EditCompleteByDateViewModel(formData, learningLogItemId);
                return(View("Current/SetCompleteByDate", model));
            }

            var completeByDate = DateValidator.IsDateNull(formData.Day, formData.Month, formData.Year)
                ? (DateTime?)null
                : new DateTime(formData.Year !.Value, formData.Month !.Value, formData.Day !.Value);

            actionPlanService.SetCompleteByDate(learningLogItemId, completeByDate);
            return(RedirectToAction("Current"));
        }
示例#3
0
        public IActionResult EditCompleteByDate(
            EditCompleteByDateFormData formData,
            int progressId,
            DelegateProgressAccessRoute accessedVia
            )
        {
            if (!ModelState.IsValid)
            {
                var model = new EditCompleteByDateViewModel(formData, progressId, accessedVia);
                return(View(model));
            }

            var completeByDate = formData.Year != null ? new DateTime(formData.Year.Value, formData.Month !.Value, formData.Day !.Value) : (DateTime?)null;

            progressService.UpdateCompleteByDate(progressId, completeByDate);

            return(RedirectToPreviousPage(formData.DelegateId, progressId, accessedVia));
        }
示例#4
0
        public IActionResult SetCurrentCourseCompleteByDate(
            int id,
            int progressId,
            EditCompleteByDateFormData formData
            )
        {
            if (!ModelState.IsValid)
            {
                var model = new EditCompleteByDateViewModel(formData, id, progressId);
                return(View("Current/SetCompleteByDate", model));
            }

            var completeByDate = DateValidator.IsDateNull(formData.Day, formData.Month, formData.Year)
                ? (DateTime?)null
                : new DateTime(formData.Year !.Value, formData.Month !.Value, formData.Day !.Value);

            courseDataService.SetCompleteByDate(progressId, User.GetCandidateIdKnownNotNull(), completeByDate);
            return(RedirectToAction("Current"));
        }