using System;
using System.ComponentModel.DataAnnotations;
using Kreta.BusinessLogic.Interfaces;
using Kreta.Resources;

namespace Kreta.Web.Areas.GRModul.Models
{
    public class ProjektGridModel : IKretaIdentity
    {
        public string ID { get; set; }
        public bool IsVisszautasitott { get; set; }
        public bool IsJelentkezett { get; set; }
        public bool IsElfogadott { get; set; }
        public bool IsJelentkezheto
        {
            get
            {
                return ((HataridoKezdet.HasValue && HataridoVeg.HasValue && HataridoKezdet <= DateTime.Now.Date && HataridoVeg >= DateTime.Now.Date)
                    || (HataridoKezdet.HasValue && !HataridoVeg.HasValue && HataridoKezdet <= DateTime.Now.Date)
                    || (!HataridoKezdet.HasValue && !HataridoVeg.HasValue)
                    || (!HataridoKezdet.HasValue && HataridoVeg.HasValue && HataridoVeg >= DateTime.Now.Date)) && !IsJelentkezett && !IsVisszautasitott && !IsElfogadott;
            }
        }

        [Display(Name = nameof(GRModulResource.ProjektAzonosito), ResourceType = typeof(GRModulResource))]
        public string ProjektAzonosito { get; set; }

        [Display(Name = nameof(GRModulResource.ProjektNeve), ResourceType = typeof(GRModulResource))]
        public string ProjektNeve { get; set; }

        [Display(Name = nameof(GRModulResource.ProjektKezdete), ResourceType = typeof(GRModulResource))]
        public DateTime? ProjektKezdete { get; set; }

        [Display(Name = nameof(GRModulResource.ProjektVege), ResourceType = typeof(GRModulResource))]
        public DateTime? ProjektVege { get; set; }

        [Display(Name = nameof(GRModulResource.TSZTOMegkotesDatum), ResourceType = typeof(GRModulResource))]
        public DateTime? TSZTOMegkotesDatum { get; set; }

        [Display(Name = nameof(GRModulResource.JelentkezesiHataridoKezdete), ResourceType = typeof(GRModulResource))]
        public DateTime? HataridoKezdet { get; set; }

        [Display(Name = nameof(GRModulResource.JelentkezesiHataridoVege), ResourceType = typeof(GRModulResource))]
        public DateTime? HataridoVeg { get; set; }
    }
}