using System;

namespace Kreta.BusinessLogic.HelperClasses
{
    public class OrarendiOraValidationCo
    {
        public int? Id { get; set; }
        public DateTime OraErvenyessegKezdete { get; set; }
        public DateTime OraErvenyessegVege { get; set; }
        public int HetirendId { get; set; }
        public int? CsengetesiRendId { get; set; }
        public int CsengetesiRendOraId { get; set; }
        public int TeremId { get; set; }
        public int HetNapjaId { get; set; }
        public int? OsztalyId { get; set; }
        public int? TanarId { get; set; }
        public DateTime OraKezdete { get; set; }
        public DateTime OraVege { get; set; }
        public int? Oraszam { get; set; }
        public DateTime ModificationDate { get; set; }
        public Guid? KozpontiOraGroupId { get; set; }
        public Guid? KozpontilagToroltOraGroupId { get; set; }
        public bool IsModification { get; set; }
        public int ModositasiIdoszakTipus { get; set; }
        public string JSHelperNev { get; set; }
        public bool Torolt { get; set; }
        public bool IsEgyediNap { get; set; }
        public bool IsNapirend { get; set; }
        public int? TantargyId { get; set; }
        public bool Differencialt { get; set; }
        public bool Drama { get; set; }
        public int? FoglalkozasID { get; set; }
        public bool IKTTanora { get; set; }
        public bool IPRTanora { get; set; }
        public bool Kooperativ { get; set; }
        public bool Meres { get; set; }
        public bool MindennaposTestneveles { get; set; }
        public bool NemSzakrendszeruOra { get; set; }
        public bool NemzetisegiOra { get; set; }
        public bool IsFelnottoktatasiSzerzodes { get; set; }
        public bool OnlineOra { get; set; }
        public bool ParhuzamosOra { get; set; }
        public bool Sorszamozando { get; set; }
        public bool TAMOPOra { get; set; }
        public bool Tulora { get; set; }
        public bool Tiop { get; set; }
        public bool Bontott { get; set; }
        public bool KIPOra { get; set; }
        public bool VEKOP73317 { get; set; }
        public bool KAPOra { get; set; }
        public bool Multikulturalis { get; set; }
        public bool EFOP32317 { get; set; }
        public bool KomplexOra { get; set; }
        public bool GINOP623 { get; set; }
        public bool EFOP31716EselyteremtesAKoznevelesben { get; set; }
        public bool EFOP33717 { get; set; }
        public bool TIOP11112120120001 { get; set; }
        public bool DFHT { get; set; }
        public bool Rahangolodas { get; set; }
        public bool Testmozgas { get; set; }
        public bool Muveszet { get; set; }
        public bool Eletgyakorlat { get; set; }
        public bool Logika { get; set; }
        public bool TeOrad { get; set; }
        public bool DigitalisAlapProgram { get; set; }
        public bool HasTeremutkozes { get; set; }
        public int TeremutkozesSystemSetting { get; set; }
        public bool EFOP23517201700038Miapalya { get; set; }
        public bool TanevTananyaganakIsmetlese { get; set; }
        public bool TanevTananyaganakKiegeszitese { get; set; }
        public bool TanulokDigitalisKeszsegfejlesztese { get; set; }
        public bool Projektmunka { get; set; }
        public bool TanulokKompenzaciosIraskeszsegFejlesztese { get; set; }
        public bool TanulokKompenzaciosOlvasasiKepessegFejlesztese { get; set; }
        public bool TanulokMatematikaiGondolkodasiKepessegenekKompenzaciosFejlesztese { get; set; }
        public bool TanulokNyelviKepessegenekKompenzaciosFejlesztese { get; set; }
        public bool TanulokOnmegismeresenekSegitese { get; set; }
        public bool TanulokOnallosagraNevelese { get; set; }
        public bool TanulokTanulasszervezesiKompenzaciosTechnikajanakErositese { get; set; }
        public bool TanulokOrientaciosTamogatasa { get; set; }
        public bool TanulokSzocialitasanakFejlesztese { get; set; }
        public bool TanulokTovabbhaladasatElokeszitoTevekenysegek { get; set; }
        public bool PedagogusAltalJelzettEgyeniEsetkezeles { get; set; }
        public bool ProjektmunkaTamogatasa { get; set; }
        public bool DigitalisKeszsegfejlesztes { get; set; }
        public bool KozossegiMunkaTamogatasa { get; set; }
        public bool TanoraElokeszitesenekTamogatasa { get; set; }
        public bool TanoraLebonyolitasanakTamogatasa { get; set; }
        public bool NapkozisTevekenysegKeretebenEgyeniFejlesztes { get; set; }
        public int? GroupId { get; set; }
        public bool IsOraCopy { get; set; }
        public bool IsFromSzervezet { get; set; }
        public bool IsMentorOra { get; set; }
        public bool IsEgybefuggoGyakorlat { get; set; }

