public ActionResult UploadSubmit() { Team team = SessionUtil.GetTeamFromFormsAuthentication(); Tournament t = SessionUtil.GetTournamentFromSession(); TournamentAssignment ta = SessionUtil.GetTournamentAssignmentFromSession(); Assignment a = SessionUtil.GetAssignmentFromSession(); AssignmentEnrollment ae = SessionUtil.GetAssignmentEnrollmentFromSession(); if (Request.Files.Count == 1) { HttpPostedFileBase postedFile = Request.Files[0]; TempData["SubmittedFileText"] = string.Format("File: {0} submitted", postedFile.FileName); //Check for big file (> 128KB) int submitMaxSize = int.Parse(ConfigurationManager.AppSettings["SubmitMaxSize"]) * 1024; if (postedFile.ContentLength > submitMaxSize) { TempData["SubmittedFileText"] = string.Format("Submitted file is too large. Maximum size: {0}KB", submitMaxSize); return(RedirectToAction("Index")); } //Check for right file extension if (postedFile.FileName.IndexOf(".cs") != postedFile.FileName.Length - 3) { TempData["SubmittedFileText"] = "Submitted file doesn't have extension '.cs'."; return(RedirectToAction("Index")); } //Construct the submit Submit s = new Submit() { FileName = Path.GetFileName(postedFile.FileName), Team = team, TournamentAssignment = ta, AssignmentEnrollment = ae }; s.Data = new byte[postedFile.ContentLength]; postedFile.InputStream.Read(s.Data, 0, postedFile.ContentLength); // Do the submit try { ClientFacade.Instance.SaveSubmit(s); } catch (MoCSException e) { TempData["SubmittedFileText"] = "Unable to process submit. Reason: " + e.Message; } } return(RedirectToAction("Index")); }