using System;
using System.ComponentModel.DataAnnotations;
using Kreta.BusinessLogic.HelperClasses;
using Kreta.BusinessLogic.Interfaces;
using Kreta.Core.CustomAttributes;
using Kreta.Resources;

namespace Kreta.Web.Areas.Orarend.Models
{
    public class NemNaplozottTanorakGridModel : IKretaIdentity
    {
        #region Fields

        public const string NemNaplozottTanorakExportAttributeId = nameof(NemNaplozottTanorakExportAttributeId);

        #endregion

        public NemNaplozottTanorakGridModel()
        {

        }

        public NemNaplozottTanorakGridModel(OrarendiOraCO orarendiOraCO)
        {
            ID = orarendiOraCO.ID.ToString();
            OraKezdeteDate = orarendiOraCO.OraKezdete;
            OraKezdeteTimeText = orarendiOraCO.OraKezdeteTimeText;
            Oraszam = orarendiOraCO.Oraszam;
            TanarNev = orarendiOraCO.TanarNev;
            OsztalyNev = orarendiOraCO.OsztalyCsoportNev;
            TargyNev = orarendiOraCO.TantargyNev;
            HetNapjaValos = orarendiOraCO.HetNapjaValos;
            HetNapjaValos_DNAME = orarendiOraCO.HetNapjaValosNev;
            HelyettesitoTanarNev = orarendiOraCO.HelyettesitoTanarNev;
        }

        public string ID { get; set; }

        public int? HelyettesitoTanarID { get; set; }

        [Display(Name = nameof(OrarendResource.HelyettesitoTanar), ResourceType = typeof(OrarendResource))]
        [SimpleExportColumn(NemNaplozottTanorakExportAttributeId, 07, nameof(OrarendResource.HelyettesitoTanar), typeof(OrarendResource))]
        public string HelyettesitoTanarNev { get; set; }

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

        [Display(Name = nameof(OrarendResource.Datum), ResourceType = typeof(OrarendResource))]
        [SimpleExportColumn(NemNaplozottTanorakExportAttributeId, 00, nameof(OrarendResource.Datum), typeof(OrarendResource))]
        public DateTime OraKezdeteDate { get; set; }

        [Display(Name = nameof(OrarendResource.OraKezdete), ResourceType = typeof(OrarendResource))]
        public DateTime OraKezdete { get; set; }

        [Display(Name = nameof(OrarendResource.OraKezdete), ResourceType = typeof(OrarendResource))]
        [SimpleExportColumn(NemNaplozottTanorakExportAttributeId, 03, nameof(OrarendResource.OraKezdete), typeof(OrarendResource))]
        public string OraKezdeteTimeText { get; set; }

        [Display(Name = nameof(OrarendResource.OraDatuma), ResourceType = typeof(OrarendResource))]
        public DateTime OraVege { get; set; }

        [Display(Name = nameof(OrarendResource.HetNapja), ResourceType = typeof(OrarendResource))]
        public string HetNapja_DNAME { get; set; }

        [Display(Name = nameof(OrarendResource.HetNapja), ResourceType = typeof(OrarendResource))]
        public int? HetNapja { get; set; }

        [Display(Name = nameof(OrarendResource.Oraszam), ResourceType = typeof(OrarendResource))]
        [SimpleExportColumn(NemNaplozottTanorakExportAttributeId, 02, nameof(OrarendResource.Oraszam), typeof(OrarendResource))]
        public int? Oraszam { get; set; }

        [Display(Name = nameof(OrarendResource.Tanar), ResourceType = typeof(OrarendResource))]
        [SimpleExportColumn(NemNaplozottTanorakExportAttributeId, 06, nameof(OrarendResource.Tanar), typeof(OrarendResource))]
        public string TanarNev { get; set; }

        [Display(Name = nameof(OrarendResource.OsztalyCsoport), ResourceType = typeof(OrarendResource))]
        [SimpleExportColumn(NemNaplozottTanorakExportAttributeId, 04, nameof(OrarendResource.OsztalyCsoport), typeof(OrarendResource))]
        public string OsztalyNev { get; set; }

        [Display(Name = nameof(OrarendResource.Tantargy), ResourceType = typeof(OrarendResource))]
        [SimpleExportColumn(NemNaplozottTanorakExportAttributeId, 05, nameof(OrarendResource.Tantargy), typeof(OrarendResource))]
        public string TargyNev { get; set; }

        [Display(Name = nameof(OrarendResource.HetNapja), ResourceType = typeof(OrarendResource))]
        public int? HetNapjaValos { get; set; }

        [Display(Name = nameof(OrarendResource.HetNapja), ResourceType = typeof(OrarendResource))]
        [SimpleExportColumn(NemNaplozottTanorakExportAttributeId, 01, nameof(OrarendResource.HetNapja), typeof(OrarendResource))]
        public string HetNapjaValos_DNAME { get; set; }
    }
}