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")); } }
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.")); } }
/// <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); } }