コード例 #1
0
        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);
        }
コード例 #2
0
        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;
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        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);
        }
コード例 #5
0
        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;
        }