Нужен Атрибут для проверки ограничения даты - C#

Узнай цену своей работы

Формулировка задачи:

Всем привет. у меня такая ситуация. Есть форма где нужно вводить много чего и дату начала договора и дату окончания договора, но есть одно условия: дата начала договора не должна быть раньше чем 1 день назад и больше чем сегодня, дата окончания договора может быть любой, но не меньше чем дата начала. Нужен Атрибут для проверки, может кто то подобное делал уже, поделитесь, пожалуйста. Или дайте дельный совет как проще сделать. Я думаю должно быть что-то на подобие такого
[DateRange( date1, date2)]
public DateTime BeginContract {get;set;}
но как это сделать???

Решение задачи: «Нужен Атрибут для проверки ограничения даты»

textual
Листинг программы
    public class DataRangeAttribute : ValidationAttribute
    {
        public DateTime Begin { get; private set; }
        public DateTime End { get; private set; }
 
        public DataRangeAttribute(DateTime begin, DateTime end)
        {
            Begin = begin;
            End = end;
        }
 
        public DataRangeAttribute() : 
            this(DateTime.Now.Date.AddDays(-1), DateTime.Now.Date)
        {
 
        }
 
        public override bool IsValid(object value)
        {
            DateTime dateToValidate;
            bool tryParse = DateTime.TryParse(value.ToString(), out dateToValidate);
            return tryParse && dateToValidate > Begin && dateToValidate < End;
        }
 
        public override string FormatErrorMessage(string name)
        {
            return string.Format("В указанном поле {0} введена не правильная дата , введите дату в диапозоне {1} - {2}",
                                 name, Begin,
                                 End);
        }
    }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.75 из 5
Похожие ответы