/// <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); } }
/// <summary> /// Unassigns the homework. /// </summary> /// <param name="dto"></param> /// <exception cref="CustomException"> /// </exception> public void UnassignHomework(HomeworkAssignementDTO dto) { try { using (var db = new ELearningDatabaseEntities()) { HomeworkAssignements ha = db.HomeworkAssignements .Where(a => a.AssignementId == dto.AssignementId) .First(); db.HomeworkAssignements.Remove(ha); db.SaveChanges(); } } catch (ArgumentNullException ane) { throw new CustomException(ane.Message); } catch (InvalidOperationException ex) { throw new CustomException(ex.Message); } }
/// <summary> /// Gets the view model for a homework assignement. /// </summary> /// <param name="homeworkAssignement">The homework assignement.</param> /// <returns></returns> /// <exception cref="CustomException"></exception> public HomeworkAssignementViewModel GetViewModel(HomeworkAssignements homeworkAssignement) { try { HomeworkAssignementViewModel havm = new HomeworkAssignementViewModel(); havm.AnswerId = homeworkAssignement.AnswerId; havm.AssignementId = homeworkAssignement.AssignementId; havm.CourseId = homeworkAssignement.CourseId; havm.CourseModuleId = homeworkAssignement.CourseModuleId; havm.GradeId = homeworkAssignement.GradeId; havm.GroupId = homeworkAssignement.GroupId; havm.HomeworkId = homeworkAssignement.HomeworkId; havm.StudentId = homeworkAssignement.StudentId; return(havm); } catch (Exception ex) { throw new CustomException(ex.Message); } }
/// <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); } }