Exemplo n.º 1
0
        private void Exclude(VersionInfoSearchCriteria crit,catTypes cator)
        {
            switch(cator)
            {
                case catTypes.DayOW:
                    foreach (DayOfWeek day in Enum.GetValues(typeof(DayOfWeek)))
                    {
                        if (crit.DaysOfWeek.Contains(day) == false)
                        {
                            crit.AddDayOfWeek(day, true);
                        }
                    }
                break;

                case catTypes.Month:
                    for (int i = 1; i <= 12; i++)
                    {
                        if (crit.Months.Contains(i) == false)
                        {
                            crit.AddMonth(i, true);
                        }
                    }
                break;

                case catTypes.DayOM:
                    for (int i = 1; i <= 31; i++)
                    {
                        if (crit.DaysOfMonth.Contains(i) == false)
                        {
                            crit.AddDaysOfMonth(i, true);
                        }
                    }
                break;

                case catTypes.Hour:
                    for (int i = 0; i < 24; i++)
                    {
                        if (crit.Hours.Contains(i) == false)
                        {
                            crit.AddHours(i, true);
                        }
                    }
                break;

                case catTypes.Minute:
                    for (int i = 0; i < 60; i++)
                    {
                        if (crit.Minutes.Contains(i) == false)
                        {
                            crit.AddMinutes(i, true);
                        }
                    }
                break;

                case catTypes.Year:
                    foreach (int y in YearsList)
                    {
                        if (crit.Years.Contains(y) == false)
                        {
                            crit.AddYears(y, true);
                        }
                    }
                    break;

            }
        }
Exemplo n.º 2
0
        public VersionInfoSearchCriteria ProcessString(string text)
        {
            if (timer != null)
            {
                timer.Change(Timeout.Infinite, Timeout.Infinite);
                timer = null;
            }
            crit = new VersionInfoSearchCriteria();

            bool changed = false;

              string fixe = addIndicaToText(text);

            string[] tokens = fixe.Split(' ');
            int number;
            DayOfWeek dayOfweek;
            int []hour;
            int minute;
            bool last;
            string te;
            string tok;
            RollingInfo rollIn;
            for(int i = 0 ; i < tokens.Length; i++)
            {
                tok = tokens[i];

                if (isDayOfMonth(tok, out number))
                {
                //    if (CaledTypes.Contains(catTypes.DayOM) == false)
               //     {
               //         CaledTypes.Add(catTypes.DayOM);
                        Exclude(crit, catTypes.DayOM);
               //     }
                    crit.RemoveDaysOfMonth(number);
                    crit.AddDaysOfMonth(number,false);
                    changed = true;
                    continue;
                }

                if (isDayOfWeek(tok, out dayOfweek))
                {
                //    if (CaledTypes.Contains(catTypes.DayOW) == false)
                //    {
                //        CaledTypes.Add(catTypes.DayOW);
                        Exclude(crit, catTypes.DayOW);
                //    }
                    crit.RemoveDayOfWeek(dayOfweek);
                    crit.AddDayOfWeek(dayOfweek,false);
                    changed = true;
                    continue;
                }

                if (isMonth(tok, out number))
                {
              //          if (CaledTypes.Contains(catTypes.Month) == false)
            //        {
               //             CaledTypes.Add(catTypes.Month);
                        Exclude(crit, catTypes.Month);
               //         }
                    crit.RemoveMonth(number);
                    crit.AddMonth(number,false);
                    changed = true;
                    continue;
                }

                if (isTime(tok, out hour, out minute))
                {
                    if (tokens.Length > i + 1 && isTimeAMPM(tokens[i + 1]))
                    {
                        if (tokens[i + 1].Equals("am"))
                        {
                            foreach (int h in hour)
                            {
                                if (h < 12)
                                {
                               //     if (CaledTypes.Contains(catTypes.Hour) == false)
                                //    {
                                //        CaledTypes.Add(catTypes.Hour);
                                        Exclude(crit, catTypes.Hour);
                               //     }
                                    crit.RemoveHours(h);
                                    crit.AddHours(h, false);
                                    changed = true;
                                }
                            }
                        }
                        else
                        {
                            foreach (int h in hour)
                            {
                                if (h >= 12)
                                {
                              //      if (CaledTypes.Contains(catTypes.Hour) == false)
                              //      {
                               //         CaledTypes.Add(catTypes.Hour);
                                        Exclude(crit, catTypes.Hour);
                             //       }
                                    crit.RemoveHours(h);
                                    crit.AddHours(h, false);
                                    changed = true;
                                }
                            }
                        }

                    }
                    else
                    {
                        foreach (int h in hour)
                        {
                            if (h > -1 && h < 24)
                            {
                        //        if (CaledTypes.Contains(catTypes.Hour) == false)
                        //        {
                        //            CaledTypes.Add(catTypes.Hour);
                                    Exclude(crit, catTypes.Hour);
                         //       }
                                crit.RemoveHours(h);
                                crit.AddHours(h, false);
                                changed = true;
                            }
                        }
                    }

                    if (minute > 0)
                    {
                   //     if (CaledTypes.Contains(catTypes.Minute) == false)
                  //      {
                    //        CaledTypes.Add(catTypes.Minute);
                            Exclude(crit, catTypes.Minute);
                //        }
                        crit.RemoveMinutes(minute);
                        crit.AddMinutes(minute, false);
                        changed = true;
                    }
                    continue;
                }

                if (isRolling(tok, out rollIn))
                {

                        int dueTime = 60 - DateTime.Now.Second;
                        if (dueTime == 60)
                        {
                            dueTime = 0;
                        }
                        else
                        {
                            handleRolling(rollIn);
                        }
                        timer = new Timer(handleRolling, rollIn, dueTime * 1000, 60000);

                }
            }
            if (changed)
            {
                return crit;
            }
            else
            {
                return null;
            }
        }