/// <summary> /// Creates the assignment. /// </summary> /// <param name="assignmentViewModel">The assignment view model.</param> public void CreateAssignment(AssignmentViewModel assignmentViewModel, int?userId = null) { try { if (assignmentViewModel != null) { Assignment assignment = ObjectMapper.Map <AssignmentViewModel, Model.Entities.Assignment>(assignmentViewModel); assignment = AssignmentManager.Add(assignment); if (assignment != null) { List <string> associations = new List <string>(); associations.Add("CourseModules"); associations.Add("CourseModules.Course"); associations.Add("CourseModules.Course.CourseRegistrations"); var module = ModuleManager.FindAll(associations).Where(m => m.Id.Equals(assignment.ModuleId)).FirstOrDefault(); List <Message> messages = new List <Message>(); messages = StudentMessageViewModelFactory.CreateTeacherAssignmentMessages(module, assignment, userId); MessageManager.AddMessages(messages); } } } catch (Exception ex) { ExceptionManager.HandleException(ex, PolicyNameType.ExceptionReplacing); } }
public void SendMessage(int?ddCourses, string textMessage) { var controller = User is StudentViewModel ? "Student" : "Teacher"; var usersInCourse = _studentAppService.GetUsersForStudent(CurrentUser.Id).Where(s => s.Courses.Any(c => c.Id.Equals(ddCourses.Value))); var users = ddCourses != null?_userAppService.GetUsersByCourse(ddCourses.Value).Where(u => !u.Id.Equals(CurrentUser.Id)).ToList() : new List <UserViewModel>(); users.AddRange(userList); List <Message> messages = StudentMessageViewModelFactory.CreateUserMessage(users, textMessage, CurrentUser); _messageAppService.AddMessages(messages); userList = new List <UserViewModel>(); }
/// <summary> /// Saves the student submission. /// </summary> /// <param name="studentId">The student id.</param> /// <param name="assignmentSubmissionViewModel">The assignment submission view model.</param> /// <param name="setStatusToSubmitted">if set to <c>true</c> [set status to submitted].</param> public AssignmentSubmissionViewModel SaveStudentSubmission(int studentId, AssignmentSubmissionViewModel assignmentSubmissionViewModel, bool setStatusToSubmitted = false) { try { Submission submission = ObjectMapper.Map <AssignmentSubmissionViewModel, Model.Entities.Submission>(assignmentSubmissionViewModel); submission.StudentId = studentId; SubmissionManager.SubmissionForAssignmentAlreadyExists(ref submission); submission.Status = setStatusToSubmitted ? (int)SubmissionStatusType.Submitted : submission.Status; if (submission != null && submission.Id != 0) { SubmissionManager.Update(submission); } else { submission = SubmissionManager.Add(submission); assignmentSubmissionViewModel.Id = submission.Id; } if (submission != null) { List <string> associations = new List <string>(); associations.Add("CourseModules"); associations.Add("CourseModules.Course"); associations.Add("CourseModules.Course.StaffCourses"); AssignmentViewModel assignmentViewModel = GetAssignment(assignmentSubmissionViewModel.AssignmentId); var module = ModuleManager.FindAll(associations).Where(m => m.Id.Equals(assignmentViewModel.ModuleId)).FirstOrDefault(); List <Message> messages = new List <Message>(); messages = StudentMessageViewModelFactory.CreateStudentAssignmentSubmissionMessages(module, assignmentViewModel, studentId); MessageManager.AddMessages(messages); } } catch (Exception ex) { ExceptionManager.HandleException(ex, PolicyNameType.ExceptionReplacing); } return(assignmentSubmissionViewModel); }
/// <summary> /// Adds a student Viewed Message. /// </summary> /// <param name="alertId">The messageId.</param> /// <param name="studentId">The studentId.</param> /// <returns></returns> public void AddStudentViewedMessage(int messageId, int studentId) { try { ViewedMessage studentViewedMessage = ObjectMapper.Map <StudentViewedMessageViewModel, Model.Entities.ViewedMessage>(StudentMessageViewModelFactory.CreateStudentViewedMessageModel(messageId, studentId)); StudentViewedMessageManager.Add(studentViewedMessage); } catch (Exception ex) { ExceptionManager.HandleException(ex, PolicyNameType.ExceptionReplacing); } }