private void AddBibTexLinks() { using (ResourceDataAccess resourceDAL = new ResourceDataAccess(this.CreateContext())) { if (!IsSecurityAwareControl || (UserPermissions != null && UserPermissions.Contains(UserResourcePermissions.Read))) { ScholarlyWork scholarlyWorkObj = (ScholarlyWork)resourceDAL.GetScholarlyWorkWithCitedScholarlyWorks(SubjectResource.Id); if (scholarlyWorkObj != null && scholarlyWorkObj.Cites.Count > 0) { BibTexExportLink.Visible = true; } else { BibTexExportLink.Visible = false; } } if (!IsSecurityAwareControl || (UserPermissions != null && UserPermissions.Contains(UserResourcePermissions.Update))) { BibTexImportLink.Visible = true; } else { BibTexImportLink.Visible = false; } SeperatorLabel.Visible = (BibTexExportLink.Visible == false || BibTexImportLink.Visible == false) ? false : true; } this.Controls.Add(BibTexPanel); }
void BibTexExportLink_Click(object sender, EventArgs e) { if (SubjectResource == null) { return; } ScholarlyWork scholarlyWorkObj = null; using (ResourceDataAccess resourceDAL = new ResourceDataAccess(this.CreateContext())) { scholarlyWorkObj = (ScholarlyWork)resourceDAL.GetScholarlyWorkWithCitedScholarlyWorks(SubjectResource.Id); if (scholarlyWorkObj != null) { ICollection <ScholarlyWork> citationsList = scholarlyWorkObj.Cites; List <ScholarlyWork> citations = resourceDAL.GetAuthorizedResources <ScholarlyWork> (AuthenticatedToken, UserResourcePermissions.Read, citationsList).ToList(); if (citations.Count > 0) { String fileNameToSend = scholarlyWorkObj.Id.ToString() + _bibExtention; String value = _attachment + fileNameToSend; this.Page.Response.ContentType = _contentTypeOctetStream; this.Page.Response.AddHeader(_responseHeader, value); this.Page.Response.Clear(); BibTeXConverter bibConverter = new BibTeXConverter(BibTeXParserBehavior.IgnoreParseErrors); foreach (ScholarlyWork swork in citations) { swork.Authors.Load(); swork.Editors.Load(); } bibConverter.Export(citations, this.Page.Response.OutputStream); this.Page.Response.Flush(); this.Page.Response.End(); } else { BibTexExportLink.Visible = false; SeperatorLabel.Visible = false; } } } }