public ActionResult Index(Guid?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } var course = db.Courses.Find(id); if (course == null) { return(HttpNotFound()); } if (!isMember(id) && !isCourseCreator(course)) { return(RedirectToAction("Index", "Course", new { id = id })); } var model = new CourseAssignments { CourseInfo = course, CanEdit = isCourseCreator(course), CanUpload = isMember(course.Id), CurrentUserId = User.GetPrincipal()?.User.Id }; model.AssignmentList = db.Assignments.Include("Uploads").Include("Uploads.Owner").Where(a => a.Course.Id == id).ToList(); return(View(model)); }
private void UpdateInstructorCourses(string[] selectedCourses, IEnumerable <Course> courses) { if (selectedCourses == null) { CourseAssignments = new List <CourseAssignment>(); return; } var selectedCoursesHS = new HashSet <string>(selectedCourses); var instructorCourses = new HashSet <int> (CourseAssignments.Select(c => c.CourseID)); foreach (var course in courses) { if (selectedCoursesHS.Contains(course.Id.ToString())) { if (!instructorCourses.Contains(course.Id)) { CourseAssignments.Add(new CourseAssignment { Course = course, Instructor = this }); } } else { if (instructorCourses.Contains(course.Id)) { var toRemove = CourseAssignments.Single(ci => ci.CourseID == course.Id); CourseAssignments.Remove(toRemove); } } } }
public void UpdateTalksForCourse() { // add talks for every course recurrence var currentDate = StartDate; var createdTalks = new List <Talk>(); var executionCount = 1; while (currentDate <= EndDate) { var talk = Talks.SingleOrDefault(t => t.DateOfPresentation == currentDate); if (talk == null) { talk = new Talk { Title = Title, CourseId = Id, DateOfPresentation = currentDate, InstructorId = CourseAssignments.First().InstructorID, Description = $"Course execution {executionCount++}", }; Talks.Add(talk); currentDate = currentDate.AddDays(7); } } }
private void UpdateInstructorCourses(IEnumerable <CreateEdit.Command.CourseData> courses) { var assignedCourseIds = courses .Where(x => x.Assigned).Select(x => x.Id) .ToArray(); var removedCourses = CourseAssignments .Where(x => !assignedCourseIds.Contains(x.CourseId)) .ToArray(); var previouslyAssignedCourseIds = CourseAssignments .Select(x => x.CourseId) .ToArray(); var addedCourses = assignedCourseIds .Where(x => !previouslyAssignedCourseIds.Contains(x)) .Select(x => new CourseAssignment { CourseId = x, InstructorId = Id }) .ToArray(); foreach (var removedCourse in removedCourses) { CourseAssignments.Remove(removedCourse); } foreach (var addedCourse in addedCourses) { CourseAssignments.Add(addedCourse); } }
public async Task <IActionResult> PostCourseAssignments([FromBody] CourseAssignments courseAssignments) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } _context.CourseAsignmentss.Add(courseAssignments); await _context.SaveChangesAsync(); return(CreatedAtAction("GetCourseAssignments", new { id = courseAssignments.Assignment_Name }, courseAssignments)); }
public async Task <IActionResult> PutCourseAssignments([FromRoute] string id, [FromBody] CourseAssignments courseAssignments) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (id != courseAssignments.Assignment_Name) { return(BadRequest()); } _context.Entry(courseAssignments).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!CourseAssignmentsExists(id)) { return(NotFound()); } else { throw; } } return(NoContent()); }