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();
 }