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")); } }
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()); }
public async Task <IList <FaixaViewModel> > GetAll([FromQuery] FaixaFiltro filtro) { return(_mapper.Map <IList <FaixaViewModel> >(await _faixaRepository.Filtro(filtro))); }