Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- [Route("{cidade}/{tipoNegocio}/{tipoImovel}/download/xls")]
- [HttpPost]
- public HttpResponseMessage generateXls(string cidade, TipoNegocio tipoNegocio, TipoImovel tipoImovel, [FromBody]FiltroBusca filtros)
- {
- try
- {
- this.ValidaSession();
- // TODO: Buscar código da cidade.
- int cidadeId = 0;
- if (cidade == "Cascavel-PR")
- cidadeId = 2853;
- else if (cidade == "Toledo-PR")
- cidadeId = 3164;
- else if (cidade == "Curitiba-PR")
- cidadeId = 2878;
- else if (cidade == "Maringa-PR")
- cidadeId = 2994;
- else if (cidade == "Londrina-PR")
- cidadeId = 2976;
- else if (cidade == "Pelotas-RS")
- cidadeId = 4160;
- else if (cidade == "Caxias do Sul-RS")
- cidadeId = 3945;
- else if (cidade == "Sao Paulo-SP")
- cidadeId = 5270;
- else if (cidade == "Joinville-SC")
- cidadeId = 4549;
- else if (cidade == "Florianopolis-SC")
- cidadeId = 4500;
- else if (cidade == "Porto Alegre-RS")
- cidadeId = 4174;
- else if (cidade == "Blumenau-SC")
- cidadeId = 4449;
- else if (cidade == "Balneario Camboriu-SC")
- cidadeId = 4440;
- else if (cidade == "Rio de Janeiro-RJ")
- cidadeId = 3658;
- else if (cidade == "Belo Horizonte-MG")
- cidadeId = 1630;
- else if (cidade == "Brasilia-DF")
- cidadeId = 882;
- else if (cidade == "Salvador-BA")
- cidadeId = 616;
- else if (cidade == "Maceio-AL")
- cidadeId = 147;
- else if (cidade == "Itajai-SC")
- cidadeId = 4538;
- else if (cidade == "Itapema-SC")
- cidadeId = 4539;
- else if (cidade == "Jaragua do Sul-SC")
- cidadeId = 4546;
- else if (cidade == "Brusque-SC")
- cidadeId = 4460;
- else if (cidade == "Camboriu-SC")
- cidadeId = 4464;
- IEnumerable<Database.Persister.ImovelObject> imoveis;
- if (filtros.listaIds != null && filtros.listaIds.Any())
- {
- imoveis = ImovelService.BuscaImoveis(cidadeId, tipoNegocio, tipoImovel, filtros.Bairro, filtros.ImobiliariaId, TipoOrdenacao.MenorPreco, filtros.ValorInicial, filtros.ValorFinal, null, null, filtros.Caracteristicas, filtros.Pagina, filtros.Quantidade, filtros.Edificio, filtros.PoligonoPontosZoneamento, filtros.PoligonoPontos, filtros.Latitude, filtros.Longitude, -1, filtros.Referencia, filtros.IsConstrutora).ToList()
- .Where(x => filtros.listaIds.Contains(x.Id));
- }
- else
- {
- imoveis = ImovelService.BuscaImoveis(cidadeId, tipoNegocio, tipoImovel, filtros.Bairro, filtros.ImobiliariaId, TipoOrdenacao.MenorPreco, filtros.ValorInicial, filtros.ValorFinal, null, null, filtros.Caracteristicas, filtros.Pagina, filtros.Quantidade, filtros.Edificio, filtros.PoligonoPontosZoneamento, filtros.PoligonoPontos, filtros.Latitude, filtros.Longitude, -1, filtros.Referencia, filtros.IsConstrutora);
- }
- if (!imoveis.Any())
- {
- throw new HttpResponseException(Request.CreateErrorResponse(HttpStatusCode.NoContent, "Desculpe, nesse momento não foi possível realizar a avaliação desejada. A precisão do nosso modelo de avaliação é baseada na confiabilidade da amostra de dados para as características informadas."));
- }
- //var imoveis = ImovelService.BuscaImoveis(cidadeId, tipoNegocio, tipoImovel, filtros.Bairro, filtros.ImobiliariaId, TipoOrdenacao.MenorPreco, filtros.ValorInicial, filtros.ValorFinal, null, null, filtros.Caracteristicas, filtros.Pagina, filtros.Quantidade, filtros.Edificio, filtros.PoligonoPontosZoneamento, filtros.PoligonoPontos, filtros.Latitude, filtros.Longitude, -1, filtros.Referencia, filtros.IsConstrutora);
- DataTable table1 = new DataTable("Imóveis");
- table1.Columns.Add("Imobiliária", typeof(string));
- table1.Columns.Add("Bairro", typeof(string));
- table1.Columns.Add("Edifício", typeof(string));
- table1.Columns.Add("Valor", typeof(string));
- table1.Columns.Add("Dormitórios", typeof(string));
- table1.Columns.Add("Garagens", typeof(string));
- table1.Columns.Add("Área total", typeof(string));
- table1.Columns.Add("Valor m2 total", typeof(string));
- table1.Columns.Add("Área Útil", typeof(string));
- table1.Columns.Add("Valor m2 Útil", typeof(string));
- table1.Columns.Add("Endereço", typeof(string));
- table1.Columns.Add("Link", typeof(string));
- foreach (var imovel in imoveis)
- {
- var imobiliaria = System.Text.Encoding.UTF8.GetBytes(imovel.Imobiliaria);
- table1.Rows.Add(
- imovel.Imobiliaria,
- imovel.Bairro == "" || imovel.Bairro == null ? " - " : imovel.Bairro,
- imovel.Edificio == "" || imovel.Edificio == null ? " - " : imovel.Edificio,
- string.Format(CultureInfo.GetCultureInfo("pt-BR"), "{0:c}", imovel.Valor),
- imovel.Quarto == 0 ? " - " : imovel.Quarto.ToString(),
- imovel.Garagem == 0 ? " - " : imovel.Garagem.ToString(),
- imovel.AreaTotal == 0 ? " - " : imovel.AreaTotal.ToString(),
- imovel.AreaTotal == 0 ? " - " : string.Format(CultureInfo.GetCultureInfo("pt-BR"), "{0:c}", Math.Round((imovel.Valor / imovel.AreaTotal), 2)),
- imovel.Area == 0 ? " - " : imovel.Area.ToString(),
- imovel.Area == 0 ? " - " : string.Format(CultureInfo.GetCultureInfo("pt-BR"), "{0:c}", Math.Round((imovel.Valor / imovel.Area), 2)),
- imovel.Endereco,
- imovel.Link
- );
- }
- byte[] result = new byte[] { };
- DataSet set = new DataSet("Imoveis");
- set.Tables.Add(table1);
- HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.OK);
- using (ExcelPackage pck = new ExcelPackage())
- {
- ExcelWorksheet ws = pck.Workbook.Worksheets.Add("Imoveis");
- ws.Cells["A1"].LoadFromDataTable(table1, true);
- ws.Cells[ws.Dimension.Address].AutoFitColumns();
- pck.Save();
- var stream = new MemoryStream(pck.GetAsByteArray());
- //pck.Dispose();
- response.Content = new StreamContent(stream);
- response.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment");
- response.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
- response.Content.Headers.ContentDisposition.FileName = "relatorio.xlsx";
- return response;
- }
- }
- catch(Exception e)
- {
- HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.OK);
- response.Content = new StringContent(e.ToString());
- return response;
- }
- }
Add Comment
Please, Sign In to add comment