public byte[] GenerateExcelFile() { // Create main export with requested fields. var mainSheet = Talon.Excel(Mains).Name(DefaultSheetName).Sheet(DefaultSheetName).Columns(c => { c.Bound(x => x.StiNumber).Title("STI Number"); c.Bound(x => x.Revision).Title("Revision"); foreach (var column in ColSelection) { switch (column) { case "Title": c.Bound(x => x.Title).Title("Title"); break; case "Status": c.Bound(x => x.StatusDisplayName).Title("Status"); break; case "NumberPages": c.Bound(x => x.NumberPagesStr).Title("Number Pages"); break; case "ProductType": c.Bound(x => x.DocumentTypeStr).Title("Product Type"); break; case "CreationDate": c.Bound(x => x.CreateDateStr).Title("Creation Date"); break; case "ApprovedDate": c.Bound(x => x.ApprovalDateStr).Title("Approved Date"); break; case "Abstract": c.Bound(x => x.AbstractWithAccessCheck).Title("Abstract"); break; case "Conference": c.Bound(x => x.ConferenceName).Title("Conference Name"); c.Bound(x => x.ConferenceSponsor).Title("Conference Sponsor"); c.Bound(x => x.ConferenceLocation).Title("Conference Location"); c.Bound(x => x.ConferenceBeginDateStr).Title("Conference Start Date"); c.Bound(x => x.ConferenceEndDateStr).Title("Conference End Date"); break; case "Journal": c.Bound(x => x.JournalName).Title("Journal Name"); break; } } }); int currentColumn = 1; int currentRow = Mains.Count + 3; // Setup all output text before exporting if (ColSelection.Contains("Contacts") && !SheetSelection.Contains("Contacts")) { mainSheet.SetValue(currentColumn, currentRow, "Contacts"); currentColumn += ContactRowCount; } if (ColSelection.Contains("Authors") && !SheetSelection.Contains("Authors")) { mainSheet.SetValue(currentColumn, currentRow, "Authors"); currentColumn += AuthorRowCount; } if (ColSelection.Contains("Funding") && !SheetSelection.Contains("Funding")) { mainSheet.SetValue(currentColumn, currentRow, "Funding"); currentColumn += FundingRowCount; } if (ColSelection.Contains("Subjects") && !SheetSelection.Contains("Subjects")) { mainSheet.SetValue(currentColumn, currentRow, "Subjects"); currentColumn += MetaDataRowCount; } if (ColSelection.Contains("Intellectual") && !SheetSelection.Contains("Intellectual")) { mainSheet.SetValue(currentColumn, currentRow, "Intellectual Property"); currentColumn += IntellectualProprtyRowCount; } if (ColSelection.Contains("Keywords") && !SheetSelection.Contains("Keywords")) { mainSheet.SetValue(currentColumn, currentRow, "Keywords"); currentColumn += MetaDataRowCount; } if (ColSelection.Contains("Reviewers") && !SheetSelection.Contains("Reviewers")) { mainSheet.SetValue(currentColumn, currentRow, "Reviewers"); currentColumn += ReviewersRowCount; mainSheet.SetValue(currentColumn, currentRow, "Reviewer Comments"); currentColumn += ReviewerCommentsRowCount; } if (ColSelection.Contains("ReviewerHistory") && !SheetSelection.Contains("ReviewerHistory")) { mainSheet.SetValue(currentColumn, currentRow, "Reviewer History"); currentColumn += ReviewerHistoryRowCount; mainSheet.SetValue(currentColumn, currentRow, "Reviewer Comments History"); currentColumn += ReviewerHistoryRowCount; } // Export for a template byte[] excelFile = mainSheet.Export(); // Setup columns for data additions currentColumn = 1; currentRow++; // Add in all extra information if (ColSelection.Contains("Contacts")) { excelFile = GenerateContactsExcel(excelFile, currentRow, ref currentColumn); } if (ColSelection.Contains("Authors")) { excelFile = GenerateAuthorsExcel(excelFile, currentRow, ref currentColumn); } if (ColSelection.Contains("Funding")) { excelFile = GenerateFundingExcel(excelFile, currentRow, ref currentColumn); } if (ColSelection.Contains("Subjects")) { excelFile = GenerateSubjectExcel(excelFile, currentRow, ref currentColumn); } if (ColSelection.Contains("Intellectual")) { excelFile = GenerateIntellectualPropertyExcel(excelFile, currentRow, ref currentColumn); } if (ColSelection.Contains("Keywords")) { excelFile = GenerateKeywordsExcel(excelFile, currentRow, ref currentColumn); } if (ColSelection.Contains("Reviewers")) { excelFile = GenerateReviewersExcel(excelFile, currentRow, ref currentColumn); excelFile = GenerateReviewerCommentsExcel(excelFile, currentRow, ref currentColumn); } if (ColSelection.Contains("ReviewerHistory")) { excelFile = GenerateReviewerHistoryExcel(excelFile, currentRow, ref currentColumn); excelFile = GenerateReviewerHistoryCommentsExcel(excelFile, currentRow, ref currentColumn); } return(excelFile); }
public byte[] GenerateExcelFile() { // Create main export with requested fields. var sortFile = Talon.Excel(Sorts).Name(DefaultSheetName).Sheet(DefaultSheetName).Columns(c => { c.Bound(x => x.TitleStr).Title("STI Number and Rev"); foreach (var column in ColSelection) { switch (column) { case "PublishTitle": c.Bound(x => x.PublishTitle).Title("Title"); break; case "Osti": c.Bound(x => x.OstiId).Title("OSTI ID"); c.Bound(x => x.OstiDate).Title("OSTI Publish Date"); c.Bound(x => x.OstiStatus).Title("OSTI Publish Status"); c.Bound(x => x.OstiStatusMsg).Title("OSTI Publish Message"); break; case "PublicationDate": c.Bound(x => x.PublicationDate).Title("Publication/Issue Date"); break; case "ProductType": c.Bound(x => x.ProductTypeDisplayName).Title("Artifact Type"); break; case "ReportNumbers": c.Bound(x => x.ReportNumbers).Title("Report/Product Number(s)"); break; case "Country": c.Bound(x => x.Country).Title("Country of Origin/Publication"); break; case "Language": c.Bound(x => x.Language).Title("Publication Language"); break; case "AccessLimitation": c.Bound(x => x.AccessLimitationDisplayName).Title("Access Limitation"); break; case "Abstract": c.Bound(x => x.AbstractWithAccessCheck).Title("Description/Abstract"); break; case "Publisher": c.Bound(x => x.PublisherName).Title("Publisher Name"); c.Bound(x => x.PublisherCity).Title("Publisher City"); c.Bound(x => x.PublisherState).Title("Publisher State"); c.Bound(x => x.PublisherCountry).Title("Publisher Country"); break; case "Conference": c.Bound(x => x.ConferenceName).Title("Conference Name"); c.Bound(x => x.ConferenceLocation).Title("Conference Location"); c.Bound(x => x.ConferenceBeginDate).Title("Conference Start Date"); c.Bound(x => x.ConferenceEndDate).Title("Conference End Date"); break; case "Journal": c.Bound(x => x.JournalTypeDisplayName).Title("Journal Type"); c.Bound(x => x.JournalName).Title("Journal Name"); c.Bound(x => x.JournalVolume).Title("Journal Volume"); c.Bound(x => x.JournalIssue).Title("Journal Issue"); c.Bound(x => x.JournalSerial).Title("Journal Serial"); c.Bound(x => x.JournalStartPage).Title("Journal Beginning Page"); c.Bound(x => x.JournalEndPage).Title("Journal Ending Page"); c.Bound(x => x.JournalDoi).Title("Journal DOI"); break; case "Patent": c.Bound(x => x.PatentAssignee).Title("Patent Assignee"); break; case "OpenNet": c.Bound(x => x.OpenNetData.AccessNumber).Title("OpenNet Accession Number"); c.Bound(x => x.OpenNetData.DocLocation).Title("OpenNet Document Location"); c.Bound(x => x.OpenNetData.FieldOfficeAym).Title("OpenNet Applicable Field Office Acronym"); c.Bound(x => x.OpenNetData.DeclassStatusEnumDisplayName).Title("OpenNet Declassification Status"); c.Bound(x => x.OpenNetData.DeclassificationDate).Title("OpenNet Declassificaton Date"); c.Bound(x => x.OpenNetData.Keywords).Title("OpenNet Document Keywords"); break; case "ProtectedData": c.Bound(x => x.ProtectedData.Crada).Title("Protected Data CRADA"); c.Bound(x => x.ProtectedData.ReleaseDate).Title("Protected Access Limitation Release Date"); c.Bound(x => x.ProtectedData.ExemptNumber).Title("Protected Exemption Number"); c.Bound(x => x.ProtectedData.Description).Title("Protected Description"); break; case "OfficialUseOnly": c.Bound(x => x.AccessReleaseDate).Title("Official Use Access Limitation Release Date"); c.Bound(x => x.ExemptionNumber).Title("Official Use Exemption Number"); break; } } }); int currentColumn = 1; int currentRow = Sorts.Count + 3; // Setup all output text before exporting if (ColSelection.Contains("Contacts") && !SheetSelection.Contains("Contacts")) { sortFile.SetValue(currentColumn, currentRow, "Contacts"); currentColumn += ContactRowCount; } if (ColSelection.Contains("Authors") && !SheetSelection.Contains("Authors")) { sortFile.SetValue(currentColumn, currentRow, "Authors"); currentColumn += AuthorRowCount; } if (ColSelection.Contains("Funding") && !SheetSelection.Contains("Funding")) { sortFile.SetValue(currentColumn, currentRow, "Funding"); currentColumn += FundingRowCount; } if (ColSelection.Contains("SubjectCategories") && !SheetSelection.Contains("SubjectCategories")) { sortFile.SetValue(currentColumn, currentRow, "Subjects"); currentColumn += MetaDataRowCount; } if (ColSelection.Contains("SponsoringOrgs") && !SheetSelection.Contains("SponsoringOrgs")) { sortFile.SetValue(currentColumn, currentRow, "Sponsoring Orgs"); currentColumn += MetaDataRowCount; } if (ColSelection.Contains("Keywords") && !SheetSelection.Contains("Keywords")) { sortFile.SetValue(currentColumn, currentRow, "Keywords"); currentColumn += MetaDataRowCount; } if (ColSelection.Contains("Reviewers") && !SheetSelection.Contains("Reviewers")) { sortFile.SetValue(currentColumn, currentRow, "Reviewers"); currentColumn += ReviewersRowCount; } // Export for a template byte[] excelFile = sortFile.Export(); // Setup columns for data additions currentColumn = 1; currentRow++; // Add in all extra information if (ColSelection.Contains("Contacts")) { excelFile = GenerateContactsExcel(excelFile, currentRow, ref currentColumn); } if (ColSelection.Contains("Authors")) { excelFile = GenerateAuthorsExcel(excelFile, currentRow, ref currentColumn); } if (ColSelection.Contains("Funding")) { excelFile = GenerateFundingExcel(excelFile, currentRow, ref currentColumn); } if (ColSelection.Contains("SubjectCategories")) { excelFile = GenerateSubjectCategoryExcel(excelFile, currentRow, ref currentColumn); } if (ColSelection.Contains("SponsoringOrgs")) { excelFile = GenerateSponsoringOrgsExcel(excelFile, currentRow, ref currentColumn); } if (ColSelection.Contains("Keywords")) { excelFile = GenerateKeywordsExcel(excelFile, currentRow, ref currentColumn); } if (ColSelection.Contains("Reviewers")) { excelFile = GenerateReviewersExcel(excelFile, currentRow, ref currentColumn); } return(excelFile); }