public IActionResult Post([FromBody] AssessmentPost assessment, string subject, string cohort, string name) { AssessmentValidator validator = new AssessmentValidator(); List <Error> errors = new List <Error>(); subject = Utils.CleanParam(subject); name = Utils.CleanParam(name); dynamic examResult = _db.FetchExam(subject, name, cohort); if (examResult == null) { return(new HttpNotFoundResult()); } if (!_db.IsModelStateValid(ModelState, assessment)) { return(_db.ModelStateErrors); } errors.AddRange(validator.ValidatePost(assessment)); if (errors.Any()) { return(new UnprocessableEntityObjectResult(errors)); } var id = _db.AddAssessment(assessment, subject, name, cohort, examResult); var result = _db.FetchAssessment(id); string location = Url.RouteUrl("assessment", new { id = id }, Request.Scheme); return(new CreatedResult(location, result)); }
public IActionResult Patch([FromBody] IEnumerable <Patch> patches, int id) { AssessmentValidator validator = new AssessmentValidator(); List <Error> errors = new List <Error>(); if (!_db.AssessmentExists(id)) { return(new HttpNotFoundResult()); } if (!_db.IsModelStateValid(ModelState, patches)) { return(_db.ModelStateErrors); } errors.AddRange(validator.ValidatePatches(id, patches)); if (errors.Any()) { return(new UnprocessableEntityObjectResult(errors)); } _db.PatchAssessment(patches, id); var result = _db.FetchAssessment(id); return(new HttpOkObjectResult(result)); }