public IQueryable<SchoolModel> Get()
 {
     var responseMsg = this.PerformOperationAndHandleExceptions(() =>
     {
         var db = new SchoolContext();
         var result = db.Schools.Select(s => new SchoolModel()
         {
             Id = s.Id,
             Location = s.Location,
             Name = s.Name
         });
         return result;
     });
     return responseMsg;
 }
 public SchoolModel GetById(int id)
 {
     var responseMsg = this.PerformOperationAndHandleExceptions(() =>
     {
         var result = new SchoolModel();
         var db = new SchoolContext();
         var school = db.Schools.Find(id);
         if (school != null)
         {
             result.Id = school.Id;
             result.Location = school.Location;
             result.Name = school.Name;
         }
         return result;
     });
     return responseMsg;
 }
 public IQueryable<StudentModel> Get()
 {
     var responseMsg = this.PerformOperationAndHandleExceptions(() =>
     {
         var db = new SchoolContext();
         var result = db.Students.Select(s => new StudentModel()
         {
             Id = s.Id,
             FirstName = s.FirstName,
             LastName = s.LastName,
             Age = s.Age,
             Grade = s.Grade
         });
         return result;
     });
     return responseMsg;
 }
        public HttpResponseMessage Post(SchoolModel school)
        {
            var responseMsg = this.PerformOperationAndHandleExceptions(() =>
            {
                var newcSchool = new School()
                {
                    Location = school.Location,
                    Name = school.Name
                };
                var db = new SchoolContext();
                db.Schools.Add(newcSchool);
                db.SaveChanges();

                school.Id = newcSchool.Id;
                var response = this.Request.CreateResponse(HttpStatusCode.Created, school);
                return response;
            });
            return responseMsg;
        }
 public IQueryable<StudentModel> GetById(string subject, double value)
 {
     var responseMsg = this.PerformOperationAndHandleExceptions(() =>
     {
         var db = new SchoolContext();
         var result = db.Students
             .Where(s => s.Marks.Any(m => m.Subject == subject && Equals(m.Value, value)))
             .Select(s => new StudentModel()
             {
                 Id = s.Id,
                 FirstName = s.FirstName,
                 LastName = s.LastName,
                 Age = s.Age,
                 Grade = s.Grade
             });
         return result;
     });
     return responseMsg;
 }
 public StudentModel GetById(int id)
 {
     var responseMsg = this.PerformOperationAndHandleExceptions(() =>
     {
         var result = new StudentModel();
         var db = new SchoolContext();
         var s = db.Students.Find(id);
         if (s != null)
         {
             result.Id = s.Id;
             result.FirstName = s.FirstName;
             result.LastName = s.LastName;
             result.Age = s.Age;
             result.Grade = s.Grade;
         }
         return result;
     });
     return responseMsg;
 }
        public HttpResponseMessage Post(StudentModel student)
        {
            var responseMsg = this.PerformOperationAndHandleExceptions(() =>
            {
                var newStudent = new Student()
                {
                    FirstName = student.FirstName,
                    LastName = student.LastName,
                    Age = student.Age,
                    Grade = student.Grade,
                    School = null,
                    SchoolId = null
                };
                var db = new SchoolContext();
                db.Students.Add(newStudent);
                db.SaveChanges();

                student.Id = newStudent.Id;
                var response = this.Request.CreateResponse(HttpStatusCode.Created, student);
                return response;
            });
            return responseMsg;
        }