Esempio n. 1
0
 public static bool IsRRuleWeekOnDay(TickRRule rule)
 {
     IList<IWeekDay> nums = rule.GetByDay();
     if (nums == null || nums.Count <= 0)
     {
         return false;
     }
     IList<int> byMonthDay = rule.GetByMonthDay();
     return byMonthDay == null || byMonthDay.Count == 0;
 }
 public int GetRepeatSelectedValue()
 {
     int checkPosition = 0;
     var repeatFlag = Tasks.RepeatFlag;
     if (string.IsNullOrEmpty(repeatFlag))
     {
         return checkPosition;
     }
     TickRRule rRule = new TickRRule(repeatFlag);
     var freq = rRule.GetFreq();
     switch (freq)
     {
         case FrequencyType.Daily:
             checkPosition = Constants.Repeats.REPEATS_DAILY;
             break;
         //case FrequencyType.Hourly:
         //    checkPosition = Constants.Repeats.REPEATS_DAILY;
         //    break;
         //case FrequencyType.Minutely:
         //    checkPosition = Constants.Repeats.REPEATS_DAILY;
         //    break;
         case FrequencyType.Monthly:
             bool onByWeekDay = DateTimeUtils.IsRRuleWeekOnDay(rRule);
             if (rRule.GetByMonthDay().Count > 0)
             {
                 return checkPosition;
             }
             checkPosition = onByWeekDay ? Constants.Repeats.REPEATS_MONTHLY_ON_DAY_COUNT :
                     Constants.Repeats.REPEATS_MONTHLY_ON_DAY;
             break;
         //case FrequencyType.None:
         //    checkPosition = Constants.Repeats.REPEATS_DAILY;
         //    break;
         //case FrequencyType.Secondly:
         //    checkPosition = Constants.Repeats.REPEATS_DAILY;
         //    break;
         case FrequencyType.Weekly:
             IList<IWeekDay> weekdayNums = rRule.GetByDay();
             bool isWeekDays = DateTimeUtils.IsRRuleWeekdays(weekdayNums);
             if (isWeekDays)
             {
                 checkPosition = Constants.Repeats.REPEATS_EVERY_WEEKDAY;
             }
             else if (weekdayNums.Count <= 1)
             {
                 checkPosition = Constants.Repeats.REPEATS_WEEKLY_ON_DAY;
             }
             break;
         case FrequencyType.Yearly:
             if (rRule.IsLunarFrequency())
             {
                 // TODO 暂时不实现
                 //if (isChinese)
                 //{
                 //    checkPosition = 7;
                 //}
             }
             else
             {
                 checkPosition = 6;
             }
             break;
         default:
             break;
     }
     return checkPosition;
 }