AssessmentAnywhere.Controllers.AssessmentImportController.Upload C# (CSharp) Method

Upload() private method

private Upload ( System.Guid id, System.Web.HttpPostedFileBase fileToImport, UploadPostbackModel model ) : System.Web.Mvc.ActionResult
id System.Guid
fileToImport System.Web.HttpPostedFileBase
model AssessmentAnywhere.Models.AssessmentImport.UploadPostbackModel
return System.Web.Mvc.ActionResult
        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 });
        }

Same methods

AssessmentImportController::Upload ( System.Guid id ) : System.Web.Mvc.ActionResult
AssessmentImportController