Валидация дат на сервере

113
01 июня 2021, 12:20

Есть классы

public class MyDateValidationAttribute : ValidationAttribute
{
    public object DateToCompare { get; set; }
    public bool IsValueMore { get; set; }
    public override bool IsValid(object value)
    {
        var e = Convert.ToDateTime(DateToCompare);
        DateTime d = Convert.ToDateTime(value);
        return  (IsValueMore ? d >= e : d <= e); 
    }
}
[Serializable]
public class ViewModel
{
    [Display(ResourceType = typeof(AdminResource), Name = "Admin_Report_StartDate")]
    [ReportSummary(itemOrder: 1, format: ReportColumnFormat.Date)]
    [MyDateValidation(ErrorMessage ="Start date  can't be greater than end date", IsValueMore = false**, DateToCompare = End**]
    public DateTime? Start { get; set; }
    [Display(ResourceType = typeof(AdminResource), Name = "Admin_Report_EndDate")]
    [ReportSummary(itemOrder: 2, format: ReportColumnFormat.Date)]
    [MyDateValidation(ErrorMessage = "Start date  can't be greater than end date", IsValueMore = false, **DateToCompare = Start**))]
    public DateTime? End { get; set; }
}

Нужно валидировать End дата больше Start дата для корректной query в сервисе.

Сложность с передачей параметра DateToCompare в класс аттрибута, не знаю как это сделать. Ошибка следующая -

object reference is required for the non-static field attribute.

Прошу совета

READ ALSO
Изменение радиобаттон&#39;ов окна C#

Изменение радиобаттон'ов окна C#

День добрый, господаКак нибудь возможно программно обратиться к данному окну и поменять текущий радио баттон на нужный мне ?

106
Цикл Button.Enabled для нескольких значений ASP.NET

Цикл Button.Enabled для нескольких значений ASP.NET

Столкнулся с проблемой: мне нужно чтобы занятые места (созданные в виде кнопок), нельзя было выбратьТо есть переключить их значение Enabled в false

115
Запись в ветку реестра Local Machine через C#

Запись в ветку реестра Local Machine через C#

Не проходит запись в реестр по пути:

106
Оператор as в C#

Оператор as в C#

Объясните пожалуйста оператор as в c#Учил C++ и с него перешёл на C# для изучения Unity

87