public void SetStudentDiplomMark(int lecturerId, int assignedProjectId, int mark) { AuthorizationHelper.ValidateLecturerAccess(Context, lecturerId); Context.AssignedCourseProjects.Single(x => x.Id == assignedProjectId).Mark = mark; Context.SaveChanges(); }
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)); }