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)); }
// 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)); }
//// 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)); }
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)); }
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)); }