Exemplo n.º 1
0
        public IActionResult GetTeachersForClass([FromRoute] string id)
        {
            if (db.IMSClasses.SingleOrDefault(k => k.Id == id) == null)
            {
                return(NotFound());
            }

            IQueryable <User> teachersQuery = db.Users
                                              .Include(u => u.UserOrgs)
                                              .ThenInclude(uo => uo.Org)
                                              .Include(u => u.UserAgents)
                                              .ThenInclude(ua => ua.Agent)
                                              .Include(u => u.Enrollments)
                                              .Where(u => u.Enrollments.Where(e => e.IMSClassId == id && e.Role == Vocabulary.RoleType.teacher).Count() > 0);

            teachersQuery = ApplyBinding(teachersQuery);
            var teachers = teachersQuery.ToList();

            serializer = new Serializers.OneRosterSerializer("users");
            serializer.Writer.WriteStartArray();
            foreach (var teacher in teachers)
            {
                teacher.AsJson(serializer.Writer, BaseUrl());
            }
            serializer.Writer.WriteEndArray();

            return(JsonOk(FinishSerialization(), ResponseCount));
        }
        public IActionResult GetClassesForUser([FromRoute] string id)
        {
            var user = db.Users
                       .Include(u => u.UserOrgs)
                       .ThenInclude(uo => uo.Org)
                       .Include(u => u.UserAgents)
                       .ThenInclude(ua => ua.Agent)
                       .SingleOrDefault(u => u.Id == id);

            if (user == null)
            {
                return(NotFound());
            }

            // get all Enrollments for the given userId
            var enrollments = db.Enrollments
                              .Include(e => e.IMSClass)
                              .ThenInclude(k => k.IMSClassAcademicSessions)
                              .ThenInclude(kas => kas.AcademicSession)
                              .Include(e => e.IMSClass)
                              .ThenInclude(k => k.Course)
                              .Include(e => e.IMSClass)
                              .ThenInclude(k => k.School)
                              .Where(e => e.UserId == id);

            serializer = new Serializers.OneRosterSerializer("classes");
            serializer.writer.WriteStartArray();
            foreach (var enrollment in enrollments)
            {
                enrollment.IMSClass.AsJson(serializer.writer, BaseUrl());
            }
            serializer.writer.WriteEndArray();

            return(JsonOk(serializer.Finish()));
        }
Exemplo n.º 3
0
        public IActionResult GetResultsForStudentForClass([FromRoute] string id, [FromRoute] string studentId)
        {
            if (db.IMSClasses.SingleOrDefault(k => k.Id == id) == null ||
                db.Users.SingleOrDefault(u => u.Id == studentId) == null ||
                db.Enrollments.SingleOrDefault(e => e.IMSClassId == id && e.UserId == studentId && e.Role == Vocabulary.RoleType.student) == null)
            {
                return(NotFound());
            }
            IQueryable <Result> resultQuery = db.Results
                                              .Where(r => r.StudentUserId == studentId && r.LineItem.IMSClassId == id)
                                              .Include(r => r.Student)
                                              .Include(r => r.LineItem);

            resultQuery = ApplyBinding(resultQuery);
            var results = resultQuery.ToList();

            serializer = new Serializers.OneRosterSerializer("results");
            serializer.Writer.WriteStartArray();
            foreach (var result in results)
            {
                result.AsJson(serializer.Writer, BaseUrl());
            }
            serializer.Writer.WriteEndArray();

            return(JsonOk(FinishSerialization(), ResponseCount));
        }
Exemplo n.º 4
0
        public IActionResult GetResultsForLineItemForClass([FromRoute] string id, [FromRoute] string lineItemId)
        {
            if (db.IMSClasses.SingleOrDefault(k => k.Id == id) == null ||
                db.LineItems.SingleOrDefault(li => li.Id == lineItemId) == null)
            {
                return(NotFound());
            }

            IQueryable <Result> resultQuery = db.Results
                                              .Where(r => r.LineItemId == lineItemId)
                                              .Include(r => r.Student)
                                              .Include(r => r.LineItem);

            resultQuery = ApplyBinding(resultQuery);
            var results = resultQuery.ToList();

            serializer = new Serializers.OneRosterSerializer("results");
            serializer.Writer.WriteStartArray();
            foreach (var result in results)
            {
                result.AsJson(serializer.Writer, BaseUrl());
            }
            serializer.Writer.WriteEndArray();

            return(JsonOk(FinishSerialization(), ResponseCount));
        }
Exemplo n.º 5
0
        public IActionResult GetLineItemsForClass([FromRoute] string id)
        {
            if (db.IMSClasses.SingleOrDefault(k => k.Id == id) == null)
            {
                return(NotFound());
            }

            IQueryable <LineItem> lineItemQuery = db.LineItems
                                                  .Where(li => li.IMSClassId == id)
                                                  .Include(li => li.LineItemCategory)
                                                  .Include(li => li.AcademicSession);

            lineItemQuery = ApplyBinding(lineItemQuery);
            var lineItems = lineItemQuery.ToList();

            serializer = new Serializers.OneRosterSerializer("lineItems");
            serializer.Writer.WriteStartArray();
            foreach (var lineItem in lineItems)
            {
                lineItem.AsJson(serializer.Writer, BaseUrl());
            }
            serializer.Writer.WriteEndArray();

            return(JsonOk(FinishSerialization(), ResponseCount));
        }
