private static IQueryable <Authors> ChangeSortOrder(SortOrderAuthorEnum sortOrder, IQueryable <Authors> authors) { switch (sortOrder) { case SortOrderAuthorEnum.FirstName_Desc: authors = authors.OrderByDescending(s => s.FirstName); break; case SortOrderAuthorEnum.FirstName_Asc: authors = authors.OrderBy(s => s.FirstName); break; case SortOrderAuthorEnum.Birthdate_Desc: authors = authors.OrderByDescending(s => s.Birthdate); break; case SortOrderAuthorEnum.Birthdate_Asc: authors = authors.OrderBy(s => s.Birthdate); break; default: authors = authors.OrderBy(s => s.FirstName); break; } return(authors); }
public async Task <ActionResult <IEnumerable <Authors> > > GetAuthors(SortOrderAuthorEnum sortOrder, string searchString, int?pageNumber, int?pageSize) { if (searchString != null) { pageNumber = 1; } if (!pageSize.HasValue) { pageSize = 5; } var authors = from s in _context.Authors //.Include(a => a.Posts) //.Include(e => e.Rates) //.AsNoTracking() select s; if (!String.IsNullOrEmpty(searchString)) { authors = authors.Where(s => s.FirstName.Contains(searchString) || s.LastName.Contains(searchString)); } switch (sortOrder) { case SortOrderAuthorEnum.FirstName_Desc: authors = authors.OrderByDescending(s => s.FirstName); break; case SortOrderAuthorEnum.FirstName_Asc: authors = authors.OrderBy(s => s.FirstName); break; case SortOrderAuthorEnum.Birthdate_Desc: authors = authors.OrderByDescending(s => s.Birthdate); break; case SortOrderAuthorEnum.Birthdate_Asc: authors = authors.OrderBy(s => s.Birthdate); break; default: authors = authors.OrderBy(s => s.FirstName); break; } return(await PaginatedList <Authors> .CreateAsync(authors.AsNoTracking(), pageNumber ?? 1, pageSize.Value)); }
public HttpResponseMessage GetReportAuthors(TypeReportEnum typeReport, SortOrderAuthorEnum sortOrder) { string nomeArquivo = "AuthorsTeste1.xlsx"; string path = @"D:\Arquitetura\Poc Microservicos\ApiAcme\RelatoriosTemplates\"; string pathArquivo = path + nomeArquivo; string contentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; var authors = from s in _context.Authors .Include(a => a.Posts) select s; authors = ChangeSortOrder(sortOrder, authors); authors = authors.Where(a => a.Posts.Count > 0).Take(10); RelatoriosFlexcelUtilitario relatorios = new RelatoriosFlexcelUtilitario(); relatorios.GerarExcel <Authors>(authors.ToList(), "Authors", @"D:\Arquitetura\Poc Microservicos\ApiAcme\RelatoriosTemplates\AuthorsTemplate.xlsx", @"D:\Arquitetura\Poc Microservicos\ApiAcme\RelatoriosTemplates\RelatoriosGerados\AuthorsTeste1.xlsx"); relatorios.GerarExcel <Authors>(authors.ToList(), "Authors", @"D:\Arquitetura\Poc Microservicos\ApiAcme\RelatoriosTemplates\AuthorsTemplate2.xlsx", @"D:\Arquitetura\Poc Microservicos\ApiAcme\RelatoriosTemplates\RelatoriosGerados\AuthorsTeste2.xlsx"); switch (typeReport) { case TypeReportEnum.Xlsx: nomeArquivo = "AuthorsTeste1.xlsx"; contentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; break; case TypeReportEnum.Pdf: nomeArquivo = "AuthorsTeste1.pdf"; contentType = "application/pdf"; relatorios.ExportToPdf(@"D:\Arquitetura\Poc Microservicos\ApiAcme\RelatoriosTemplates\RelatoriosGerados\AuthorsTeste1.xlsx", @"D:\Arquitetura\Poc Microservicos\ApiAcme\RelatoriosTemplates\RelatoriosGerados\AuthorsTeste1.pdf"); relatorios.ExportToPdf(@"D:\Arquitetura\Poc Microservicos\ApiAcme\RelatoriosTemplates\RelatoriosGerados\AuthorsTeste2.xlsx", @"D:\Arquitetura\Poc Microservicos\ApiAcme\RelatoriosTemplates\RelatoriosGerados\AuthorsTeste2.pdf"); break; case TypeReportEnum.Html: nomeArquivo = "AuthorsTeste1.html"; contentType = "text/html"; relatorios.ExportToHtml(@"D:\Arquitetura\Poc Microservicos\ApiAcme\RelatoriosTemplates\RelatoriosGerados\AuthorsTeste1.xlsx", @"D:\Arquitetura\Poc Microservicos\ApiAcme\RelatoriosTemplates\RelatoriosGerados\AuthorsTeste1.html"); relatorios.ExportToHtml(@"D:\Arquitetura\Poc Microservicos\ApiAcme\RelatoriosTemplates\RelatoriosGerados\AuthorsTeste2.xlsx", @"D:\Arquitetura\Poc Microservicos\ApiAcme\RelatoriosTemplates\RelatoriosGerados\AuthorsTeste2.html"); break; default: break; } TesteFlexcelSimples(relatorios); if (System.IO.File.Exists(pathArquivo)) { HttpResponseMessage result = new HttpResponseMessage(HttpStatusCode.OK); //TMS //Response.Clear(); //Response.AddHeader("Content-Disposition", "attachment;" //+ "filename=Test.xls"); //Response.AddHeader("Content-Length", //ms.Length.ToString()); //Response.ContentType = "application/excel"; //Response.BinaryWrite(ms.ToArray()); //Response.End(); //var stream = new FileStream(pathArquivo, FileMode.Open); //stream.Position = 0; //result.Content = new StreamContent(stream); //result.Content.Headers.ContentDisposition = new System.Net.Http.Headers.ContentDispositionHeaderValue("attachment") { FileName = pathArquivo }; //result.Content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue(contenType); //result.Content.Headers.ContentDisposition.FileName = pathArquivo; return(result); } else { HttpResponseMessage result = new HttpResponseMessage(HttpStatusCode.Gone); return(result); } }