예제 #1
0
        public Task <IEnumerable <DevAssignment> > GetAssignments()
        {
            Context.Entry(Student).Collection(x => x.StudentCourseClasses)
            .Query().Include(x => x.Class)
            .ThenInclude(x => x.Assignments)
            .ThenInclude(x => x.Solution).Load();

            var assignments = Student.StudentCourseClasses.SelectMany(
                x => x.Class.Assignments)
                              .Skip(Step * Options.StepSize)
                              .Take(Options.StepSize);

            return(Task.FromResult(assignments));
        }
예제 #2
0
        public async Task <IActionResult> OnGetAsync()
        {
            Assignment = await Assignments.FindAsync(Id);

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

            Context.Entry(Assignment).Reference(x => x.CourseClass).Load();
            Context.Entry(Assignment).Reference(x => x.Solution)
            .Query().Include(x => x.MethodDeclarations).Load();
            Context.Entry(Assignment).Reference(x => x.TestProject)
            .Query().Include(x => x.UnitTests).Load();

            return(Page());
        }
예제 #3
0
        public async Task <IActionResult> OnGetAsync()
        {
            Student = await Students.SingleOrDefaultAsync(x => x.Email.Equals(User.Identity.Name));

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

            Assignment = await Assignments.FindAsync(Id);

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

            Snapshots = Student.Snapshots.Where(x => x.AssignmentId.Equals(Id))
                        .Select(x =>
            {
                Context.Entry(x).Reference(y => y.Report).Load();
                if (x.Report.Type != SnapshotReport.SnapshotReportTypes.Success)
                {
                    return(x);
                }

                Context.Entry((SnapshotSuccessReport)x.Report)
                .Collection(y => y.SnapshotMethods)
                .Query().Include(y => y.MethodDeclaration).Load();
                Context.Entry((SnapshotSuccessReport)x.Report)
                .Collection(y => y.UnitTestResults)
                .Query().Include(y => y.UnitTest)
                .Load();

                return(x);
            })
                        .OrderByDescending(x => x.SnapshotSubmission.CreatedDateTime)
                        .ToList();
            return(Page());
        }