public void Initialize()
 {
     _timer.Elapsed += async(sender, e) =>
     {
         _timer.Stop();
         DateTime curDateTime = DateTime.UtcNow;
         DateTime dateTime    = _intervalHelper.GetLastDate(1, curDateTime);
         if (_isFirst)
         {
             _isFirst = false;
             try
             {
                 await _reportGenerator.GenerateIfNotExist(dateTime);
             }
             catch (Exception exception)
             {
                 Trace.TraceError("Failed to save initial report: {0}", exception);
             }
         }
         else
         {
             try
             {
                 await _reportGenerator.Generate(dateTime);
             }
             catch (Exception exception)
             {
                 Trace.TraceError("Failed to save report: {0}", exception);
             }
         }
         _timer.Interval = _intervalHelper.GetMillisecondsToEndDay(new TimeSpan(0, 1, 1, 0), DateTime.UtcNow);
         _timer.Start();
     };
     _timer.Start();
 }
Esempio n. 2
0
        public async Task <HttpResponseMessage> Get()
        {
            DateTime       currentDateTime = DateTime.UtcNow;
            StandardReport standardReport;

            // Trying build report for one day before
            try
            {
                DateTime lastDay1 = _helper.GetLastDate(1, currentDateTime);
                standardReport = await _standardReportBuilder.BuildReport(lastDay1);

                return(Request.CreateResponse(HttpStatusCode.OK, standardReport));
            }
            catch (NotFoundException)
            {
            }

            // Trying build report for two days before
            DateTime lastDay2 = _helper.GetLastDate(2, currentDateTime);

            standardReport = await _standardReportBuilder.BuildReport(lastDay2);

            return(Request.CreateResponse(HttpStatusCode.OK, standardReport));
        }