コード例 #1
0
        public ActionResult CourseHomeworkGrading(int assignementId = 0, int answerId = 0, int homeworkId = 0, int courseId = 0)
        {
            this.logger.Info("Entering: " + System.Reflection.MethodBase.GetCurrentMethod().ReflectedType.FullName + ": " + System.Reflection.MethodBase.GetCurrentMethod().Name + " --> " + User.Identity.Name);
            try {
                string gradeFromView = Request["gradeValue"];
                if (gradeFromView != null)
                {
                    decimal grade = Decimal.Parse(gradeFromView);
                    //create the grade dto to be passed to the api services
                    HomeworkGradeDTO dto = new HomeworkGradeDTO();
                    dto.Gradedatetime = System.DateTime.Now;
                    dto.GradeValue    = grade;
                    dto.AnswerId      = answerId;
                    dto.CourseId      = courseId;
                    dto.HomeworkId    = homeworkId;
                    dto.AssignementId = assignementId;

                    using (var client = new HttpClient()) {
                        client.BaseAddress = new Uri(this.apiMethodsUrl);
                        client.DefaultRequestHeaders.Accept.Add(
                            new MediaTypeWithQualityHeaderValue("application/json")
                            );
                        HttpResponseMessage response = client.PutAsJsonAsync("api/grades/GradeHomework/?assignementId=" + assignementId, dto).Result;
                        if (!response.IsSuccessStatusCode)
                        {
                            throw new CustomException("Could not complete the operation!");
                        }
                    }

                    return(RedirectToAction("DisplayAllCourseHomework", "Homework", new { id = courseId }));
                }
                else
                {
                    ViewBag.Error = "Grade the submitted work!";
                    return(View("Error"));
                }
            }
            catch (CustomException ce) {
                this.logger.Trace(ce, "Username: "******"Operation could not be completed! Try again.";
                return(View("Error"));
            }
            catch (Exception ex) {
                this.logger.Trace(ex, "Username: "******"Operation could not be completed!";
                return(View("Error"));
            }
        }
コード例 #2
0
        public HttpResponseMessage GradeHomework(int assignementId, HomeworkGradeDTO dto)
        {
            try {
                Grades grade = new Grades();
                grade.GradeId       = dto.GradeId;
                grade.GradeValue    = dto.GradeValue;
                grade.Gradedatetime = dto.Gradedatetime;

                this._gradesManagement.GradeHomework(grade, dto);

                return(Request.CreateResponse(HttpStatusCode.OK));
            }
            catch (Exception) {
                // Log exception code goes here
                return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, "Error occured while executing method."));
            }
        }
コード例 #3
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);
            }
        }