Untitled


SUBMITTED BY: Guest

DATE: Oct. 16, 2014, 1:11 p.m.

FORMAT: Text only

SIZE: 4.3 kB

HITS: 1109

  1. using System;
  2. using System.IO;
  3. using System.Messaging;
  4. using System.Net.Http;
  5. using System.Text;
  6. using System.Windows.Forms;
  7. using NeoEnergiaRequester.NeoEnergiaScrapper;
  8. using NeoEnergiaRequester.NeoEnergiaScrapper.DTO;
  9. using NeoEnergiaRequester.NeoEnergiaScrapper.Performace;
  10. namespace NeoEnergiaRequester
  11. {
  12. internal class Program
  13. {
  14. private static void Main(string[] args)
  15. {
  16. var needLogin = true;
  17. var scrapper = new Scrapper();
  18. var performace = new PerformaceHandler();
  19. var contrats = new []
  20. {
  21. }
  22. while (true)
  23. {
  24. var perfFile = new StreamWriter(ConfigSettings.PERF_LOG_FILE, true);
  25. performace.StartCounting();
  26. var begin = DateTime.Now;
  27. var receiveQueue = new MessageQueue(ConfigSettings.INPUT_QUEUE)
  28. {
  29. Formatter = new XmlMessageFormatter(new []{typeof(StartInfo)})
  30. };
  31. var info = new StartInfo { Empresa = "CELPE", NumeroContrato = "2643852023" };//receiveQueue.Receive().Body as StartInfo;
  32. Console.Write("Processando..." + info.NumeroContrato);
  33. if (begin.AddMinutes(20) < DateTime.Now) needLogin = true;
  34. try
  35. {
  36. var billDto = scrapper.Scrap(info, needLogin);
  37. perfFile.WriteLine("{0};{1};{2}",
  38. info.NumeroContrato, performace.StopCounting(), "SUCCESS");
  39. Console.Write(" Sucesso!");
  40. Console.Write("\n");
  41. var sendQueue = new MessageQueue(ConfigSettings.OUTPUT_QUEUE);
  42. sendQueue.Send(billDto);
  43. }
  44. catch (AggregateException ex)
  45. {
  46. HandleException(info, ex, performace.StopCounting());
  47. perfFile.WriteLine("{0};{1};{2}",
  48. info.NumeroContrato, performace.StopCounting(), "FAIL");
  49. Console.Write(" Falha!");
  50. Console.Write("\n");
  51. }
  52. catch (Exception ex)
  53. {
  54. HandleException(info, ex, performace.StopCounting());
  55. perfFile.WriteLine("{0};{1};{2}",
  56. info.NumeroContrato, performace.StopCounting(), "FAIL");
  57. Console.Write(" Falha!");
  58. Console.Write("\n");
  59. }
  60. finally
  61. {
  62. needLogin = false;
  63. perfFile.Close();
  64. }
  65. }
  66. }
  67. private static void HandleException(StartInfo info, Exception ex, TimeSpan elapsedTime)
  68. {
  69. var sendQueue = new MessageQueue(ConfigSettings.FAIL_QUEUE);
  70. sendQueue.Send(info);
  71. using (var stream = new StreamWriter(ConfigSettings.FAIL_LOG_FILE, true))
  72. {
  73. stream.WriteLine("Contract: {0}\nTime of Error: {1}\nException: {2}",
  74. info.NumeroContrato, DateTime.Now,
  75. ex.InnerException == null
  76. ? ex.StackTrace
  77. : ex.InnerException.Message);
  78. }
  79. if (ex.InnerException == null || ex.InnerException.GetType() != typeof(HttpRequestException)) return;
  80. }
  81. private static string GenerateString(BillDto bill)
  82. {
  83. var sbuilder = new StringBuilder();
  84. foreach (var property in bill.GetType().GetProperties())
  85. {
  86. sbuilder.Append(property.Name);
  87. sbuilder.Append(" : ");
  88. sbuilder.Append(property.GetValue(bill, null));
  89. sbuilder.Append(Environment.NewLine);
  90. }
  91. return sbuilder.ToString();
  92. }
  93. }
  94. }

comments powered by Disqus