Esempio n. 1
0
        /// <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);
            }
        }
Esempio n. 2
0
 /// <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);
     }
 }
Esempio n. 3
0
        /// <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);
            }
        }
Esempio n. 4
0
        /// <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);
            }
        }
Esempio n. 5
0
        /// <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);
            }
        }