public void Generate_Datatable_from_DataManagementPlan() { var project = SetUpFullProject("GA37493"); var dmpTable = _csvHelper.DataManagementPlanToDataTable(project.DataManagementPlan, project.Parties); var dmp = project.DataManagementPlan; Assert.That(dmpTable, Is.Not.Null); Assert.That(dmpTable.Columns.Count, Is.EqualTo(DataManagementColumnCount), "Incorrect number of columns"); Assert.That(dmpTable.Rows.Count, Is.EqualTo(1)); var dataRow = dmpTable.Rows[0]; Assert.That(dataRow["ExistingDataAccessTypes"], Is.EqualTo(dmp.ExistingDataDetail.ExistingDataAccessTypes.ToString())); Assert.That(dataRow["ExistingDataOwner"], Is.EqualTo(dmp.ExistingDataDetail.ExistingDataOwner)); Assert.That(dataRow["InstitutionalOtherTypeDescription"], Is.EqualTo(dmp.DataStorage.InstitutionalOtherTypeDescription)); Assert.That(dataRow["DataRetentionLocations"], Is.EqualTo(dmp.DataRetention.DataRetentionLocations.ToString())); Assert.That(dataRow["VersionControl"], Is.EqualTo(dmp.DataStorage.VersionControl.ToString())); Assert.That(dataRow["EthicRequiresClearance"], Is.EqualTo(dmp.Ethic.EthicRequiresClearance)); Assert.That(dataRow["ConfidentialityComments"], Is.EqualTo(dmp.Confidentiality.ConfidentialityComments)); Assert.That(dataRow["RelationshipBetweenExistingAndNewData"], Is.EqualTo(dmp.DataRelationshipDetail.RelationshipBetweenExistingAndNewData.ToString())); Assert.That(dataRow["DataSharingAvailabilityDate"], Is.EqualTo(dmp.DataSharing.DataSharingAvailabilityDate)); var parties = dataRow["AccessRoles"].ToString().Split('%'); Assert.That(parties.Length, Is.EqualTo(5)); }
public void Render_CSV_file_for_post_to_DataManagementPlanToCsv() { var vm = new CsvDumpViewModel { Projects = Builder <DmpListViewModel> .CreateListOfSize(3).Build() }; _form["DataManagementPlanCsv"] = "Get Data Management Plan to CSV"; _form["ProjectList"] = "1"; var project = SetUpFullProject("GA37493"); _projectRepository.GetByDataManagementPlanId(project.DataManagementPlan.Id).Returns(project); _csvHelper.ExportToCsv(Arg.Any <DataTable>()).Returns(""); _csvHelper.DataManagementPlanToDataTable(Arg.Any <DataManagementPlan>(), Arg.Any <IList <ProjectParty> >()).Returns(new DataTable()); _controller.WithCallTo(c => c.DataManagementPlanToCsv(vm)).ShouldRenderFile("text/csv"); _csvHelper.Received().ExportToCsv(Arg.Any <DataTable>(), Arg.Any <string>()); _csvHelper.Received().DataManagementPlanToDataTable(Arg.Any <DataManagementPlan>(), Arg.Any <IList <ProjectParty> >()); const string headerValue = "attachment;filename=Feeding_habits_of_polarbears_2011_DataManagementPlan.csv"; _context.HttpContext.Response.Received().AddHeader(Arg.Any <string>(), Arg.Is <string>(o => o == headerValue)); }
public ActionResult DataManagementPlanToCsv(CsvDumpViewModel model) { var formParams = ControllerContext.HttpContext.Request.Form; var dmpList = formParams["ProjectList"]; int sourceProjectId; if (int.TryParse(dmpList, out sourceProjectId)) { var project = _projectRepository.GetByDataManagementPlanId(sourceProjectId); if (project != null) { var dataManagementPlanTable = _csvHelper.DataManagementPlanToDataTable(project.DataManagementPlan, project.Parties); var reponse = this.ControllerContext.RequestContext.HttpContext.Response; var fileName = Regex.Replace(project.Title, @"\W+", "_").Trim('_'); reponse.AddHeader("Content-Disposition", "attachment;filename=" + fileName + "_DataManagementPlan.csv"); return(File(Encoding.UTF8.GetBytes(_csvHelper.ExportToCsv(dataManagementPlanTable, _appSettingsService.CsvSeparator)), "text/csv")); } return(View("DmpNotFound")); } return(RedirectToAction("Index")); }