コード例 #1
0
 public void SetStudentDiplomMark(int lecturerId, int assignedProjectId, int mark)
 {
     AuthorizationHelper.ValidateLecturerAccess(Context, lecturerId);
     Context.AssignedCourseProjects.Single(x => x.Id == assignedProjectId).Mark = mark;
     Context.SaveChanges();
 }
コード例 #2
0
        public PagedList <StudentData> GetGraduateStudentsForGroup(int userId, int groupId, int subjectId,
                                                                   GetPagedListParams parms, bool getBySecretaryForStudent = true)
        {
            var secretaryId = 0;

            if (parms.Filters.ContainsKey("secretaryId"))
            {
                int.TryParse(parms.Filters["secretaryId"], out secretaryId);
            }

            var searchString = "";

            if (parms.Filters.ContainsKey("searchString"))
            {
                searchString = parms.Filters["searchString"];
            }

            var isStudent  = AuthorizationHelper.IsStudent(Context, userId);
            var isLecturer = AuthorizationHelper.IsLecturer(Context, userId);

            if (isStudent)
            {
                userId = Context.Users.Where(x => x.Id == userId)
                         .Select(x => x.Student.AssignedCourseProjects.FirstOrDefault().CourseProject.LecturerId)
                         .Single() ?? 0;
            }

            if (string.IsNullOrWhiteSpace(parms.SortExpression) || parms.SortExpression == "Id")
            {
                parms.SortExpression = "Name";
            }
            var query = Context.Students
                        .Where(x => x.GroupId == groupId)
                        .Where(x => x.AssignedCourseProjects.Any(a => a.CourseProject.SubjectId == subjectId))
                        .Where(x => x.AssignedCourseProjects.Any(a => a.CourseProject.LecturerId == userId));

            if (searchString.Length > 0)
            {
                return((from s in query
                        let lecturer = s.AssignedCourseProjects.FirstOrDefault().CourseProject.Lecturer
                                       let cp = s.AssignedCourseProjects.FirstOrDefault()
                                                where cp.CourseProject.Theme.Contains(searchString) || s.LastName.Contains(searchString)
                                                select new StudentData
                {
                    Id = s.Id,
                    Name = s.LastName + " " + s.FirstName + " " + s.MiddleName,     //todo
                    Mark = s.AssignedCourseProjects.FirstOrDefault().Mark,
                    AssignedCourseProjectId = s.AssignedCourseProjects.FirstOrDefault().Id,
                    Lecturer = lecturer.LastName + " " + lecturer.FirstName + " " + lecturer.MiddleName,     //todo
                    Group = s.AssignedCourseProjects.FirstOrDefault().CourseProject.Theme,
                    PercentageResults = s.CoursePercentagesResults.Select(pr => new PercentageResultData
                    {
                        Id = pr.Id,
                        PercentageGraphId = pr.CoursePercentagesGraphId,
                        StudentId = pr.StudentId,
                        Mark = pr.Mark,
                        Comment = pr.Comments
                    }),
                    CourseProjectConsultationMarks = s.CourseProjectConsultationMarks.Select(cm =>
                                                                                             new CourseProjectConsultationMarkData
                    {
                        Id = cm.Id,
                        ConsultationDateId = cm.ConsultationDateId,
                        StudentId = cm.StudentId,
                        Mark = cm.Mark,
                        Comments = cm.Comments
                    })
                }).ApplyPaging(parms));
            }
            return((from s in query
                    let lecturer = s.AssignedCourseProjects.FirstOrDefault().CourseProject.Lecturer
                                   select new StudentData
            {
                Id = s.Id,
                Name = s.LastName + " " + s.FirstName + " " + s.MiddleName,     //todo
                Mark = s.AssignedCourseProjects.FirstOrDefault().Mark,
                AssignedCourseProjectId = s.AssignedCourseProjects.FirstOrDefault().Id,
                Lecturer = lecturer.LastName + " " + lecturer.FirstName + " " + lecturer.MiddleName,     //todo
                Group = s.AssignedCourseProjects.FirstOrDefault().CourseProject.Theme,
                PercentageResults = s.CoursePercentagesResults.Select(pr => new PercentageResultData
                {
                    Id = pr.Id,
                    PercentageGraphId = pr.CoursePercentagesGraphId,
                    StudentId = pr.StudentId,
                    Mark = pr.Mark,
                    Comment = pr.Comments
                }),
                CourseProjectConsultationMarks = s.CourseProjectConsultationMarks.Select(cm =>
                                                                                         new CourseProjectConsultationMarkData
                {
                    Id = cm.Id,
                    ConsultationDateId = cm.ConsultationDateId,
                    StudentId = cm.StudentId,
                    Mark = cm.Mark,
                    Comments = cm.Comments
                })
            }).ApplyPaging(parms));
        }