Guest User

Untitled

a guest
Dec 12th, 2017
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.29 KB | None | 0 0
  1. [Route("{cidade}/{tipoNegocio}/{tipoImovel}/download/xls")]
  2. [HttpPost]
  3. public HttpResponseMessage generateXls(string cidade, TipoNegocio tipoNegocio, TipoImovel tipoImovel, [FromBody]FiltroBusca filtros)
  4. {
  5. try
  6. {
  7. this.ValidaSession();
  8. // TODO: Buscar código da cidade.
  9. int cidadeId = 0;
  10. if (cidade == "Cascavel-PR")
  11. cidadeId = 2853;
  12. else if (cidade == "Toledo-PR")
  13. cidadeId = 3164;
  14. else if (cidade == "Curitiba-PR")
  15. cidadeId = 2878;
  16. else if (cidade == "Maringa-PR")
  17. cidadeId = 2994;
  18. else if (cidade == "Londrina-PR")
  19. cidadeId = 2976;
  20. else if (cidade == "Pelotas-RS")
  21. cidadeId = 4160;
  22. else if (cidade == "Caxias do Sul-RS")
  23. cidadeId = 3945;
  24. else if (cidade == "Sao Paulo-SP")
  25. cidadeId = 5270;
  26. else if (cidade == "Joinville-SC")
  27. cidadeId = 4549;
  28. else if (cidade == "Florianopolis-SC")
  29. cidadeId = 4500;
  30. else if (cidade == "Porto Alegre-RS")
  31. cidadeId = 4174;
  32. else if (cidade == "Blumenau-SC")
  33. cidadeId = 4449;
  34. else if (cidade == "Balneario Camboriu-SC")
  35. cidadeId = 4440;
  36. else if (cidade == "Rio de Janeiro-RJ")
  37. cidadeId = 3658;
  38. else if (cidade == "Belo Horizonte-MG")
  39. cidadeId = 1630;
  40. else if (cidade == "Brasilia-DF")
  41. cidadeId = 882;
  42. else if (cidade == "Salvador-BA")
  43. cidadeId = 616;
  44. else if (cidade == "Maceio-AL")
  45. cidadeId = 147;
  46. else if (cidade == "Itajai-SC")
  47. cidadeId = 4538;
  48. else if (cidade == "Itapema-SC")
  49. cidadeId = 4539;
  50. else if (cidade == "Jaragua do Sul-SC")
  51. cidadeId = 4546;
  52. else if (cidade == "Brusque-SC")
  53. cidadeId = 4460;
  54. else if (cidade == "Camboriu-SC")
  55. cidadeId = 4464;
  56.  
  57. IEnumerable<Database.Persister.ImovelObject> imoveis;
  58.  
  59.  
  60. if (filtros.listaIds != null && filtros.listaIds.Any())
  61. {
  62. 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()
  63. .Where(x => filtros.listaIds.Contains(x.Id));
  64. }
  65. else
  66. {
  67. 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);
  68. }
  69.  
  70.  
  71.  
  72. if (!imoveis.Any())
  73. {
  74. 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."));
  75. }
  76.  
  77. //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);
  78. DataTable table1 = new DataTable("Imóveis");
  79. table1.Columns.Add("Imobiliária", typeof(string));
  80. table1.Columns.Add("Bairro", typeof(string));
  81. table1.Columns.Add("Edifício", typeof(string));
  82. table1.Columns.Add("Valor", typeof(string));
  83. table1.Columns.Add("Dormitórios", typeof(string));
  84. table1.Columns.Add("Garagens", typeof(string));
  85. table1.Columns.Add("Área total", typeof(string));
  86. table1.Columns.Add("Valor m2 total", typeof(string));
  87. table1.Columns.Add("Área Útil", typeof(string));
  88. table1.Columns.Add("Valor m2 Útil", typeof(string));
  89. table1.Columns.Add("Endereço", typeof(string));
  90. table1.Columns.Add("Link", typeof(string));
  91.  
  92.  
  93.  
  94. foreach (var imovel in imoveis)
  95. {
  96. var imobiliaria = System.Text.Encoding.UTF8.GetBytes(imovel.Imobiliaria);
  97. table1.Rows.Add(
  98. imovel.Imobiliaria,
  99. imovel.Bairro == "" || imovel.Bairro == null ? " - " : imovel.Bairro,
  100. imovel.Edificio == "" || imovel.Edificio == null ? " - " : imovel.Edificio,
  101. string.Format(CultureInfo.GetCultureInfo("pt-BR"), "{0:c}", imovel.Valor),
  102. imovel.Quarto == 0 ? " - " : imovel.Quarto.ToString(),
  103. imovel.Garagem == 0 ? " - " : imovel.Garagem.ToString(),
  104. imovel.AreaTotal == 0 ? " - " : imovel.AreaTotal.ToString(),
  105. imovel.AreaTotal == 0 ? " - " : string.Format(CultureInfo.GetCultureInfo("pt-BR"), "{0:c}", Math.Round((imovel.Valor / imovel.AreaTotal), 2)),
  106. imovel.Area == 0 ? " - " : imovel.Area.ToString(),
  107. imovel.Area == 0 ? " - " : string.Format(CultureInfo.GetCultureInfo("pt-BR"), "{0:c}", Math.Round((imovel.Valor / imovel.Area), 2)),
  108. imovel.Endereco,
  109. imovel.Link
  110. );
  111. }
  112.  
  113. byte[] result = new byte[] { };
  114. DataSet set = new DataSet("Imoveis");
  115. set.Tables.Add(table1);
  116. HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.OK);
  117. using (ExcelPackage pck = new ExcelPackage())
  118. {
  119. ExcelWorksheet ws = pck.Workbook.Worksheets.Add("Imoveis");
  120. ws.Cells["A1"].LoadFromDataTable(table1, true);
  121. ws.Cells[ws.Dimension.Address].AutoFitColumns();
  122.  
  123.  
  124. pck.Save();
  125. var stream = new MemoryStream(pck.GetAsByteArray());
  126. //pck.Dispose();
  127. response.Content = new StreamContent(stream);
  128. response.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment");
  129. response.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
  130. response.Content.Headers.ContentDisposition.FileName = "relatorio.xlsx";
  131.  
  132. return response;
  133. }
  134.  
  135. }
  136. catch(Exception e)
  137. {
  138. HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.OK);
  139. response.Content = new StringContent(e.ToString());
  140. return response;
  141. }
  142.  
  143. }
Add Comment
Please, Sign In to add comment