Ejemplo n.º 1
0
        public async Task <IActionResult> Excel([FromQuery] FaixaFiltro filtro)
        {
            var faixas = await _faixaRepository.Filtro(filtro);

            using (var wb = new XLWorkbook())
            {
                var ws         = wb.AddWorksheet("Faixas");
                var linhaAtual = 1;
                ws.Cell(linhaAtual, (int)FaixaColumns.Nome).Value                    = "Nome";
                ws.Cell(linhaAtual, (int)FaixaColumns.Nome).Style.Font.Bold          = true;
                ws.Cell(linhaAtual, (int)FaixaColumns.Compositor).Value              = "Compositor";
                ws.Cell(linhaAtual, (int)FaixaColumns.Compositor).Style.Font.Bold    = true;
                ws.Cell(linhaAtual, (int)FaixaColumns.Album).Value                   = "Álbum";
                ws.Cell(linhaAtual, (int)FaixaColumns.Album).Style.Font.Bold         = true;
                ws.Cell(linhaAtual, (int)FaixaColumns.TipoMidia).Value               = "Tipo de Mídia";
                ws.Cell(linhaAtual, (int)FaixaColumns.TipoMidia).Style.Font.Bold     = true;
                ws.Cell(linhaAtual, (int)FaixaColumns.Genero).Value                  = "Gênero";
                ws.Cell(linhaAtual, (int)FaixaColumns.Genero).Style.Font.Bold        = true;
                ws.Cell(linhaAtual, (int)FaixaColumns.Milissegundos).Value           = "Milissegundos";
                ws.Cell(linhaAtual, (int)FaixaColumns.Milissegundos).Style.Font.Bold = true;
                ws.Cell(linhaAtual, (int)FaixaColumns.Bytes).Value                   = "Bytes";
                ws.Cell(linhaAtual, (int)FaixaColumns.Bytes).Style.Font.Bold         = true;
                ws.Cell(linhaAtual, (int)FaixaColumns.PrecoUnitario).Value           = "Preço Unitário";
                ws.Cell(linhaAtual, (int)FaixaColumns.PrecoUnitario).Style.Font.Bold = true;

                foreach (var faixa in faixas)
                {
                    linhaAtual++;
                    ws.Cell(linhaAtual, (int)FaixaColumns.Nome).Value          = faixa.Nome;
                    ws.Cell(linhaAtual, (int)FaixaColumns.Compositor).Value    = faixa.Compositor;
                    ws.Cell(linhaAtual, (int)FaixaColumns.Album).Value         = faixa?.Album?.Titulo;
                    ws.Cell(linhaAtual, (int)FaixaColumns.TipoMidia).Value     = faixa?.TipoMidia?.Nome;
                    ws.Cell(linhaAtual, (int)FaixaColumns.Genero).Value        = faixa?.Genero?.Nome;
                    ws.Cell(linhaAtual, (int)FaixaColumns.Milissegundos).Value = faixa.Milissegundos;
                    ws.Cell(linhaAtual, (int)FaixaColumns.Bytes).Value         = faixa.Bytes;
                    ws.Cell(linhaAtual, (int)FaixaColumns.PrecoUnitario).Value = faixa.PrecoUnitario;
                }

                return(await GerarArquivoExcel(wb, "faixas.xlsx"));
            }
        }
Ejemplo n.º 2
0
        public async Task <IList <Faixa> > Filtro(FaixaFiltro filtro)
        {
            var faixaQuery = DbSet.AsNoTracking();

            if (filtro != null)
            {
                if (!string.IsNullOrEmpty(filtro.Nome))
                {
                    faixaQuery = faixaQuery.Where(f => f.Nome.Contains(filtro.Nome));
                }

                if (!string.IsNullOrEmpty(filtro.Compositor))
                {
                    faixaQuery = faixaQuery.Where(f => f.Compositor.Contains(filtro.Compositor));
                }

                if (!string.IsNullOrEmpty(filtro.Album))
                {
                    faixaQuery = faixaQuery.Where(f => f.Album.Titulo.Contains(filtro.Album));
                }

                if (filtro.TipoDeMidiaId > 0)
                {
                    faixaQuery = faixaQuery.Where(f => f.TipoMidia.TipoMidiaId == filtro.TipoDeMidiaId);
                }

                if (filtro.GeneroId > 0)
                {
                    faixaQuery = faixaQuery.Where(f => f.Genero.GeneroId == filtro.GeneroId);
                }
            }

            return(await faixaQuery
                   .Include(f => f.Album)
                   .Include(f => f.TipoMidia)
                   .Include(f => f.Genero)
                   .ToListAsync());
        }
Ejemplo n.º 3
0
 public async Task <IList <FaixaViewModel> > GetAll([FromQuery] FaixaFiltro filtro)
 {
     return(_mapper.Map <IList <FaixaViewModel> >(await _faixaRepository.Filtro(filtro)));
 }