Пример #1
0
        internal void FilterDatePickerItem(AyDatePickerItem item)
        {
            if (firstInitMinMax)
            {
                var _1 = AyCalendarService.FilterDatePickerItem(DateRuleObjects, MinDateReferToElement, MaxDateReferToElement);
                MinDateCopy     = _1.Item1;
                MaxDateCopy     = _1.Item2;
                firstInitMinMax = false;
            }
            if (item.IsNotNull())
            {
                if (MinDateCopy.Count > 0)
                {
                    foreach (var subitem in MinDateCopy)
                    {
                        if (subitem.HasValue && item.Date < subitem.Value.Date)
                        {
                            item.IsEnabled = false;
                            break;
                        }
                    }
                }
                if (MaxDateCopy.Count > 0)
                {
                    foreach (var subitem in MaxDateCopy)
                    {
                        if (subitem.HasValue && item.Date > subitem.Value.Date)
                        {
                            item.IsEnabled = false;
                            break;
                        }
                    }
                }

                //周几限制
                if (DateRuleObjects.IsNotNull())
                {
                    if (DateRuleObjects.disabledDays.IsNotNull() && DateRuleObjects.disabledDays.Count > 0)
                    {
                        var _1 = item.Date.DayOfWeek.GetHashCode();
                        foreach (var disabledDay in DateRuleObjects.disabledDays)
                        {
                            if (_1 == disabledDay)
                            {
                                item.IsEnabled = false;
                                break;
                            }
                        }
                    }

                    //限制disabledDate
                    var _validateItemResult = AyCalendarService.ValidateRegexDate(item.Date, this.DisabledDatesStrings, DateRuleObjects.opposite);
                    if (!_validateItemResult)
                    {
                        item.IsEnabled = false;
                    }


                    //高亮日和高亮日期
                    if (DateRuleObjects.specialDays.IsNotNull() && DateRuleObjects.specialDays.Count > 0)
                    {
                        var _1 = item.Date.DayOfWeek.GetHashCode();
                        foreach (var specialDay in DateRuleObjects.specialDays)
                        {
                            if (_1 == specialDay)
                            {
                                item.IsHighlight = true;
                                break;
                            }
                        }
                    }

                    if (SpecialDatesStrings.IsNotNull() && SpecialDatesStrings.Count > 0)
                    {
                        foreach (var SpecialDates in SpecialDatesStrings)
                        {
                            bool vaResult = false;
                            if (SpecialDates.IndexOf(":") > -1)
                            {
                                string[] _01 = item.Date.ToString("yyyy-MM-dd HH:mm:ss").Split(' ');
                                string[] _02 = SpecialDates.Split(' ');
                                vaResult = System.Text.RegularExpressions.Regex.IsMatch(_01[0] + " " + _02[1], SpecialDates);
                            }
                            else
                            {
                                vaResult = System.Text.RegularExpressions.Regex.IsMatch(item.Date.ToString("yyyy-MM-dd"), SpecialDates);
                            }
                            if (vaResult)
                            {
                                item.IsHighlight = true;
                                break;
                            }
                        }
                    }
                }
            }
        }