Example #1
0
 private bool isScheduleOverLap(firedumpdbDataSet.schedulesRow row, int day, int hour, int minute)
 {
     if (row.day == day && row.hours == hour && row.minutes == minute)
     {
         return(true);
     }
     return(false);
 }
Example #2
0
 internal void setSchedule(firedumpdbDataSet.schedulesRow schedulesRow)
 {
     this.schedulesRow = schedulesRow;
 }
Example #3
0
        private void Run()
        {
            //on comment i have no schedule so some kind of null exception raised and the service broke
            //CANT DEBUG/WRITELINE/LOG ON CONSOLE.WRITELINE a service!
            try
            {
                setUpScheduleList();
            }catch (Exception ex)
            {
                File.AppendAllText(@"errorlog.txt", ex.ToString());
            }

            //Sort scheduleRowList by date and take the nearest upcomming
            //malon panw anti gia Fill ena FillByDate query pou tha ta fernei etima me date order

            while (run)
            {
                ConfigurationManager.getInstance().initializeConfig();
                Thread.Sleep(MILLISECS);
                try
                {
                    //SAFE COMMENT ALL

                    int day    = (int)DateTime.Now.DayOfWeek;
                    int hours  = DateTime.Now.Hour;
                    int minute = DateTime.Now.Minute;
                    int second = DateTime.Now.Second;

                    if (scheduleRowList.Count > 0 && day == scheduleRowList[0].day && hours == scheduleRowList[0].hours && minute == scheduleRowList[0].minutes)
                    {
                        //File.AppendAllText(@"errorlog.txt", " SAME " + '\n');
                        //inbounds same minute
                        bool overlap = scheduleRowList[0].seconds <= second;
                        if (overlap)
                        {
                            // File.AppendAllText(@"errorlog.txt", " overlap " + '\n');
                            int dif = second - scheduleRowList[0].seconds;
                            if (dif <= 3)
                            {
                                //File.AppendAllText(@"errorlog.txt", " INTIME "+'\n');

                                schedulemanager = new ScheduleManager();
                                schedulemanager.setSchedule(scheduleRowList[0]);
                                firedumpdbDataSet.schedulesRow row = scheduleRowList[0];
                                scheduleRowList.Remove(row);
                                schedulemanager.Start();
                                scheduleQueue.Enqueue(schedulemanager);
                            }
                        }
                    }

                    //File.AppendAllText(@"errorlog.txt", " NEXTS "+ day+" "+ hours+" "+ minute+'\n');
                    //Refill
                    if (scheduleRowList.Count == 0)
                    {
                        setUpScheduleList();
                    }
                }
                catch (Exception ex) {
                    //write ex message to file
                    File.AppendAllText(@"errorlog.txt", ex.ToString());
                }
            }
        }
Example #4
0
        public void TestRun()
        {
            TestSetUpScheduleList();
            for (int i = 0; i < schedules.Count; i++)
            {
                Console.WriteLine("name:" + schedules[i].name + ",day:" + schedules[i].day + ",hour:" + schedules[i].hours + ",minute:" + schedules[i].minutes + ",sec:" + schedules[i].seconds);
            }

            //for test
            int day    = 0;
            int hours  = 0;
            int minute = 10;
            int second = 10;

            int count = 0;

            while (true)
            {
                Console.WriteLine("Thread Sleeping..." + count);
                Thread.Sleep(2500);

                //int day = (int)DateTime.Now.DayOfWeek;
                //int hours = DateTime.Now.Hour;
                //int minute = DateTime.Now.Minute;
                //int second = DateTime.Now.Second;


                Console.WriteLine("BEFORECHECK:" + schedules.Count);

                //if is in day-hour-minute
                if ((schedules.Count > 0) && day == schedules[0].day && hours == schedules[0].hours && schedules[0].minutes == minute)
                {
                    Console.WriteLine("day:" + schedules[0].day + ",hour:" + schedules[0].hours + ",minute:" + schedules[0].minutes + ",sec:" + schedules[0].seconds);
                    //check if schedule is near now secs but not passed
                    bool overlap = schedules[0].seconds <= second;
                    Console.WriteLine("overlap:" + overlap);
                    if (overlap)
                    {   //if yes, check if the difference between now and schedule is lessOrEqual to 3
                        int dif = second - schedules[0].seconds;
                        Console.WriteLine("dif:" + dif);
                        if (dif <= 3)
                        {
                            //if yes execute schedule and remove it from list
                            ScheduleManager manager = new ScheduleManager();
                            Console.WriteLine(schedules[0].name);
                            Console.WriteLine("INTIME" + "day:" + schedules[0].day + ",hour:" + schedules[0].hours + ",minute:" + schedules[0].minutes + ",sec:" + schedules[0].seconds);
                            firedumpdbDataSet.schedulesRow row = schedules[0];
                            schedules.Remove(row);
                            //break;
                            if (count == 5)
                            {
                                day++;
                                hours++;
                                minute++;
                                second++;
                                second++;
                                second++;
                                second++;
                                second++;
                            }
                            else
                            {
                                day++;
                                hours++;
                                minute++;
                                second++;
                            }
                        }
                    }
                }

                if (schedules.Count == 0)
                {
                    //refill
                }

                if (count == 5)
                {
                    break;
                }
                count++;
            }

            //no needed
            Assert.IsTrue(true);
        }