public async Task <JsonResult> DeleteCourse(int id)
        {
            var unusedCourse = unusedCourseBll.Get(id);

            unusedCourse.Status = CourseStatus.PendingDeletion;
            unusedCourseBll.Update(unusedCourse);

            return(Json(unusedCourse));
        }
        public void RunQueuedUpdates()
        {
            try
            {
                var coursesPendingDeletion = unusedCourseBll.GetAll().Where(x => x.Status == CourseStatus.PendingDeletion).ToList();

                if (coursesPendingDeletion.Any())
                {
                    var coursesClient = new CoursesClient();

                    foreach (var course in coursesPendingDeletion)
                    {
                        if (coursesClient.DeleteCourse(course.CourseId).Result)
                        {
                            course.Status = CourseStatus.Deleted;
                            unusedCourseBll.Update(course);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                FileLogger.Log("RunQueuedUpdates :: " + ex.ToString());
            }
        }
        public async Task <ActionResult> Index(SearchQueueResultViewModel viewModel)
        {
            var unusedCourses = unusedCourseBll.GetAll().Where(x => x.CourseSearchQueueId == viewModel.CourseSearchQueueId).ToList();

            foreach (var course in unusedCourses)
            {
                course.Status = Models.Enums.CourseStatus.PendingDeletion;
                unusedCourseBll.Update(course);
            }

            viewModel.UnusedCourses = unusedCourses;

            return(View(viewModel));
        }
Example #4
0
        static void ProcessCoursesPendingReactivation(IUnusedCourseBLL unusedCourseBll, ISendEmailBLL sendEmailBll)
        {
            var coursesPendingReactivation = unusedCourseBll.GetAll().Where(x => x.Status == CourseStatus.PendingReactivation).ToList();

            foreach (var unusedCourse in coursesPendingReactivation)
            {
                var form = new MultipartFormDataContent();
                form.Add(new StringContent(unusedCourse.CourseId), "course_ids[]");
                form.Add(new StringContent("undelete"), "event");

                var result = client.PutAsync($"accounts/{unusedCourse.AccountId}/courses", form).GetAwaiter()
                             .GetResult();

                if (result.IsSuccessStatusCode)
                {
                    // TODO: This call return an asyncronous task url internal to Canvas.  Need to get the url and wait for it to be completed
                    unusedCourse.Status = CourseStatus.Active;
                    unusedCourseBll.Update(unusedCourse);
                }
            }
        }