// ~/Instructor/Details/{id} public IActionResult Details(int id) { // Πληροφορίες κάποιου καθηγητή var instructor = context.Instructors.FirstOrDefault(i => i.Id == id); if (instructor == null) { TempData["ErrorMessage"] = "Ο καθηγητής δε βρέθηκε."; return(RedirectToAction("Index", "Instructor")); } List <CourseInstructor> courses = context .CourseInstructors .Include(item => item.Course) .Where(ci => ci.InstructorId == id) .ToList(); InstructorDetailsViewModel instructordetailsViewModel = new InstructorDetailsViewModel() { Title = "Στοιχεία καθηγητή " + instructor.FullName, Instructor = instructor, Courses = courses }; return(View(instructordetailsViewModel)); }
public async Task <IActionResult> InstructorDetails(Guid id) { var asg = await _context.Assignments .Include(a => a.Stages) .Include(a => a.Course) .ThenInclude(c => c.Affiliates) .SingleOrDefaultAsync(a => a.ID == id); if (asg == null) { return(NotFound()); } var user = await _userManager.GetUserAsync(User); if (!(asg.Course.RoleFor(user) == CourseJoinTag.ROLE_INSTRUCTOR) && !(asg.Course.OwnerEmail == user.Email) && !(user.IsAdmin)) { return(NotFound()); } var subs = _context.Submissions .Include(s => s.AssignmentStage) .ThenInclude(stg => stg.Assignment) .Include(s => s.ForGroup) .ThenInclude(g => g.Members) .ThenInclude(t => t.ApplicationUser) .Include(s => s.Files) .Include(s => s.Submitter) .OrderByDescending(s => s.AssignmentStage.Seq) .Where(s => s.AssignmentStage.AssignmentId == asg.ID); var incompleteReviews = _context.ReviewAssignments .Include(ra => ra.ApplicationUser) .Include(ra => ra.Submission) .ThenInclude(s => s.AssignmentStage) .OrderByDescending(ra => ra.TimeStamp) .Where(ra => !ra.Complete && ra.Submission.AssignmentStage.AssignmentId == asg.ID); var esubs = subs.Select(s => new ExtendedSubmission { Submission = s, Reviews = _context.Reviews .Where(r => r.Submission.ID == s.ID) .ToList() }); var vm = new InstructorDetailsViewModel { Assignment = asg, Submissions = await esubs.ToListAsync(), IncompleteReviews = await incompleteReviews.ToListAsync() }; return(View(vm)); }
public ActionResult Create() { var model = new InstructorDetailsViewModel(); var allCourses = _courseService.GetAllCourses(); model.Courses = Mapper.Map <IEnumerable <Course>, List <CheckBoxListItem> >(allCourses); model.Cities = _cityService.GetCities().ToSelectListItems(c => c.Name, c => c.Id.ToString()); return(View(model)); }
public ActionResult Create(InstructorDetailsViewModel model) { var instructor = Mapper.Map <InstructorDetailsViewModel, Instructor>(model); _instructorService.CreateInstructor(instructor); var assignedCourses = model.Courses.Where(x => x.IsChecked).Select(x => x.Id).ToList(); assignedCourses.ForEach(c => _courseInstructorService.AssignInstructorToCourse(instructor.Id, c)); return(RedirectToAction("Index")); }
public async Task <IActionResult> GetInstCrStds(int id) { Course course = await _instructorsRepository.GetEnrolledStudents(id); if (course != null) { InstructorDetailsViewModel instructorDetailsVM = Mapper.Map <Course, InstructorDetailsViewModel>(course); return(new OkObjectResult(instructorDetailsVM)); } else { return(NotFound()); } }
public async Task <IActionResult> GetInstCrs(int id) { Instructor instructor = await _instructorsRepository.GetInstructorCourses(id); if (instructor != null) { InstructorDetailsViewModel instructorDetailsVM = Mapper.Map <Instructor, InstructorDetailsViewModel>(instructor); return(new OkObjectResult(instructorDetailsVM)); } else { return(NotFound()); } }
public ActionResult Edit(InstructorDetailsViewModel model) { var instructor = Mapper.Map <InstructorDetailsViewModel, Instructor>(model); //Person properties _instructorService.EditInstructor(instructor); #region Assign and divest courses var assignedCourses = model.Courses.Where(x => x.IsChecked).Select(x => x.Id).ToList(); var divestedCourses = model.Courses.Where(x => !x.IsChecked).Select(x => x.Id).ToList(); assignedCourses.ForEach(c => _courseInstructorService.AssignInstructorToCourse(instructor.Id, c)); divestedCourses.ForEach(c => _courseInstructorService.DivestInstructorFromCourse(instructor.Id, c)); #endregion return(RedirectToAction("Index")); }