示例#1
0
 void timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
 {
     try
     {
         timer.Stop();
         using (var context = new TAS2013Entities())
         {
             // If Service download data on specific times
             if (context.Options.FirstOrDefault().DownTime == true)
             {
                 List <DownloadTime> _downloadTime = new List <DownloadTime>();
                 _downloadTime = context.DownloadTimes.ToList();
                 foreach (var item in _downloadTime)
                 {
                     // Add 2 minutes extra to download time
                     TimeSpan _dwnTimeEnd = (TimeSpan)item.DownTime + new TimeSpan(0, 2, 0);
                     if (DateTime.Now.TimeOfDay >= item.DownTime && DateTime.Now.TimeOfDay <= _dwnTimeEnd)
                     {
                         GlobalSettings._dateTime = Properties.Settings.Default.MyDateTime;
                         //Download Data from Devices
                         DownloadDataFromDevices();
                         //set Process = 1 where Date varies from ranges
                         AdjustPollData();
                         //Prcoess PollData to Attendance Data
                         ProcessAttendance pa = new ProcessAttendance();
                         pa.ProcessDailyAttendance();
                         DailySummaryClass dailysum = new DailySummaryClass(DateTime.Today.AddDays(-20), DateTime.Today);
                     }
                     /////////Process Monthly Attendance//////////
                     TimeSpan monthlyTStart = new TimeSpan(18, 50, 0);
                     TimeSpan monthlyTEnd   = new TimeSpan(18, 52, 0);
                     if (DateTime.Now.TimeOfDay >= monthlyTStart && DateTime.Now.TimeOfDay <= monthlyTEnd)
                     {
                         DailySummaryClass dailysum = new DailySummaryClass(DateTime.Today.AddDays(-20), DateTime.Today);
                         //DailySummaryClass dailysum = new DailySummaryClass(new DateTime(2015, 07, 27), new DateTime(2015, 07, 27));
                         ////Correct Flags for monthly
                         DateTime dtStart = DateTime.Today.AddDays(-2);
                         DateTime dtend   = DateTime.Today;
                         CorrectAttEntriesWithWrongFlags(dtStart, dtend);
                         ProcessMonthlyAttendance();
                     }
                 }
             }
             else
             {
             }
         }
     }
     catch
     {
     }
     finally
     {
         timer.Start();
     }
 }
 ///////////////---------TIMER CLICKED--------/////////////////
 void timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
 {
     try
     {
         timer.Stop();
         using (var context = new TAS2013Entities())
         {
             // If Service run at specific times
             if (context.Options.FirstOrDefault().DownTime == true)
             {
                 List <DownloadTime> _downloadTime = new List <DownloadTime>();
                 _downloadTime = context.DownloadTimes.ToList();
                 foreach (var item in _downloadTime)
                 {
                     // Add 2 minutes extra to download time
                     TimeSpan _dwnTimeEnd = (TimeSpan)item.DownTime + new TimeSpan(0, 2, 0);
                     if (DateTime.Now.TimeOfDay >= item.DownTime && DateTime.Now.TimeOfDay <= _dwnTimeEnd)
                     {
                         GlobalSettings._dateTime = Properties.Settings.Default.MyDateTime;
                         //Download Data from Devices
                         DownloadDataFromDevices();
                         //set Process = 1 in PollData where Date varies from Date ranges
                         AdjustPollData();
                         //Prcoess PollData to Attendance Data
                         ProcessAttendance pa = new ProcessAttendance();
                         pa.ProcessDailyAttendance();
                     }
                     /////////--------Process Monthly Attendance-------//////////
                     // Monthly Process will be run in between 11:50 PM to 11:51 PM
                     TimeSpan monthlyTStart = new TimeSpan(23, 50, 0);
                     TimeSpan monthlyTEnd   = new TimeSpan(23, 51, 0);
                     if (DateTime.Now.TimeOfDay >= monthlyTStart && DateTime.Now.TimeOfDay <= monthlyTEnd)
                     {
                         DateTime dtStart = DateTime.Today.AddDays(-2);
                         DateTime dtend   = DateTime.Today;
                         //Correct Attendance Status for Monthly Process
                         CorrectAttEntriesWithWrongFlags(dtStart, dtend);
                         //Process Monthly Attendance for Permanent
                         ProcessMonthlyAttForPermanentFF();
                         //Process Monthly Attendance for Contractuals
                         ProcessMonthlyAttForContractualFF();
                         DateTime dateStart = DateTime.Today.AddDays(-10);
                         DateTime dateEnd   = DateTime.Today;
                         // Process Attendance Data into Daily Summary
                         DailySummaryClass ds = new DailySummaryClass(dateStart, dateEnd);
                         //////////-------Set Device Data Time on Sundays Night------////////////
                         if (DateTime.Today.DayOfWeek == DayOfWeek.Sunday)
                         {
                             AdjustDateTimeOfDevices();
                         }
                     }
                 }
                 ///-----------Process Manual Attendance Request--------////////////
                 ProcessManualAttendanceRequest();
             }
             else
             {
                 // if user wants to process the attendance without intervals
             }
         }
     }
     catch
     {
     }
     finally
     {
         timer.Start();
     }
 }