public async Task <ActionResult> _Tests(int?id, VirtualClassroomViewModel viewModel)
        {
            ApplicationUser user = await UserManager.FindByIdAsync(User.Identity.GetUserId());

            var classroom      = _context.VirtualClassrooms.Find(id);
            var classroomModel = new VirtualClassroomViewModel
            {
                StudentId        = user.Student.StudentId,
                VirtualClassroom = classroom,
                Tests            = classroom.Tests.OrderBy(d => d.DueDate).ToList(),
                CompletedTests   = _context.CompletedTests
                                   .Where(s => s.StudentId == user.Student.StudentId &&
                                          s.VirtualClassroomId == classroom.Id).ToList()
            };

            if (User.Identity.IsAuthenticated)
            {
                if (User.IsInRole("Student"))
                {
                    classroomModel.VirtualClassrooms = user.Student.VirtualClassrooms.ToList();
                }
                if (User.IsInRole("Instructor"))
                {
                    classroomModel.VirtualClassrooms = user.Instructor.VirtualClassrooms.ToList();
                }
                if (User.IsInRole("Admin"))
                {
                    classroomModel.VirtualClassrooms = _context.VirtualClassrooms.ToList();
                }
            }
            return(PartialView(classroomModel));
        }
Beispiel #2
0
        // GET: Tests
        public async Task <ActionResult> Index()
        {
            var user = await UserManager.FindByIdAsync(User.Identity.GetUserId());

            var classrooms = user.Instructor.VirtualClassrooms;
            var viewModel  = new VirtualClassroomViewModel()
            {
                Tests             = new List <Test>(),
                CompletedTests    = new List <CompletedTest>(),
                VirtualClassrooms = classrooms
            };

            foreach (var classroom in classrooms)
            {
                foreach (var test in classroom.Tests)
                {
                    viewModel.Tests.Add(test);
                    foreach (var completedTest in test.CompletedTests.Where(s => s.Submitted))
                    {
                        viewModel.CompletedTests.Add(completedTest);
                    }
                }
            }
            return(View(viewModel));
        }
        public async Task <ActionResult> StudentDashboard()
        {
            var             today  = DateTime.Now;
            var             future = today.AddDays(7);
            ApplicationUser user   = await UserManager.FindByIdAsync(User.Identity.GetUserId());

            var viewModel = new VirtualClassroomViewModel
            {
                VirtualClassrooms    = user.Student.VirtualClassrooms,
                CompletedAssignments = _context.CompletedAssignments
                                       .Include(v => v.VirtualClassroom)
                                       .Include(a => a.Assignment)
                                       .Where(x => x.StudentId == user.Student.StudentId &&
                                              x.Submitted == false &&
                                              x.Assignment.DueDate >= today &&
                                              x.Assignment.DueDate <= future)
                                       .OrderBy(a => a.Assignment.DueDate).ToList(),
                CompletedTests = _context.CompletedTests
                                 .Include(v => v.VirtualClassroom)
                                 .Include(t => t.Test)
                                 .Where(x => x.Student.StudentId == user.Student.StudentId &&
                                        x.Submitted == false &&
                                        x.Test.DueDate >= today &&
                                        x.Test.DueDate <= future)
                                 .OrderBy(d => d.Test.DueDate).ToList()
            };

            return(View(viewModel));
        }
Beispiel #4
0
        //// GET: Tests/Create
        //public async Task<ActionResult> Create()
        //{
        //    var user = await UserManager.FindByIdAsync(User.Identity.GetUserId());
        //    var viewModel = new TestsFormViewModel
        //    {
        //        VirtualClassrooms = user.Instructor.VirtualClassrooms,
        //        AvailableDate = null,
        //        DueDate = null,
        //    };
        //    return View(viewModel);
        //}

        public ActionResult _Create()
        {
            var user      = UserManager.FindById(User.Identity.GetUserId());
            var viewModel = new VirtualClassroomViewModel()
            {
                VirtualClassrooms = user.Instructor.VirtualClassrooms
            };

            return(PartialView(viewModel));
        }
        public ActionResult _SubmitTest(int id, int classroomId)
        {
            var viewModel = new VirtualClassroomViewModel()
            {
                Test             = _context.Tests.Find(id),
                VirtualClassroom = _context.VirtualClassrooms.Find(classroomId)
            };

            return(PartialView("_SubmitTest", viewModel));
        }
        public async Task <ActionResult> InstructorClassroom(VirtualClassroomViewModel viewModel)
        {
            ApplicationUser user = await UserManager.FindByIdAsync(User.Identity.GetUserId());

            var classroom = new VirtualClassroomViewModel
            {
                VirtualClassrooms = user.Instructor.VirtualClassrooms,
                VirtualClassroom  = _context.VirtualClassrooms.Find(viewModel.VirtualClassroom.Id)
            };

            return(View(classroom));
        }
        public async Task <ActionResult> _EditAssignment(int id)
        {
            ApplicationUser user = await UserManager.FindByIdAsync(User.Identity.GetUserId());

            var viewModel = new VirtualClassroomViewModel()
            {
                CompletedAssignment = _context.CompletedAssignments
                                      .Where(a => a.AssignmentId == id)
                                      .Single(s => s.StudentId == user.Student.StudentId)
            };

            return(View(viewModel));
        }
        public async Task <ActionResult> _CompletedTest(int id, int classroomId)
        {
            ApplicationUser user = await UserManager.FindByIdAsync(User.Identity.GetUserId());

            var viewModel = new VirtualClassroomViewModel()
            {
                CompletedTest = _context.CompletedTests
                                .Where(a => a.TestId == id)
                                .Single(s => s.StudentId == user.Student.StudentId &&
                                        s.VirtualClassroomId == classroomId)
            };

            return(PartialView(viewModel));
        }