Exemplo n.º 6
0
        public IActionResult GetCategory([FromRoute] string id)
        {
            var category = db.LineItemCategories.SingleOrDefault(c => c.Id == id);

            if (category == null)
            {
                return(NotFound());
            }

            serializer = new Serializers.OneRosterSerializer("category");
            category.AsJson(serializer.Writer, BaseUrl());
            return(JsonOk(serializer.Finish()));
        }
        public IActionResult GetDemographic([FromRoute] string user_id)
        {
            var user = db.Demographics
                       .SingleOrDefault(u => u.Id == user_id);

            if (user == null)
            {
                return(NotFound());
            }

            serializer = new Serializers.OneRosterSerializer("demographic");
            user.AsJson(serializer.writer, BaseUrl());

            return(JsonOk(serializer.Finish()));
        }
Exemplo n.º 8
0
        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 Serializers.OneRosterSerializer("result");
            result.AsJson(serializer.writer, BaseUrl());
            return(JsonOk(serializer.Finish()));
        }
Exemplo n.º 9
0
        public IActionResult GetAllCategories()
        {
            IQueryable <LineItemCategory> categoryQuery = db.LineItemCategories;

            categoryQuery = ApplyBinding(categoryQuery);
            var categories = categoryQuery.ToList();

            serializer = new Serializers.OneRosterSerializer("categories");
            serializer.Writer.WriteStartArray();
            foreach (var category in categories)
            {
                category.AsJson(serializer.Writer, BaseUrl());
            }
            serializer.Writer.WriteEndArray();

            return(JsonOk(FinishSerialization(), ResponseCount));
        }
Exemplo n.º 10
0
        public IActionResult GetLineItem([FromRoute] string id)
        {
            var lineItem = db.LineItems
                           .Include(li => li.LineItemCategory)
                           .Include(li => li.IMSClass)
                           .Include(li => li.AcademicSession)
                           .SingleOrDefault(li => li.Id == id);

            if (lineItem == null)
            {
                return(NotFound());
            }

            serializer = new Serializers.OneRosterSerializer("lineItem");
            lineItem.AsJson(serializer.Writer, BaseUrl());
            return(JsonOk(serializer.Finish()));
        }
        public IActionResult GetUser([FromRoute] string id)
        {
            var user = db.Users
                       .Include(u => u.UserOrgs)
                       .ThenInclude(uo => uo.Org)
                       .Include(u => u.UserAgents)
                       .ThenInclude(ua => ua.Agent)
                       .SingleOrDefault(u => u.Id == id);

            if (user == null)
            {
                return(NotFound());
            }

            serializer = new Serializers.OneRosterSerializer("user");
            user.AsJson(serializer.writer, BaseUrl());

            return(JsonOk(serializer.Finish()));
        }
Exemplo n.º 12
0
        public IActionResult GetAllResults()
        {
            IQueryable <Result> resultsQuery = db.Results
                                               .Include(r => r.LineItem)
                                               .Include(r => r.Student);

            resultsQuery = ApplyBinding(resultsQuery);
            var results = resultsQuery.ToList();

            serializer = new Serializers.OneRosterSerializer("results");
            serializer.Writer.WriteStartArray();
            foreach (var result in results)
            {
                result.AsJson(serializer.Writer, BaseUrl());
            }
            serializer.Writer.WriteEndArray();

            return(JsonOk(FinishSerialization(), ResponseCount));
        }
Exemplo n.º 13
0
        public IActionResult GetAllLineItems()
        {
            IQueryable <LineItem> lineItemsQuery = db.LineItems
                                                   .Include(li => li.LineItemCategory)
                                                   .Include(li => li.IMSClass)
                                                   .Include(li => li.AcademicSession);

            lineItemsQuery = ApplyBinding(lineItemsQuery);
            var lineItems = lineItemsQuery.ToList();

            serializer = new Serializers.OneRosterSerializer("lineItems");
            serializer.Writer.WriteStartArray();
            foreach (var lineItem in lineItems)
            {
                lineItem.AsJson(serializer.Writer, BaseUrl());
            }
            serializer.Writer.WriteEndArray();

            return(JsonOk(FinishSerialization(), ResponseCount));
        }
        public IActionResult GetAllUsers()
        {
            IQueryable <User> userQuery = db.Users
                                          .Include(u => u.UserOrgs)
                                          .ThenInclude(uo => uo.Org)
                                          .Include(u => u.UserAgents)
                                          .ThenInclude(ua => ua.Agent);

            userQuery = ApplyBinding(userQuery);
            var users = userQuery.ToList();

            serializer = new Serializers.OneRosterSerializer("users");
            serializer.writer.WriteStartArray();
            foreach (var user in users)
            {
                user.AsJson(serializer.writer, BaseUrl());
            }
            serializer.writer.WriteEndArray();

            return(JsonOk(FinishSerialization(), ResponseCount));
        }
Exemplo n.º 15
0
        public IActionResult GetResourcesForClass([FromRoute] string id)
        {
            var imsClass = db.IMSClasses
                           .Include(k => k.Course)
                           .SingleOrDefault(k => k.Id == id);

            if (imsClass == null)
            {
                return(NotFound());
            }

            serializer = new Serializers.OneRosterSerializer("resources");
            serializer.Writer.WriteStartArray();

            if (imsClass.Course != null && imsClass.Course.Resources != null)
            {
                foreach (var resourceId in imsClass.Course.Resources)
                {
                    var resource = db.Resources
                                   .SingleOrDefault(r => r.Id == resourceId);
                    resource.AsJson(serializer.Writer, BaseUrl());
                }
            }

            if (imsClass.Resources != null)
            {
                foreach (var resourceId in imsClass.Resources)
                {
                    var resource = db.Resources
                                   .SingleOrDefault(r => r.Id == resourceId);
                    resource.AsJson(serializer.Writer, BaseUrl());
                }
            }

            serializer.Writer.WriteEndArray();
            return(JsonOk(FinishSerialization(), ResponseCount));
        }