public UploadViewModel(IAssessment assessment, UploadPostbackModel model) : this(assessment) { this.WorksheetNumber = model.WorksheetNumber; this.SurnameColumn = model.SurnameColumn; this.ForenamesColumn = model.ForenamesColumn; this.ResultColumn = model.ResultColumn; this.StartRow = model.StartRow; }
public ActionResult Upload(Guid id, HttpPostedFileBase fileToImport, UploadPostbackModel model) { var assessment = this.assessmentsRepo.Open(id); if (fileToImport == null) { ModelState.AddModelError("fileToImport", "No file selected"); } if (!ModelState.IsValid) { var viewModel = new UploadViewModel(assessment, model); return this.View(viewModel); } if (fileToImport != null) { using (var memoryStream = new MemoryStream()) { fileToImport.InputStream.CopyTo(memoryStream); memoryStream.Position = 0; var parseResult = AssessmentParser.Parse( memoryStream, model.WorksheetNumber, model.SurnameColumn, model.ForenamesColumn, model.ResultColumn, model.StartRow); foreach (var resultRow in parseResult.Results) { var newCandidateId = assessment.AddCandidate(resultRow.Surname, resultRow.Forenames); if (resultRow.Result.HasValue) { assessment.SetCandidateResult(newCandidateId, resultRow.Result.Value); } } } } return this.RedirectToAction("Edit", "AssessmentEditor", new { id }); }