/// <summary> /// Submits the homework. /// </summary> /// <param name="assignementId">The assignement identifier.</param> /// <param name="answer">The answer.</param> /// <exception cref="CustomException"> /// </exception> public void SubmitHomework(int assignementId, Answers answer) { try { using (var db = new ELearningDatabaseEntities()) { HomeworkAssignements ha = db.HomeworkAssignements .Where(a => a.AssignementId == assignementId) .First(); //if answer doesn't already exist if (ha.AnswerId == null) { //add the new answer db.Answers.Add(answer); db.SaveChanges(); //add the newly created answer to the homework ha.AnswerId = answer.AnswerId; db.HomeworkAssignements.Attach(ha); db.Entry(ha).State = System.Data.EntityState.Modified; db.SaveChanges(); } else { //else only update the existing answer Answers ans = db.Answers .Where(a => a.AnswerId == ha.AnswerId) .First(); ans.AnswerValue = answer.AnswerValue; db.Answers.Attach(ans); db.Entry(ans).State = System.Data.EntityState.Modified; db.SaveChanges(); } } } catch (ArgumentNullException ane) { throw new CustomException(ane.Message); } catch (InvalidOperationException ex) { throw new CustomException(ex.Message); } }
/// <summary> /// Grades the homework. /// </summary> /// <param name="grade">The grade.</param> /// <param name="dto">The homework grade dto.</param> /// <exception cref="CustomException"> /// </exception> public void GradeHomework(Grades grade, HomeworkGradeDTO dto) { try { using (var db = new ELearningDatabaseEntities()) { HomeworkAssignements ha = db.HomeworkAssignements .Where(h => h.AssignementId == dto.AssignementId) .First(); //if the homework was already graded, we just update the grade value if (ha.GradeId != null && ha.GradeId > 0) { Grades gr = db.Grades .Where(g => g.GradeId == ha.GradeId) .First(); gr.GradeValue = grade.GradeValue; gr.Gradedatetime = grade.Gradedatetime; db.Grades.Attach(gr); db.Entry(gr).State = System.Data.EntityState.Modified; db.SaveChanges(); } else { //add the new grade db.Grades.Add(grade); db.SaveChanges(); //attach the grade to the homework ha.GradeId = grade.GradeId; db.HomeworkAssignements.Attach(ha); db.Entry(ha).State = System.Data.EntityState.Modified; db.SaveChanges(); } } } catch (ArgumentNullException ane) { throw new CustomException(ane.Message); } catch (InvalidOperationException ioe) { throw new CustomException(ioe.Message); } }
/// <summary> /// Edits the specified course. /// </summary> /// <param name="course">The course.</param> /// <exception cref="CustomException"></exception> public void EditCourse(Courses course) { try { using (var db = new ELearningDatabaseEntities()) { db.Courses.Attach(course); db.Entry(course).State = System.Data.EntityState.Modified; db.SaveChanges(); } } catch (InvalidOperationException ex) { throw new CustomException(ex.Message); } }
/// <summary> /// Edits the homework. /// </summary> /// <param name="hw">The hw.</param> /// <exception cref="CustomException"></exception> public void EditHomework(Homeworks hw) { try { using (var db = new ELearningDatabaseEntities()) { db.Homeworks.Attach(hw); db.Entry(hw).State = System.Data.EntityState.Modified; db.SaveChanges(); } } catch (InvalidOperationException ex) { throw new CustomException(ex.Message); } }
/// <summary> /// Edits the group. /// </summary> /// <param name="group">The group.</param> /// <exception cref="CustomException"></exception> public void EditGroup(Groups group) { try { using (var db = new ELearningDatabaseEntities()) { db.Groups.Attach(group); db.Entry(group).State = System.Data.EntityState.Modified; db.SaveChanges(); } } catch (InvalidOperationException ioe) { throw new CustomException(ioe.Message); } }
/// <summary> /// Updates the user. /// </summary> /// <param name="user">The user.</param> /// <exception cref="CustomException"></exception> public void UpdateUser(Users user) { try { using (var db = new ELearningDatabaseEntities()) { if (user != null) { db.Users.Attach(user); db.Entry(user).State = EntityState.Modified; db.SaveChanges(); } } } catch (ArgumentNullException ex) { throw new CustomException(ex.Message); } }
/// <summary> /// Edit a category from the specified Forum /// </summary> /// <param name="forum"></param> public void EditCategory(Forums forum) { try { using (var db = new ELearningDatabaseEntities()) { db.Forums.Attach(forum); db.Entry(forum).State = System.Data.EntityState.Modified; db.SaveChanges(); } } catch (ArgumentNullException ane) { throw new CustomException(ane.Message); } catch (InvalidOperationException ex) { throw new CustomException(ex.Message); } }
/// <summary> /// Update a message in a forum /// </summary> /// <param name="message"></param> public void UpdateMessage(Messages message) { try { using (var db = new ELearningDatabaseEntities()) { db.Messages.Attach(message); db.Entry(message).State = System.Data.EntityState.Modified; db.SaveChanges(); } } catch (ArgumentNullException ane) { throw new CustomException(ane.Message); } catch (InvalidOperationException ioe) { throw new CustomException(ioe.Message); } }
/// <summary> /// Assigns the homework. /// </summary> /// <param name="dto"></param> /// <exception cref="CustomException"> /// </exception> public void AssignHomework(HomeworkAssignementDTO dto) { try { using (var db = new ELearningDatabaseEntities()) { HomeworkAssignements ha = db.HomeworkAssignements .Where(a => a.AssignementId == dto.AssignementId) .FirstOrDefault(); if (ha != null) { if (dto.StudentId != null && dto.StudentId > 0) { ha.StudentId = dto.StudentId; } if (dto.GroupId != null && dto.GroupId > 0) { ha.GroupId = dto.GroupId; } db.HomeworkAssignements.Attach(ha); db.Entry(ha).State = System.Data.EntityState.Modified; db.SaveChanges(); } else { HomeworkAssignements newAssignement = new HomeworkAssignements(); newAssignement.AnswerId = dto.AnswerId; newAssignement.AssignementId = dto.AssignementId; newAssignement.CourseId = dto.CourseId; newAssignement.CourseModuleId = dto.CourseModuleId; newAssignement.GradeId = dto.GradeId; newAssignement.GroupId = dto.GroupId; newAssignement.HomeworkId = dto.HomeworkId; newAssignement.StudentId = dto.StudentId; db.HomeworkAssignements.Add(newAssignement); db.SaveChanges(); } } } catch (ArgumentNullException ane) { throw new CustomException(ane.Message); } catch (InvalidOperationException ex) { throw new CustomException(ex.Message); } }