// GET api/Students/5 public StudentDetails GetStudents(int id) { DbStudentsRepository studentRepository = this.allRepositories.GetStudentsRepository(); var student = studentRepository.Get(id); if (student == null) { var errResponse = Request.CreateErrorResponse(HttpStatusCode.BadRequest, "No such user was found"); throw new HttpResponseException(errResponse); } var studentDetails = new StudentDetails() { Id = student.Id, FirstName = student.FirstName, LastName = student.LastName, Age = student.Age, Grade = student.Grade, SchoolId = student.School.Id, Marks = (from mark in student.Marks select new MarkModel() { Id = mark.Id, Subject = mark.Subject, Value = mark.Value }).ToList() }; return(studentDetails); }
// POST api/Marks public HttpResponseMessage PostMarks(MarkModel marksModel) { if (marksModel == null) { var errResponse = Request.CreateErrorResponse(HttpStatusCode.BadRequest, "The supported mark model cannot be null"); throw new HttpResponseException(errResponse); } DbStudentsRepository studentRepository = this.allRepositories.GetStudentsRepository(); Student student = studentRepository.Get(marksModel.StudentId); DbMarksRepository marksRepository = this.allRepositories.GetMarksRepository(); Mark mark = new Mark() { Subject = marksModel.Subject, Value = marksModel.Value, Student = student }; marksRepository.Add(mark); MarkModel createdMarkModel = new MarkModel() { Id = mark.Id, Subject = mark.Subject, Value = mark.Value, StudentId = mark.Student.Id }; var response = Request.CreateResponse <MarkModel>(HttpStatusCode.Created, createdMarkModel); var resourceLink = Url.Link("DefaultApi", new { id = createdMarkModel.Id }); response.Headers.Location = new Uri(resourceLink); return(response); }