public HttpResponseMessage Get() { var response = new WhiteboardResponse(); var queryParams = new Dictionary<string, string>(); var rawQueryParams = Request.GetQueryNameValuePairs().ToList(); // Serialize the query paramaters into a dictionary. foreach (var arg in rawQueryParams) { if (!queryParams.ContainsKey(arg.Key)) queryParams.Add(arg.Key.ToLower(), arg.Value); } if (queryParams.ContainsKey("emblmstudentid") && !queryParams.ContainsKey("emblmcourseid")) { response = GetStudentsGrades(queryParams); } else if (!queryParams.ContainsKey("emblmstudentid") && queryParams.ContainsKey("emblmcourseid")) { response = GetCourseGrades(queryParams); } else { response.Code = 5; response.Message.Add("Invalid query."); } return ControllerHelper.CreateJsonResponse(response); }
private WhiteboardResponse GetCourseGrades(Dictionary<string, string> queryParams) { var response = new WhiteboardResponse(); // Get the course string queryCourseId = queryParams["emblmcourseid"]; var course = (from crs in _db.CourseMaster where crs.OriginalID == queryCourseId select crs).FirstOrDefault(); if (course == null) { response.Code = 1; response.Message.Add(string.Format("Course with ID {0} was not found in the Whiteboard system.", queryCourseId)); return response; } var grades = from g in _db.StudentGrades join stu in _db.StudentMaster on g.StudentId equals stu.ID where g.StudentId == course.ID select new { StudentId = stu.ID, EmblemStudentId = stu.OriginalID, g.Grade }; if (!grades.Any()) { response.Code = 2; response.Message.Add(string.Format("Course with ID {0} does not have any grades in the Whiteboard system.", queryParams)); return response; } response.Code = 0; response.Data = grades; return response; }
public HttpResponseMessage Post([FromBody] object postData) { var response = new WhiteboardResponse { Code = 0 }; if (postData == null) { response.Code = -1; response.Message.Add("No data recieved."); return ControllerHelper.CreateJsonResponse(response); } string data = postData.ToString(); var emblemData = new List<EmblemCourseSchedule>(); try { emblemData = JsonConvert.DeserializeObject<List<EmblemCourseSchedule>>(data); Console.WriteLine("Recieved {0} entries to insert.", emblemData.Count); } catch (Exception ex) { response.Code = 1; response.Message.Add(ex.Message); return ControllerHelper.CreateJsonResponse(response); } var svcRes = _courseRosterSvc.InsertSchedule(emblemData); if (svcRes.Count != 0) { response.Code = 2; response.Message.AddRange(svcRes); return ControllerHelper.CreateJsonResponse(response); } return ControllerHelper.CreateJsonResponse(response); }
public HttpResponseMessage Post() { var response = new WhiteboardResponse { Code = 0, Message = "Post received." }; var tData = Request.Content.ReadAsFormDataAsync(); tData.Wait(); var queryParams = new Dictionary<string, string>(); foreach(var key in tData.Result.AllKeys) { queryParams.Add(key, tData.Result[key]); } if (!queryParams.ContainsKey("data")) { response.Code = 1; response.Message = "Could not find parameter 'data'"; return ControllerHelper.CreateJsonResponse(response); } var data = JsonConvert.DeserializeObject<List<EmblemCourseSchedule>>(queryParams["data"]); return ControllerHelper.CreateJsonResponse(response); }
private WhiteboardResponse GetStudentsGrades(Dictionary<string, string> queryParams) { var response = new WhiteboardResponse(); // Get the student. string queryStudentId = queryParams["emblmstudentid"]; // Because "LINQ to Entities does not recognize the method 'System.String get_Item(System.String)' method, and this method cannot be translated into a store expression." var student = (from stu in _db.StudentMaster where stu.OriginalID == queryStudentId select stu).FirstOrDefault(); if (student == null) { response.Code = 1; response.Message.Add(string.Format("Student with ID {0} was not found in the Whiteboard system.", queryStudentId)); return response; } // Get the student's grades var grades = from g in _db.StudentGrades join crs in _db.CourseMaster on g.CourseId equals crs.ID where g.StudentId == student.ID select new { CourseId = crs.ID, EmblemCourseId = crs.OriginalID, g.Grade }; if (!grades.Any()) { response.Code = 2; response.Message.Add(string.Format("Student with ID {0} does not have any grades in the Whiteboard system.", queryParams["emblmstudentid"])); return response; } response.Code = 0; response.Data = grades; return response; }