public override void AddNewProvider(DateTimeMaskFormatElementEditable editableFormat)
        {
            if (!ShowTime() && IsTimeProvider(editableFormat))
            {
                return;
            }

            IItemsProvider provider = CreateNewFarsiProvider(editableFormat);

            if (provider != null)
            {
                if (ShouldInsertProvider(provider))
                {
                    Providers.Insert(firstTimeProviderIndex, provider);
                }
                else
                {
                    Providers.Add(provider);
                }

                if (IsTimeProvider(editableFormat))
                {
                    if (firstTimeProviderIndex == -1)
                    {
                        firstTimeProviderIndex = Providers.Count - 1;
                    }
                    IsTimeProviderAdded = true;
                }

                TotalProviders += 1;
            }
        }
        public override void AddNewProvider(DateTimeMaskFormatElementEditable editableFormat)
        {
            if (!ShowTime() && IsTimeProvider(editableFormat))
                return;

            IItemsProvider provider = CreateNewFarsiProvider(editableFormat);
            if (provider != null)
            {
                if (ShouldInsertProvider(provider))
                    Providers.Insert(firstTimeProviderIndex, provider);
                else Providers.Add(provider);

                if (IsTimeProvider(editableFormat))
                {
                    if (firstTimeProviderIndex == -1) firstTimeProviderIndex = Providers.Count - 1;
                    IsTimeProviderAdded = true;
                }

                TotalProviders += 1;
            }
        }
 protected IItemsProvider CreateNewFarsiProvider(DateTimeMaskFormatElementEditable editableFormat)
 {
     if (editableFormat is DateTimeMaskFormatElement_h12)
     {
         FAHoursItemsProvider hoursItemsProvider = new FAHoursItemsProvider(12);
         hoursItemsProvider.StartIndex = 1;
         return(hoursItemsProvider);
     }
     if (editableFormat is DateTimeMaskFormatElement_H24)
     {
         return(new FAHoursItemsProvider(24));
     }
     if (editableFormat is DateTimeMaskFormatElement_d)
     {
         return(new FADaysItemsProvider(31));
     }
     if (editableFormat is DateTimeMaskFormatElement_Min)
     {
         return(new FAMinsItemsProvider(60 / GetMinuteIncrement()));
     }
     if (editableFormat is DateTimeMaskFormatElement_Month)
     {
         return(new FAMonthItemsProvider(12));
     }
     if (editableFormat is DateTimeMaskFormatElement_s)
     {
         return(new FASecondsItemsProvider(60 / GetSecondIncrement()));
     }
     if (editableFormat is DateTimeMaskFormatElement_Year)
     {
         return(new FAYearItemsProvider(9999));
     }
     if (editableFormat is DateTimeMaskFormatElement_AmPm)
     {
         return(new FAMeridiemItemsProvider(2));
     }
     return(null);
 }
 protected IItemsProvider CreateNewFarsiProvider(DateTimeMaskFormatElementEditable editableFormat)
 {
     if (editableFormat is DateTimeMaskFormatElement_h12)
     {
         FAHoursItemsProvider hoursItemsProvider = new FAHoursItemsProvider(12);
         hoursItemsProvider.StartIndex = 1;
         return hoursItemsProvider;
     }
     if (editableFormat is DateTimeMaskFormatElement_H24)
         return new FAHoursItemsProvider(24);
     if (editableFormat is DateTimeMaskFormatElement_d)
         return new FADaysItemsProvider(31);
     if (editableFormat is DateTimeMaskFormatElement_Min)
         return new FAMinsItemsProvider(60 / GetMinuteIncrement());
     if (editableFormat is DateTimeMaskFormatElement_Month)
         return new FAMonthItemsProvider(12);
     if (editableFormat is DateTimeMaskFormatElement_s)
         return new FASecondsItemsProvider(60 / GetSecondIncrement());
     if (editableFormat is DateTimeMaskFormatElement_Year)
         return new FAYearItemsProvider(9999);
     if (editableFormat is DateTimeMaskFormatElement_AmPm)
         return new FAMeridiemItemsProvider(2);
     return null;
 }