Guest User

Untitled

a guest
Mar 21st, 2018
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.72 KB | None | 0 0
  1. public void Download(string datainicio, string datafinal, int? searchContrato, string searchCliente, string tipo, string status)
  2. {
  3. DateTime dt1 = Convert.ToDateTime(datainicio);
  4. DateTime dt2 = Convert.ToDateTime(datafinal);
  5.  
  6. var tbl_caminhos = db.tbl_caminho_backup.AsNoTracking().Where(x => x.ativo == true && x.tbl_cliente_verusbackuponline.ativo == true).ToList();
  7. var tbl_logs = db.vw_logs_backuponline.AsNoTracking().Where(x => DbFunctions.TruncateTime(x.data_inicio) >= DbFunctions.TruncateTime(dt1) && DbFunctions.TruncateTime(x.data_inicio) <= DbFunctions.TruncateTime(dt2)).ToList();
  8.  
  9. //List<vw_logs_backuponline> tbl_logs = null;
  10. if (!String.IsNullOrEmpty(tipo))
  11. {
  12. tbl_caminhos = tbl_caminhos.Where(x => x.tipo == tipo).ToList();
  13.  
  14. tbl_logs = tbl_logs.Where(s => s.log_tipo == tipo).ToList();
  15. }
  16. if (!String.IsNullOrEmpty(searchCliente))
  17. {
  18. tbl_caminhos = tbl_caminhos.Where(x => x.tbl_cliente_verusbackuponline.nome_razao.ToLower().Contains(searchCliente.ToLower())).ToList();
  19. tbl_logs = tbl_logs.Where(s => s.nome_razao.ToLower().Contains(searchCliente.ToLower())).ToList();
  20. }
  21. if (searchContrato != null)
  22. {
  23. tbl_caminhos = tbl_caminhos.Where(x => x.tbl_cliente_verusbackuponline.contrato == searchContrato).ToList();
  24.  
  25. tbl_logs = tbl_logs.Where(s => s.contrato == searchContrato).ToList();
  26. }
  27. if (!String.IsNullOrEmpty(status) && status == "0")
  28. {
  29. tbl_caminhos = tbl_caminhos.Where(x => !tbl_logs.Select(l => l.id_caminho_backup).Contains(x.id_caminho_backup)).ToList();
  30.  
  31. tbl_logs = tbl_logs.Where(s => s.data_fim != null).ToList();
  32. }
  33. if (!String.IsNullOrEmpty(status) && status == "1")
  34. {
  35. tbl_caminhos = null;
  36. tbl_logs = tbl_logs.Where(s => s.data_fim != null).ToList();
  37. }
  38.  
  39. if (tbl_caminhos != null)
  40. {
  41. for (DateTime dtRef = dt1; dtRef <= dt2; dtRef = dtRef.AddDays(1))
  42. {
  43. //aqui pego todos os caminhos cadastrados para os clientes
  44. foreach (var caminhos in tbl_caminhos)
  45. {
  46. //verifico se existe um log para o caminho, se tiver eu sei que foi realizado o backup
  47. if (tbl_logs.Where(x => x.id_caminho_backup == caminhos.id_caminho_backup && (x.data_inicio >= dtRef && x.data_inicio <= dtRef)).Count() <= 0)
  48. {
  49. //se entrou aqui é pq não existe um log para o caminho, então crio uma linha de falha do backup
  50. vw_logs_backuponline log = new vw_logs_backuponline();
  51. log.contrato = caminhos.tbl_cliente_verusbackuponline.contrato;
  52. log.nome_razao = caminhos.tbl_cliente_verusbackuponline.nome_razao;
  53. log.cidade = caminhos.tbl_cliente_verusbackuponline.cidade;
  54. log.log_tipo = caminhos.tipo;
  55. log.data_inicio = dtRef;
  56. log.hora_inicio = caminhos.tbl_cliente_verusbackuponline.hora_backup;
  57. log.bucket = caminhos.tbl_cliente_verusbackuponline.bucket;
  58. log.hora_backup = caminhos.tbl_cliente_verusbackuponline.hora_backup;
  59. log.msg_operacao = "<span class='glyphicon glyphicon-alert' aria-hidden='true'></span>";
  60. log.caminho_ativo = true;
  61.  
  62. tbl_logs.Add(log);
  63. }
  64. }
  65. }
  66. //aqui removo os com sucesso quando a busca é apenas os com falhas
  67. if (!String.IsNullOrEmpty(status) && status == "0")
  68. {
  69. tbl_logs.RemoveAll(x => x.data_fim != null);
  70. }
  71.  
  72. }
  73. var logs = tbl_logs.Select(x => new LogsBackup() { Contrato = x.contrato, Modalidade = x.log_tipo, Cidade = x.cidade, UF = x.uf, Nome_Razao = x.nome_razao, Dias_Backup = (x.data_inicio - x.data_fim).ToString().FirstOrDefault().ToString() }).AsQueryable().ToList();
  74.  
  75. try
  76. {
  77. GridView gridView = new GridView();
  78.  
  79. gridView.DataSource = logs;
  80. gridView.DataBind();
  81.  
  82. Response.ClearContent();
  83. Response.Buffer = true;
  84. Response.AddHeader("content-disposition", "attachment;filename=" + datafinal + "VerusBackup.xls");
  85. Response.ContentType = "application/vnd.ms-excel";
  86. Response.Charset = "";
  87.  
  88. using (StringWriter stringWriter = new StringWriter())
  89. {
  90. using (HtmlTextWriter htmlTextWriter = new HtmlTextWriter(stringWriter))
  91. {
  92.  
  93. gridView.RenderControl(htmlTextWriter);
  94. Response.Output.Write(stringWriter.ToString());
  95. Response.Flush();
  96. Response.End();
  97. }
  98. }
  99. }
  100. catch (Exception ex)
  101. {
  102.  
  103. throw ex;
  104. }
  105.  
  106. }
  107.  
  108. $("#btnExportar").click(function (e) {
  109. var datainicio = $('#datainicio').val();
  110. var datafinal = $('#datafinal').val();
  111. var searchContrato = $('#searchContrato').val();
  112. var tipo = $('#tipo').val();
  113. var status = $('#status').val();
  114. $.ajax({
  115. type: 'GET',
  116. url: "@Url.Action("Download", "logsbackuponline")",
  117. data: { datainicio: datainicio, datafinal: datafinal, searchContrato: searchContrato, tipo: tipo, status: status },
  118. async: true,
  119. success: function (Result) {
  120. window.location = '/logsbackuponline/Download?datainicio=' + datainicio + '&datafinal=' + datafinal + '&searchContrato=' + searchContrato + '&tipo=' + tipo + '&status=' + status;
  121. }
  122. })
  123. });
Add Comment
Please, Sign In to add comment