示例#1
0
        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);
        }
示例#2
0
        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));
        }
示例#3
0
        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);
            }
        }