コード例 #1
0
ファイル: SchedulerM.cs プロジェクト: NickHola/Backupper
        private bool?ExecHourlyPeriods(HourlyPeriods hourlyPeriods, DateTime dataAtt, ref string firmaEsecuzione)
        {
            if (hourlyPeriods == null)
            {
                Log.main.Add(new Mess(LogType.Warn, Log.main.warnUserText, "oggetto hourlyPeriods a null ma isPeriodicCycleEnabled a true"));
                return(null);      //Non ci sono filtri per periodi di orari quindi torno null
            }
            if (hourlyPeriods.Count == 0)
            {
                return(null);
            }

            DateTime oraInizio = DateTime.MinValue, oraFine = DateTime.MinValue;
            bool     esitoControllo = false;

            foreach (var periodo in hourlyPeriods)
            {
                oraInizio = new DateTime(dataAtt.Year, dataAtt.Month, dataAtt.Day, periodo.Da.Ora, periodo.Da.Minuti, periodo.Da.Secondi, periodo.Da.Millesimi);
                oraFine   = new DateTime(dataAtt.Year, dataAtt.Month, dataAtt.Day, periodo.A.Ora, periodo.A.Minuti, periodo.A.Secondi, periodo.A.Millesimi);

                if (oraInizio < oraFine) //Significa che l'ora fine non va oltre la mezzanotte, esempio oraInizio = 20:00 - oraFine = 23:50
                {
                    if (dataAtt >= oraInizio && dataAtt <= oraFine)
                    {
                        esitoControllo = true;
                    }
                }
                else if (oraInizio > oraFine)
                {
                    if (dataAtt >= oraInizio || dataAtt <= oraFine)
                    {
                        esitoControllo = true;
                    }
                } //Significa che l'ora fine VA OLTRE la mezzanotte, esempio oraInizio = 20:00 - oraFine = 00:30
                else
                { //Date uguali
                    Log.main.Add(new Mess(LogType.Warn, Log.main.warnUserText, "Inserite date identiche nel periodo orario"));
                    if (dataAtt == oraInizio)
                    {
                        esitoControllo = true;
                    }
                }

                if (esitoControllo == true)
                {
                    break;
                }
            }

            firmaEsecuzione += "giorno:" + oraInizio.ToString("dd/MM/yyyy") + ";oraInizio:" + oraInizio.ToString("HH:mm:ss.ff") + ";oraFine:" + oraFine.ToString("HH:mm:ss.ff") + "|";

            return(esitoControllo);
        }
コード例 #2
0
ファイル: SchedulerM.cs プロジェクト: NickHola/Backupper
        //Public Sub New() 'Questo costruttore serve per fare un nuovo ogg prima del deserializzatore?
        //End Sub

        /// <summary>
        /// </summary>
        /// <param name="periodicCycle">Se valorizzato verrà eseguita non più di una volta ogni unità di periodicita, es perdiocità settimanale = al massimo 1 volta a settimana</param>
        /// <param name="intervalloVerificaMs">Se 0 non verrà scatenato l'evento "Esegui" in automatico ma si dovrà richiamare il metodo Eseguibile per sapere se si ha il permesso dello scheduler</param>
        public SchedulerM(Periodicity periodicCycle = null, HourlyPeriods hourlyPeriods = null, WeekDays weekDays               = null, MonthsAndDays monthsAndDays = null, YearWeeks yearWeeks = null,
                          YearDays yearDays         = null, WeekDay weekStartsDay = WeekDay.Monday, UInt32 intervalloVerificaMs = 0)
        {
            //Creo gli oggetti per far in modo che i vari dataGrid abbiano gli oggetti su cui fare il binding
            this.PeriodicCycle   = periodicCycle;
            this.HourlyPeriods   = hourlyPeriods;
            this.WeekDays        = weekDays;
            this.MonthsAndDays   = monthsAndDays;
            this.YearWeeks       = yearWeeks;
            this.YearDays        = yearDays;
            this.WeekStartsDay   = weekStartsDay;
            this.CheckIntervalMs = intervalloVerificaMs;

            this.lastTimeExec          = DateTime.MinValue;
            this.firmeUltimeEsecuzione = new List <Tuple <DateTime, String> >();

            tmrCheckIfExecutable.Elapsed += TmrCheckIfExecutable_Elapsed;
        }
コード例 #3
0
ファイル: SchedulerM.cs プロジェクト: NickHola/Backupper
        private bool?ExecHourlyPeriods(HourlyPeriods hourlyPeriods, DateTime dataAtt)
        {
            string tmp = "";

            return(ExecHourlyPeriods(hourlyPeriods, dataAtt, ref tmp));
        }