Beispiel #9
0
        public ActionResult Create(VirtualClassroomViewModel viewModel, string[] selectedClassrooms)
        {
            var test = new Test
            {
                TaskTitle       = viewModel.Test.TaskTitle,
                TaskDescription = viewModel.Test.TaskDescription,
                TaskAvailable   = viewModel.Test.TaskAvailable,
                AvailableDate   = (DateTime)viewModel.Test.AvailableDate,
                DueDate         = (DateTime)viewModel.Test.DueDate,
                PointsWorth     = viewModel.Test.PointsWorth,
                Classrooms      = new List <VirtualClassroom>()
            };

            foreach (var classroomId in selectedClassrooms)
            {
                var classroom = _context.VirtualClassrooms.Find(int.Parse(classroomId));
                test.Classrooms.Add(classroom);
            }
            foreach (var classroom in test.Classrooms)
            {
                foreach (var student in classroom.Students)
                {
                    Grade grade = new Grade()
                    {
                        Id             = Guid.NewGuid(),
                        PointsReceived = 0
                    };
                    _context.Grades.Add(grade);

                    var completedTest = new CompletedTest
                    {
                        TestId             = test.Id,
                        StudentId          = student.StudentId,
                        CompletedDateTime  = null,
                        VirtualClassroomId = classroom.Id,
                        GradeId            = grade.Id
                    };
                    _context.CompletedTests.Add(completedTest);
                }
            }
            test.FileDetails = AddFilesDetailsToTest();
            _context.Tests.Add(test);
            _context.SaveChanges();

            return(RedirectToAction("Index"));
        }
        // GET: CompletedTests
        public async Task <ActionResult> Index(int?id, int?classroomId)
        {
            var user = await UserManager.FindByIdAsync(User.Identity.GetUserId());

            var viewModel = new VirtualClassroomViewModel()
            {
                Test              = _context.Tests.Find(id),
                VirtualClassroom  = _context.VirtualClassrooms.Find(classroomId),
                VirtualClassrooms = user.Instructor.VirtualClassrooms,
                CompletedTests    = _context.CompletedTests
                                    .Include(s => s.Student)
                                    .Where(s => s.Submitted &&
                                           s.TestId == id &&
                                           s.Graded == false).ToList()
            };

            return(View(viewModel));
        }