        public bool IsEqualTo(OrarendiOraValidationCo compareTo)
        {
            return (this.Id == compareTo.Id
                && this.Bontott == compareTo.Bontott
                && (this.CsengetesiRendId ?? 0) == (compareTo.CsengetesiRendId ?? 0)
                && this.CsengetesiRendOraId == compareTo.CsengetesiRendOraId
                && this.DFHT == compareTo.DFHT
                && this.Differencialt == compareTo.Differencialt
                && this.DigitalisAlapProgram == compareTo.DigitalisAlapProgram
                && this.Drama == compareTo.Drama
                && this.EFOP31716EselyteremtesAKoznevelesben == compareTo.EFOP31716EselyteremtesAKoznevelesben
                && this.EFOP32317 == compareTo.EFOP32317
                && this.EFOP33717 == compareTo.EFOP33717
                && this.Eletgyakorlat == compareTo.Eletgyakorlat
                && (this.FoglalkozasID ?? 0) == (compareTo.FoglalkozasID ?? 0)
                && this.GINOP623 == compareTo.GINOP623
                && this.HetNapjaId == compareTo.HetNapjaId
                && this.HetirendId == compareTo.HetirendId
                && this.IKTTanora == compareTo.IKTTanora
                && this.IPRTanora == compareTo.IPRTanora
                && this.IsEgyediNap == compareTo.IsEgyediNap
                && this.IsFelnottoktatasiSzerzodes == compareTo.IsFelnottoktatasiSzerzodes
                && this.OnlineOra == compareTo.OnlineOra
                && this.IsModification == compareTo.IsModification
                && this.IsNapirend == compareTo.IsNapirend
                && this.JSHelperNev == compareTo.JSHelperNev
                && this.KAPOra == compareTo.KAPOra
                && this.KIPOra == compareTo.KIPOra
                && this.KomplexOra == compareTo.KomplexOra
                && this.Kooperativ == compareTo.Kooperativ
                && this.Logika == compareTo.Logika
                && this.Meres == compareTo.Meres
                && this.MindennaposTestneveles == compareTo.MindennaposTestneveles
                && this.ModificationDate == compareTo.ModificationDate
                && this.ModositasiIdoszakTipus == compareTo.ModositasiIdoszakTipus
                && this.Multikulturalis == compareTo.Multikulturalis
                && this.Muveszet == compareTo.Muveszet
                && this.NemSzakrendszeruOra == compareTo.NemSzakrendszeruOra
                && this.NemzetisegiOra == compareTo.NemzetisegiOra
                && this.OraErvenyessegKezdete == compareTo.OraErvenyessegKezdete
                && this.OraErvenyessegVege == compareTo.OraErvenyessegVege
                && this.OraKezdete == compareTo.OraKezdete
                && this.OraVege == compareTo.OraVege
                && (this.Oraszam ?? 0) == (compareTo.Oraszam ?? 0)
                && (this.OsztalyId ?? 0) == (compareTo.OsztalyId ?? 0)
                && this.ParhuzamosOra == compareTo.ParhuzamosOra
                && this.Rahangolodas == compareTo.Rahangolodas
                && this.Sorszamozando == compareTo.Sorszamozando
                && this.TAMOPOra == compareTo.TAMOPOra
                && this.TIOP11112120120001 == compareTo.TIOP11112120120001
                && (this.TanarId ?? 0) == (compareTo.TanarId ?? 0)
                && (this.TantargyId ?? 0) == (compareTo.TantargyId ?? 0)
                && this.TeOrad == compareTo.TeOrad
                && this.TeremId == compareTo.TeremId
                && this.Testmozgas == compareTo.Testmozgas
                && this.Tiop == compareTo.Tiop
                && this.Tulora == compareTo.Tulora
                && this.VEKOP73317 == compareTo.VEKOP73317
                && this.EFOP23517201700038Miapalya == compareTo.EFOP23517201700038Miapalya
                && this.TanevTananyaganakIsmetlese == compareTo.TanevTananyaganakIsmetlese
                && this.TanevTananyaganakKiegeszitese == compareTo.TanevTananyaganakKiegeszitese
                && this.TanulokDigitalisKeszsegfejlesztese == compareTo.TanulokDigitalisKeszsegfejlesztese
                && this.Projektmunka == compareTo.Projektmunka
                && this.TanulokKompenzaciosIraskeszsegFejlesztese == compareTo.TanulokKompenzaciosIraskeszsegFejlesztese
                && this.TanulokKompenzaciosOlvasasiKepessegFejlesztese == compareTo.TanulokKompenzaciosOlvasasiKepessegFejlesztese
                && this.TanulokMatematikaiGondolkodasiKepessegenekKompenzaciosFejlesztese == compareTo.TanulokMatematikaiGondolkodasiKepessegenekKompenzaciosFejlesztese
                && this.TanulokNyelviKepessegenekKompenzaciosFejlesztese == compareTo.TanulokNyelviKepessegenekKompenzaciosFejlesztese
                && this.TanulokOnmegismeresenekSegitese == compareTo.TanulokOnmegismeresenekSegitese
                && this.TanulokOnallosagraNevelese == compareTo.TanulokOnallosagraNevelese
                && this.TanulokTanulasszervezesiKompenzaciosTechnikajanakErositese == compareTo.TanulokTanulasszervezesiKompenzaciosTechnikajanakErositese
                && this.TanulokOrientaciosTamogatasa == compareTo.TanulokOrientaciosTamogatasa
                && this.TanulokSzocialitasanakFejlesztese == compareTo.TanulokSzocialitasanakFejlesztese
                && this.TanulokTovabbhaladasatElokeszitoTevekenysegek == compareTo.TanulokTovabbhaladasatElokeszitoTevekenysegek
                && this.PedagogusAltalJelzettEgyeniEsetkezeles == compareTo.PedagogusAltalJelzettEgyeniEsetkezeles
                && this.ProjektmunkaTamogatasa == compareTo.ProjektmunkaTamogatasa
                && this.DigitalisKeszsegfejlesztes == compareTo.DigitalisKeszsegfejlesztes
                && this.KozossegiMunkaTamogatasa == compareTo.KozossegiMunkaTamogatasa
                && this.TanoraElokeszitesenekTamogatasa == compareTo.TanoraElokeszitesenekTamogatasa
                && this.TanoraLebonyolitasanakTamogatasa == compareTo.TanoraLebonyolitasanakTamogatasa
                && this.NapkozisTevekenysegKeretebenEgyeniFejlesztes == compareTo.NapkozisTevekenysegKeretebenEgyeniFejlesztes
                && this.IsOraCopy == compareTo.IsOraCopy
                && this.IsEgybefuggoGyakorlat == compareTo.IsEgybefuggoGyakorlat
            );
        }
    }
}