public ActionResult Create(VirtualClassroomViewModel viewModel, string[] selectedClassrooms) { var assignment = new Assignment { TaskTitle = viewModel.Assignment.TaskTitle, TaskDescription = viewModel.Assignment.TaskDescription, TaskAvailable = viewModel.Assignment.TaskAvailable, AvailableDate = (DateTime)viewModel.Assignment.AvailableDate, DueDate = (DateTime)viewModel.Assignment.DueDate, PointsWorth = viewModel.Assignment.PointsWorth, Classrooms = new List <VirtualClassroom>() }; foreach (var classroomId in selectedClassrooms) { var classroom = _context.VirtualClassrooms.Find(int.Parse(classroomId)); assignment.Classrooms.Add(classroom); } foreach (var classroom in assignment.Classrooms) { foreach (var student in classroom.Students) { Grade grade = new Grade() { Id = Guid.NewGuid(), PointsReceived = 0 }; _context.Grades.Add(grade); var completedAssignment = new CompletedAssignment { AssignmentId = assignment.Id, StudentId = student.StudentId, CompletedDateTime = null, VirtualClassroomId = classroom.Id, GradeId = grade.Id }; _context.CompletedAssignments.Add(completedAssignment); } } assignment.FileDetails = AddFilesDetailsToAssignment(); _context.Assignments.Add(assignment); _context.SaveChanges(); return(RedirectToAction("Index")); }
public async Task <ActionResult> CompletedAssignment(VirtualClassroomViewModel classroom, int id) { var user = await UserManager.FindByIdAsync(User.Identity.GetUserId()); CompletedAssignment completedAssignment = _context.CompletedAssignments.Where(a => a.AssignmentId == id).Single(s => s.StudentId == user.Student.StudentId && s.VirtualClassroomId == classroom.VirtualClassroom.Id); completedAssignment.Title = classroom.CompletedAssignment.Title; completedAssignment.Description = classroom.CompletedAssignment.Description; completedAssignment.Submitted = true; 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 = completedAssignment.Id }; fileDetails.Add(fileDetail); var path = Path.Combine(Server.MapPath("~/App_Data/Upload/"), fileDetail.FileId + fileDetail.Extension); file.SaveAs(path); } } completedAssignment.CompletedAssignmentFileDetails = fileDetails; _context.CompletedAssignments.AddOrUpdate(completedAssignment); _context.SaveChanges(); new JsonResult { Data = "Successfully " }; return(RedirectToAction("ClassroomTasks", new { id = classroom.VirtualClassroom.Id })); }