Beispiel #11
0
        public async Task <ActionResult> ClassroomTests(int?id)
        {
            var user = await UserManager.FindByIdAsync(User.Identity.GetUserId());

            var classrooms = user.Instructor.VirtualClassrooms;
            var classroom  = _context.VirtualClassrooms.Find(id);
            var viewModel  = new VirtualClassroomViewModel()
            {
                VirtualClassroom  = classroom,
                VirtualClassrooms = classrooms,
                Tests             = classroom.Tests.ToList(),
                CompletedTests    = _context.CompletedTests
                                    .Where(x => x.VirtualClassroom.Id == id &&
                                           x.Submitted &&
                                           x.Graded == false).ToList(),
            };

            return(View(viewModel));
        }
        public ActionResult Edit(VirtualClassroomViewModel viewModel)
        {
            var test       = _context.Tests.Find(viewModel.CompletedTest.TestId);
            var editedTest = _context.CompletedTests.Find(viewModel.CompletedTest.Id);

            editedTest.Grade = _context.Grades.Find(viewModel.CompletedTest.GradeId);
            editedTest.Grade.PointsReceived  = viewModel.CompletedTest.Grade.PointsReceived;
            editedTest.Grade.GradePercentage = Grade.GetGradePercentage(test.PointsWorth, viewModel.CompletedTest.Grade.PointsReceived);
            editedTest.Graded = true;
            if (ModelState.IsValid)
            {
                _context.CompletedTests.AddOrUpdate(editedTest);
                //db.Entry(editedTest).State = EntityState.Modified;
                _context.SaveChanges();
                return(RedirectToAction("Index", new { id = viewModel.CompletedTest.TestId, classroomId = viewModel.CompletedTest.VirtualClassroomId }));
            }
            ViewBag.TestId    = new SelectList(_context.Tests, "Id", "TaskTitle", viewModel.CompletedTest.TestId);
            ViewBag.StudentId = new SelectList(_context.Students, "StudentId", "FirstName", viewModel.StudentId);
            return(View(viewModel));
        }
        public async Task <ActionResult> CompletedTest(VirtualClassroomViewModel classroom, int id)
        {
            ApplicationUser user = await UserManager.FindByIdAsync(User.Identity.GetUserId());

            CompletedTest completedTest = _context.CompletedTests.Where(a => a.TestId == id).Single(s => s.StudentId == user.Student.StudentId && s.VirtualClassroomId == classroom.VirtualClassroom.Id);

            completedTest.Title       = classroom.CompletedTest.Title;
            completedTest.Description = classroom.CompletedTest.Description;
            completedTest.Submitted   = true;

            List <CompletedTestFileDetails> fileDetails = new List <CompletedTestFileDetails>();

            for (int i = 0; i < Request.Files.Count; i++)
            {
                var file = Request.Files[i];

                if (file != null && file.ContentLength > 0)
                {
                    var fileName = Path.GetFileName(file.FileName);
                    CompletedTestFileDetails fileDetail = new CompletedTestFileDetails()
                    {
                        FileName        = fileName,
                        Extension       = Path.GetExtension(fileName),
                        FileId          = Guid.NewGuid(),
                        CompletedTestId = completedTest.Id
                    };
                    fileDetails.Add(fileDetail);

                    var path = Path.Combine(Server.MapPath("~/App_Data/Upload/"),
                                            fileDetail.FileId + fileDetail.Extension);
                    file.SaveAs(path);
                }
            }
            completedTest.CompletedTestFileDetails = fileDetails;
            _context.CompletedTests.AddOrUpdate(completedTest);
            _context.SaveChanges();
            new JsonResult {
                Data = "Successfully "
            };
            return(RedirectToAction("ClassroomTasks", new { id = classroom.VirtualClassroom.Id }));
        }
        public ActionResult _EditAssignment(int classroomId, VirtualClassroomViewModel model)
        {
            var completedAssignment = _context.CompletedAssignments.Find(model.CompletedAssignment.Id);
            List <CompletedAssignmentFileDetails> fileDetails = new List <CompletedAssignmentFileDetails>();

            for (int i = 0; i < Request.Files.Count; i++)
            {
                var file = Request.Files[i];

                if (file != null && file.ContentLength > 0)
                {
                    var fileName = Path.GetFileName(file.FileName);
                    CompletedAssignmentFileDetails fileDetail = new CompletedAssignmentFileDetails()
                    {
                        FileName              = fileName,
                        Extension             = Path.GetExtension(fileName),
                        FileId                = Guid.NewGuid(),
                        CompletedAssignmentId = model.CompletedAssignment.Id
                    };
                    fileDetails.Add(fileDetail);

                    var path = Path.Combine(Server.MapPath("~/App_Data/Upload/"),
                                            fileDetail.FileId + fileDetail.Extension);
                    file.SaveAs(path);
                }
            }


            completedAssignment.Id                = model.CompletedAssignment.Id;
            completedAssignment.AssignmentId      = model.CompletedAssignment.AssignmentId;
            completedAssignment.Title             = model.CompletedAssignment.Title;
            completedAssignment.Description       = model.CompletedAssignment.Description;
            completedAssignment.CompletedDateTime = DateTime.Now;
            completedAssignment.CompletedAssignmentFileDetails = fileDetails;

            _context.CompletedAssignments.AddOrUpdate(completedAssignment);
            return(View("ClassroomTasks", new VirtualClassroomViewModel()
            {
                VirtualClassroom = _context.VirtualClassrooms.Find(classroomId)
            }));
        }
        public async Task <ActionResult> GradeBook(int classroomId)
        {
            ApplicationUser user = await UserManager.FindByIdAsync(User.Identity.GetUserId());

            var classroom = _context.VirtualClassrooms.Find(classroomId);
            var viewModel = new VirtualClassroomViewModel()
            {
                VirtualClassroom   = classroom,
                GradeBookViewModel = new GradeBookViewModel()
                {
                    VirtualClassroom     = classroom,
                    Assignments          = classroom.Assignments,
                    CompletedAssignments = _context.CompletedAssignments
                                           .Include(g => g.Grade)
                                           .Where(x => x.VirtualClassroomId == classroomId &&
                                                  x.StudentId == user.Student.StudentId).ToList(),
                    Tests          = classroom.Tests,
                    CompletedTests = _context.CompletedTests
                                     .Include(g => g.Grade)
                                     .Where(x => x.VirtualClassroomId == classroomId &&
                                            x.StudentId == user.Student.StudentId).ToList()
                }
            };

            if (User.Identity.IsAuthenticated)
            {
                if (User.IsInRole("Student"))
                {
                    viewModel.VirtualClassrooms = user.Student.VirtualClassrooms.ToList();
                }
                if (User.IsInRole("Instructor"))
                {
                    viewModel.VirtualClassrooms = user.Instructor.VirtualClassrooms.ToList();
                }
                if (User.IsInRole("Admin"))
                {
                    viewModel.VirtualClassrooms = _context.VirtualClassrooms.ToList();
                }
            }
            return(View(viewModel));
        }
        public async Task <ActionResult> ClassroomTasks(int?id, VirtualClassroomViewModel viewModel)
        {
            ApplicationUser user = await UserManager.FindByIdAsync(User.Identity.GetUserId());

            var classroom      = _context.VirtualClassrooms.Find(id);
            var classroomModel = new VirtualClassroomViewModel
            {
                StudentId            = user.Student.StudentId,
                VirtualClassroom     = classroom,
                Assignments          = classroom.Assignments.OrderBy(d => d.DueDate).ToList(),
                CompletedAssignments = _context.CompletedAssignments
                                       .Where(s => s.StudentId == user.Student.StudentId &&
                                              s.VirtualClassroomId == classroom.Id).ToList(),
                Tests          = classroom.Tests.OrderBy(d => d.DueDate).ToList(),
                CompletedTests = _context.CompletedTests
                                 .Where(s => s.StudentId == user.Student.StudentId &&
                                        s.VirtualClassroomId == classroom.Id).ToList(),
                VirtualClassrooms = user.Student.VirtualClassrooms
            };

            return(View(classroomModel));
        }
        public async Task <ActionResult> InstructorDashboard()
        {
            ApplicationUser user = await UserManager.FindByIdAsync(User.Identity.GetUserId());

            var classrooms           = user.Instructor.VirtualClassrooms;
            var completedAssignments =
                _context.CompletedAssignments
                .Include(s => s.Student)
                .Where(x => x.Submitted && x.Graded == false);
            var completedTests = _context.CompletedTests
                                 .Include(s => s.Student)
                                 .Where(x => x.Submitted && x.Graded == false);
            var viewModel = new VirtualClassroomViewModel
            {
                VirtualClassrooms    = classrooms,
                CompletedAssignments = new List <CompletedAssignment>(),
                CompletedTests       = new List <CompletedTest>(),
                Assignments          = new List <Assignment>()
            };

            foreach (var classroom in classrooms)
            {
                foreach (var assignment in classroom.Assignments)
                {
                    viewModel.Assignments.Add(assignment);
                }
                foreach (var completedAssignment in completedAssignments.Where(x => x.VirtualClassroomId == classroom.Id))
                {
                    viewModel.CompletedAssignments.Add(completedAssignment);
                }
                foreach (var completedTest in completedTests.Where(x => x.VirtualClassroomId == classroom.Id))
                {
                    viewModel.CompletedTests.Add(completedTest);
                }
            }

            return(View(viewModel));
        }
        public async Task <ActionResult> Edit(int?id, int?classroomId)
        {
            var user = await UserManager.FindByIdAsync(User.Identity.GetUserId());

            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            var viewModel = new VirtualClassroomViewModel()
            {
                VirtualClassroom  = _context.VirtualClassrooms.Find(classroomId),
                VirtualClassrooms = user.Instructor.VirtualClassrooms,
                CompletedTest     = _context.CompletedTests.Find(id)
            };

            if (viewModel == null)
            {
                return(HttpNotFound());
            }
            //ViewBag.TestId = new SelectList(db.Tests, "TestId", "TaskTitle", completedTest.CompletedTest.TestId);
            //ViewBag.StudentId = new SelectList(db.Students, "StudentId", "FirstName", completedTest.CompletedTest.StudentId);
            return(View(viewModel));
        }