Exemple #1
0
        // ~/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));
        }
Exemple #2
0
        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"));
        }