public IActionResult GetAllUsers() { using (var client = _client) { var response = client.GetAsync(BuildUrl <User>()); var decoded = response.Result.Content.ReadAsStringAsync().Result; var result = JsonConvert.DeserializeObject <ODataResponse <CrmUser> >(decoded); if (result.Value == null) { return(NotFound()); } var users = result.Value.Select(x => new User(x)); serializer = new OneRosterSerializer("users"); serializer.writer.WriteStartArray(); foreach (var user in users) { user.AsJson(serializer.writer, BaseUrl()); } serializer.writer.WriteEndArray(); return(JsonOk(FinishSerialization(), users.Count())); } }
public IActionResult GetClassesForTeacher([FromRoute] string id) { if (db.Users.SingleOrDefault(u => u.Id == id) == null) { return(NotFound()); } IQueryable <IMSClass> imsClassQuery = db.IMSClasses .Include(k => k.Enrollments).ThenInclude(e => e.User) .Include(k => k.Enrollments).ThenInclude(e => e.IMSClass.Course) .Include(k => k.Enrollments).ThenInclude(e => e.IMSClass.School) .Include(k => k.Enrollments).ThenInclude(e => e.IMSClass.IMSClassAcademicSessions).ThenInclude(kas => kas.AcademicSession) .Where(k => k.Enrollments.Where(e => e.UserId == id && e.Role == Vocabulary.RoleType.teacher).Count() > 0); imsClassQuery = ApplyBinding(imsClassQuery); var imsClasses = imsClassQuery.ToList(); serializer = new OneRosterSerializer("classes"); serializer.writer.WriteStartArray(); foreach (var imsClass in imsClasses) { imsClass.AsJson(serializer.writer, BaseUrl()); } serializer.writer.WriteEndArray(); return(JsonOk(FinishSerialization(), ResponseCount)); }
public IActionResult GetTeachersForClassInSchool([FromRoute] string schoolId, string classId) { var imsClass = db.IMSClasses .Where(c => c.SchoolOrgId == schoolId) .Include(c => c.Enrollments) .ThenInclude(e => e.User) .ThenInclude(u => u.UserOrgs) .ThenInclude(uo => uo.Org) .Include(c => c.Enrollments) .ThenInclude(e => e.User) .ThenInclude(u => u.UserAgents) .ThenInclude(ua => ua.Agent) .SingleOrDefault(c => c.Id == classId); if (imsClass == null) { return(NotFound()); } serializer = new OneRosterSerializer("teachers"); serializer.writer.WriteStartArray(); foreach (var enrollment in imsClass.Enrollments) { var user = enrollment.User; if (user.Role == Vocabulary.RoleType.teacher) { user.AsJson(serializer.writer, BaseUrl()); } } serializer.writer.WriteEndArray(); return(JsonOk(serializer.Finish())); }
public IActionResult GetClassesForStudent([FromRoute] string id) { var student = db.Users .Include(u => u.UserOrgs).ThenInclude(uo => uo.Org) .Include(u => u.UserAgents).ThenInclude(ua => ua.Agent) .Include(u => u.Enrollments).ThenInclude(e => e.IMSClass) .ThenInclude(k => k.IMSClassAcademicSessions) .ThenInclude(kas => kas.AcademicSession) .Include(u => u.Enrollments).ThenInclude(e => e.IMSClass) .ThenInclude(k => k.Course) .Include(u => u.Enrollments).ThenInclude(e => e.IMSClass) .ThenInclude(k => k.School) .SingleOrDefault(u => u.Id == id && u.Role == Vocabulary.RoleType.student); if (student == null || !student.Enrollments.Any()) { return(NotFound()); } serializer = new OneRosterSerializer("classes"); serializer.Writer.WriteStartArray(); foreach (var enrollment in student.Enrollments) { enrollment.IMSClass.AsJson(serializer.Writer, BaseUrl()); } serializer.Writer.WriteEndArray(); return(JsonOk(serializer.Finish())); }
public IActionResult GetTeachersForSchool([FromRoute] string id) { var teachers = db.Users .Where(u => u.Role == Vocabulary.RoleType.teacher) .Include(u => u.UserOrgs).ThenInclude(uo => uo.Org) .Include(u => u.UserAgents).ThenInclude(ua => ua.Agent); if (!teachers.Any()) { return(NotFound()); } serializer = new OneRosterSerializer("teachers"); serializer.writer.WriteStartArray(); foreach (var teacher in teachers) { foreach (var org in teacher.UserOrgs) { if (org.OrgId == id) { teacher.AsJson(serializer.writer, BaseUrl()); } } } serializer.writer.WriteEndArray(); return(JsonOk(serializer.Finish())); }
public IActionResult GetEnrollmentsForClassInSchool([FromRoute] string schoolId, string classId) { var imsClass = db.IMSClasses .Where(c => c.SchoolOrgId == schoolId) .Include(c => c.Enrollments) .ThenInclude(e => e.User) .Include(c => c.Enrollments) .ThenInclude(e => e.IMSClass) .Include(c => c.Enrollments) .ThenInclude(e => e.School) .SingleOrDefault(c => c.Id == classId); if (imsClass == null) { return(NotFound()); } serializer = new OneRosterSerializer("enrollments"); serializer.writer.WriteStartArray(); foreach (var enrollment in imsClass.Enrollments) { enrollment.AsJson(serializer.writer, BaseUrl()); } serializer.writer.WriteEndArray(); return(JsonOk(serializer.Finish())); }
public IActionResult GetEnrollmentsForClass([FromRoute] string id) { using (var client = _client) { var response = client.GetAsync(BuildUrl <Enrollment>(new string[] { $"class='{{{id}}}'" })); var decoded = response.Result.Content.ReadAsStringAsync().Result; var result = JsonConvert.DeserializeObject <ODataResponse <CrmEnrollment> >(decoded); if (result.Value == null) { return(NotFound()); } var enrollments = result.Value.Select(x => new Enrollment(x)); serializer = new OneRosterSerializer("enrollments"); serializer.writer.WriteStartArray(); foreach (var enrollment in enrollments) { enrollment.AsJson(serializer.writer, BaseUrl()); } serializer.writer.WriteEndArray(); return(JsonOk(FinishSerialization(), enrollments.Count())); } }
public IActionResult GetEnrollmentsForSchool([FromRoute] string id) { IQueryable <Enrollment> enrollments = db.Enrollments .Include(e => e.User) .Include(e => e.IMSClass) .Include(e => e.School) .Where(e => e.IMSClass.SchoolOrgId == id); enrollments = ApplyBinding(enrollments); if (!enrollments.Any()) { return(NotFound()); } serializer = new OneRosterSerializer("enrollments"); serializer.Writer.WriteStartArray(); foreach (var enrollment in enrollments) { enrollment.AsJson(serializer.Writer, BaseUrl()); } serializer.Writer.WriteEndArray(); return(JsonOk(serializer.Finish(), ResponseCount)); }
public IActionResult GetStudentsForSchool([FromRoute] string id) { IQueryable <User> students = db.Users .Where(u => u.Role == Vocabulary.RoleType.student) .Include(u => u.UserOrgs).ThenInclude(uo => uo.Org) .Include(u => u.UserAgents).ThenInclude(ua => ua.Agent); students = ApplyBinding(students); if (!students.Any()) { return(NotFound()); } serializer = new OneRosterSerializer("students"); serializer.Writer.WriteStartArray(); foreach (var student in students) { foreach (var org in student.UserOrgs) { if (org.OrgId == id) { student.AsJson(serializer.Writer, BaseUrl()); } } } serializer.Writer.WriteEndArray(); return(JsonOk(serializer.Finish(), ResponseCount)); }
public IActionResult GetClassesForSchool([FromRoute] string id) { var imsClasses = db.IMSClasses .Include(k => k.IMSClassAcademicSessions) .ThenInclude(kas => kas.AcademicSession) .Include(k => k.Course) .Include(k => k.School) .Where(k => k.SchoolOrgId == id); imsClasses = ApplyBinding(imsClasses); if (!imsClasses.Any()) { return(NotFound()); } serializer = new OneRosterSerializer("classes"); serializer.Writer.WriteStartArray(); foreach (var imsClass in imsClasses) { imsClass.AsJson(serializer.Writer, BaseUrl()); } serializer.Writer.WriteEndArray(); return(JsonOk(serializer.Finish(), ResponseCount)); }
public IActionResult PutLineItem([FromRoute] string id) { var insert = false; var lineItem = db.LineItems.SingleOrDefault(li => li.Id == id); if (lineItem == null) { lineItem = new LineItem() { Id = id }; insert = true; } using (var reader = new StreamReader(Request.Body)) { var requestJson = (JObject)JObject.Parse(reader.ReadToEnd())["lineItem"]; if (!lineItem.UpdateWithJson(requestJson)) { return(new StatusCodeResult(422)); } } if (TryValidateModel(lineItem)) { if (insert) { db.LineItems.Add(lineItem); } db.SaveChanges(); db.LineItems .Include(li => li.AcademicSession) .Include(li => li.IMSClass) .Include(li => li.LineItemCategory) .Where(li => li.Id == id) .First(); serializer = new OneRosterSerializer("lineItem"); lineItem.AsJson(serializer.Writer, BaseUrl()); if (insert) { return(JsonWithStatus(serializer.Finish(), null, 201)); } return(JsonOk(serializer.Finish())); } else { return(new StatusCodeResult(422)); } }
public IActionResult ErrorResult() { serializer = new OneRosterSerializer("statusInfoSet"); SerializeExceptions(); return(new OneRosterResult { Content = serializer.Finish(), ContentType = "application/json", StatusCode = 400 }); }
public IActionResult PutResult([FromRoute] string id) { var insert = false; var result = db.Results.SingleOrDefault(r => r.Id == id); if (result == null) { result = new Result() { Id = id }; insert = true; } using (var reader = new StreamReader(Request.Body)) { var requestJson = (JObject)JObject.Parse(reader.ReadToEnd())["result"]; if (!result.UpdateWithJson(requestJson)) { return(new StatusCodeResult(422)); } } if (TryValidateModel(result)) { if (insert) { db.Results.Add(result); } db.SaveChanges(); db.Results .Include(r => r.LineItem) .Include(r => r.Student) .Where(r => r.Id == id) .First(); serializer = new OneRosterSerializer("result"); result.AsJson(serializer.Writer, BaseUrl()); if (insert) { return(JsonWithStatus(serializer.Finish(), null, 201)); } return(JsonOk(serializer.Finish())); } else { return(new StatusCodeResult(422)); } }
public IActionResult GetSchool([FromRoute] string id) { var org = LookupSchool(id); if (org == null) { return(NotFound()); } serializer = new OneRosterSerializer("org"); org.AsJson(serializer.writer, BaseUrl()); return(JsonOk(serializer.Finish())); }
public IActionResult GetResource([FromRoute] string id) { var resource = db.Resources.SingleOrDefault(a => a.Id == id); if (resource == null) { return(NotFound()); } serializer = new OneRosterSerializer("resource"); resource.AsJson(serializer.Writer, BaseUrl()); return(JsonOk(serializer.Finish())); }
public IActionResult GetGradingPeriod(string id) { var session = db.AcademicSessions.FirstOrDefault(a => a.Id == id && a.Type == Vocabulary.SessionType.gradingPeriod); if (session == null) { return(NotFound()); } serializer = new OneRosterSerializer("academicSession"); session.AsJson(serializer.Writer, BaseUrl()); return(JsonOk(serializer.Finish())); }
public IActionResult GetTerm([FromRoute] string id) { var term = db.AcademicSessions.SingleOrDefault(a => a.Id == id && a.Type == Vocabulary.SessionType.term); if (term == null) { return(NotFound()); } serializer = new OneRosterSerializer("term"); term.AsJson(serializer.Writer, BaseUrl()); return(JsonOk(serializer.Finish())); }
public IActionResult GetAcademicSession([FromRoute] string id) { var academicSession = db.AcademicSessions.SingleOrDefault(a => a.Id == id); if (academicSession == null) { return(NotFound()); } serializer = new OneRosterSerializer("academicSession"); academicSession.AsJson(serializer.writer, BaseUrl()); return(JsonOk(serializer.Finish())); }
public IActionResult GetCourse([FromRoute] string id) { var course = db.Courses .Include(c => c.SchoolYearAcademicSession) .Include(c => c.Org) .FirstOrDefault(c => c.Id == id); if (course == null) { return(NotFound()); } serializer = new OneRosterSerializer("course"); course.AsJson(serializer.writer, BaseUrl()); return(JsonOk(serializer.Finish())); }
public IActionResult GetAcademicSession([FromRoute] string id) { using (var client = _client) { var response = client.GetAsync(BuildSingleRecordUrl <AcademicSession>(id)); var decoded = response.Result.Content.ReadAsStringAsync().Result; var result = JsonConvert.DeserializeObject <CrmAcademicSession>(decoded); var session = new AcademicSession(result); serializer = new OneRosterSerializer("user"); session.AsJson(serializer.writer, BaseUrl()); return(JsonOk(serializer.Finish())); } }
public IActionResult GetOrg([FromRoute] string id) { var org = db.Orgs .Include(o => o.Parent) .Include(o => o.Children) .SingleOrDefault(a => a.Id == id); if (org == null) { return(NotFound()); } serializer = new OneRosterSerializer("org"); org.AsJson(serializer.writer, BaseUrl()); return(JsonOk(serializer.Finish())); }
public IActionResult GetEnrollment([FromRoute] string id) { var enrollment = db.Enrollments .Include(e => e.User) .Include(e => e.IMSClass) .Include(e => e.School) .SingleOrDefault(a => a.Id == id); if (enrollment == null) { return(NotFound()); } serializer = new OneRosterSerializer("enrollment"); enrollment.AsJson(serializer.Writer, BaseUrl()); return(JsonOk(serializer.Finish())); }
public IActionResult GetResult([FromRoute] string id) { var result = db.Results .Include(r => r.LineItem) .Include(r => r.Student) .SingleOrDefault(li => li.Id == id); if (result == null) { return(NotFound()); } serializer = new OneRosterSerializer("result"); result.AsJson(serializer.Writer, BaseUrl()); return(JsonOk(serializer.Finish())); }
public IActionResult GetStudent([FromRoute] string id) { var student = db.Users .Include(u => u.UserOrgs).ThenInclude(uo => uo.Org) .Include(u => u.UserAgents).ThenInclude(ua => ua.Agent) .SingleOrDefault(u => u.Id == id && u.Role == Vocabulary.RoleType.student); if (student == null) { return(NotFound()); } serializer = new OneRosterSerializer("user"); student.AsJson(serializer.Writer, BaseUrl()); return(JsonOk(serializer.Finish())); }
public IActionResult GetAllResources() { IQueryable <Resource> resourcesQuery = db.Resources; resourcesQuery = ApplyBinding(resourcesQuery); var resources = resourcesQuery.ToList(); serializer = new OneRosterSerializer("resources"); serializer.Writer.WriteStartArray(); foreach (var resource in resources) { resource.AsJson(serializer.Writer, BaseUrl()); } serializer.Writer.WriteEndArray(); return(JsonOk(FinishSerialization(), ResponseCount)); }
public IActionResult GetAllDemographics() { IQueryable <Demographic> demographicsQuery = db.Demographics; demographicsQuery = ApplyBinding(demographicsQuery); var demographics = demographicsQuery.ToList(); serializer = new OneRosterSerializer("demographics"); serializer.writer.WriteStartArray(); foreach (var demographic in demographics) { demographic.AsJson(serializer.writer, BaseUrl()); } serializer.writer.WriteEndArray(); return(JsonOk(FinishSerialization(), ResponseCount)); }
public IActionResult GetClass([FromRoute] string id) { var imsClasses = db.IMSClasses .Include(k => k.IMSClassAcademicSessions) .ThenInclude(kas => kas.AcademicSession) .Include(k => k.Course) .Include(k => k.School) .SingleOrDefault(k => k.Id == id); if (imsClasses == null) { return(NotFound()); } serializer = new OneRosterSerializer("class"); imsClasses.AsJson(serializer.Writer, BaseUrl()); return(JsonOk(serializer.Finish())); }
public IActionResult GetAllGradingPeriods() { IQueryable <AcademicSession> sessionsQuery = db.AcademicSessions.Where(a => a.Type == Vocabulary.SessionType.gradingPeriod); sessionsQuery = ApplyBinding(sessionsQuery); var sessions = sessionsQuery.ToList(); serializer = new OneRosterSerializer("academicSessions"); serializer.Writer.WriteStartArray(); foreach (var session in sessions) { session.AsJson(serializer.Writer, BaseUrl()); } serializer.Writer.WriteEndArray(); return(JsonOk(FinishSerialization(), ResponseCount)); }
public IActionResult GetAllTerms() { IQueryable <AcademicSession> termsQuery = db.AcademicSessions .Where(ac => ac.Type == Vocabulary.SessionType.term); termsQuery = ApplyBinding(termsQuery); var terms = termsQuery.ToList(); serializer = new OneRosterSerializer("terms"); serializer.Writer.WriteStartArray(); foreach (var tern in terms) { tern.AsJson(serializer.Writer, BaseUrl()); } serializer.Writer.WriteEndArray(); return(JsonOk(FinishSerialization(), ResponseCount)); }
public IActionResult GetAllCourses() { IQueryable <Course> courseQuery = db.Courses .Include(c => c.SchoolYearAcademicSession) .Include(c => c.Org); courseQuery = ApplyBinding(courseQuery); var courses = courseQuery.ToList(); serializer = new OneRosterSerializer("courses"); serializer.writer.WriteStartArray(); foreach (var course in courses) { course.AsJson(serializer.writer, BaseUrl()); } serializer.writer.WriteEndArray(); return(JsonOk(FinishSerialization(), ResponseCount)); }