using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ComponentModel.DataAnnotations;
using r18.Models;

namespace r18.Infrastructure
{
    public class AppointmentValidatorAttribute : ValidationAttribute
    {

        public AppointmentValidatorAttribute()
        {
            ErrorMessage = "Jan nie może rezerwować w poniedziałki";
        }

        public override bool IsValid(object value)
        {

            Appointment app = value as Appointment;

            if (app == null || string.IsNullOrEmpty(app.ClientName) || app.Date == null)
            {
                // nie mamy modelu właściwego typu lub nie mamy 
                // wartości wymaganych właściwości ClientName oraz Date 
                return true;
            }
            else
            {
                return !(app.ClientName == "Jan" && app.Date.DayOfWeek == DayOfWeek.Monday);
            }
        }
    }
}