public async Task <CourseSearchQueue> AddAsync(CourseSearchQueue model) { Context.CourseSearchQueues.Add(model); await Context.SaveChangesAsync(); return(model); }
public IActionResult AddNewSearch([FromBody] CourseSearchQueue newSearchQueue) { var userClaims = User.Claims.AsQueryable(); var userEmail = userClaims.First(x => x.Type.Contains("emailaddress")).Value; newSearchQueue.Status = SearchStatus.New; newSearchQueue.SubmittedByEmail = userEmail ?? ""; courseSearchQueueBll.Add(newSearchQueue); return(Ok()); }
public async Task <CourseSearchQueue> UpdateAsync(CourseSearchQueue model) { try { Context.CourseSearchQueues.AddOrUpdate(model); await Context.SaveChangesAsync(); } catch (Exception ex) { Console.Write(ex.ToString()); } return(model); }
public CourseSearchQueue Update(CourseSearchQueue model) { try { Context.CourseSearchQueues.AddOrUpdate(model); Context.SaveChanges(); } catch (DbEntityValidationException ex) { DisplayDbEntityErrors(ex); } return(model); }
private static async Task SearchForUnusedCourses(CourseSearchQueue nextSearch) { var startSearchTime = DateTime.Now; var courseSearchQueueBll = provider.GetService <ICourseSearchQueueBLL>(); var sendEmailBll = provider.GetService <ISendEmailBLL>(); var numUnusedCoursesFound = 0; var errors = new List <string>(); var enrollmentTermNames = new List <string>(); try { var termIds = nextSearch.TermList.Split(",").Select(x => long.Parse(x)); var unusedCourseBll = provider.GetService <IUnusedCourseBLL>(); client.BaseAddress = new Uri(appSettings.CanvasRedshiftApiUrl); client.DefaultRequestHeaders.Accept.Clear(); client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); // Get a list of enrollment terms for matching name to id var enrollmentTerms = JsonConvert.DeserializeObject <List <EnrollmentTermDTO> >( await client.GetStringAsync("EnrollmentTerm")); enrollmentTermNames = enrollmentTerms.Where(x => nextSearch.TermList.Contains(x.Id)).Select(x => x.Name).ToList(); // New list to place the unused courses var foundUnusedCourses = new List <UnusedCourse>(); // Iterate selected term ids and add unused courses within that term to list foreach (var termId in termIds) { var unUsedCourses = JsonConvert.DeserializeObject <List <UnusedCourseDTO> >( await client.GetStringAsync($"Courses/GetUnusedCourses?termId={termId}")); foundUnusedCourses.AddRange(unUsedCourses.Select(x => new UnusedCourse() { CourseId = x.Id.ToString(), CourseCanvasId = x.CanvasId.ToString(), CourseName = x.Name, CourseSISID = x.SisCourseId, CourseCode = x.Code, TermId = termId.ToString(), Term = enrollmentTerms.First(y => y.Id == termId.ToString()).Name, CourseSearchQueueId = nextSearch.Id, AccountId = x.AccountId })); } numUnusedCoursesFound = foundUnusedCourses.Count; // Separate the existing courses from the new courses var existingCourses = unusedCourseBll.GetAll() .Where(x => foundUnusedCourses.Any(y => y.CourseId == x.CourseId)).ToList(); foreach (var course in existingCourses) { course.CourseSearchQueueId = nextSearch.Id; course.Status = CourseStatus.Active; } foundUnusedCourses.RemoveAll(x => existingCourses.Any(y => y.CourseId == x.CourseId)); unusedCourseBll.AddRange(foundUnusedCourses); unusedCourseBll.UpdateRange(existingCourses); nextSearch.Status = SearchStatus.Completed; courseSearchQueueBll.Update(nextSearch); } catch (Exception ex) { nextSearch.Status = SearchStatus.Failed; nextSearch.StatusMessage = ex.ToString(); errors.Add(nextSearch.StatusMessage); courseSearchQueueBll.Update(nextSearch); } var endSearchTime = DateTime.Now; sendEmailBll.SendUnusedCourseSearchCompletedEmailAsync(startSearchTime, endSearchTime, numUnusedCoursesFound, string.Join(", ", enrollmentTermNames), errors, nextSearch.SubmittedByEmail).GetAwaiter().GetResult(); }
public async Task <CourseSearchQueue> UpdateAsync(CourseSearchQueue model) { model.LastUpdated = DateTime.Now; return(await courseSearchQueueRepository.UpdateAsync(model)); }
public CourseSearchQueue Update(CourseSearchQueue model) { model.LastUpdated = DateTime.Now; return(courseSearchQueueRepository.Update(model)); }
public async Task <CourseSearchQueue> AddAsync(CourseSearchQueue model) { model.DateCreated = DateTime.Now; return(await courseSearchQueueRepository.AddAsync(model)); }
public CourseSearchQueue Add(CourseSearchQueue model) { model.DateCreated = DateTime.Now; return(courseSearchQueueRepository.Add(model)); }
public CourseSearchQueue Remove(CourseSearchQueue model) { throw new NotImplementedException(); }
public CourseSearchQueue Update(CourseSearchQueue model) { Context.CourseSearchQueue.Update(model); Context.SaveChanges(); return(model); }
public CourseSearchQueue Add(CourseSearchQueue model) { Context.CourseSearchQueue.Add(model); Context.SaveChanges(); return(model); }