ASP.NET ограничение диапазона дат / проверка - PullRequest
0 голосов
/ 08 февраля 2019

Если у меня есть модель, которая отслеживает запросы сотрудников на праздничные дни, как бы мне обеспечить, чтобы сотрудник не брал несколько выходных в течение одного и того же диапазона дат?Будет ли это обрабатываться с проверкой или созданием ограничения в SQL Server?Сначала я использовал базу данных для этого проекта.

 public partial class HolidayRequestForm
{
    public int RequestID { get; set; }
    public int EmployeeID { get; set; }

    [DisplayFormat(DataFormatString = "{0:dd/MM/yy}", ApplyFormatInEditMode = true)]
    public System.DateTime StartDate { get; set; }

      [DisplayFormat(DataFormatString = "{0:dd/MM/yy}", ApplyFormatInEditMode = true)]
    public System.DateTime FinishDate { get; set; }

    [Range(0.0001, int.MaxValue, ErrorMessage = "Hours Requested must be greater than zero. ")]
    public decimal HoursTaken { get; set; }
    public string Comments { get; set; }
    public int YearCreated { get; set; }
    public int MonthCreated { get; set; }
    public int DayCreated { get; set; }
    public Nullable<int> YearOfHoliday { get; set; }


    [UIHint("Boolean.cshtml")]
    public Nullable<bool> Approved { get; set; }
    public string SubmittedBy { get; set; }
    public string ApprovedBy { get; set; }

    public virtual Employee Employee { get; set; }
}

В идеале я хотел бы, чтобы два сотрудника могли запросить один и тот же диапазон дат, но один сотрудник не может запросить два выходных в одном и том же диапазоне дат.Могу ли я использовать пользовательский атрибут проверки, может быть ??

1 Ответ

0 голосов
/ 08 февраля 2019

Данный сценарий является бизнес-логикой, поэтому лучше реализовать это в самом коде, а не в ограничениях или триггерах базы данных.

Вы можете создать для нее пользовательский validator и выполнить проверку на бизнес-уровне.Этот подход будет легко обслуживаемым / обновляемым.

Используйте обычный метод проверки или создайте пользовательский атрибут ValidationAttribute, унаследовав ValidationAttribute и переопределив метод IsValid.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...