using System; using System.Collections.Generic; using System.Linq; using Kreta.DataAccess.Interfaces; using Kreta.Framework; using Kreta.Framework.Actions; using Kreta.Framework.Collections; using Kreta.Framework.Collections.Generic; using Kreta.Framework.Entities; using Kreta.Framework.Entities.Generic; using Kreta.Framework.Exceptions; namespace SDA.Kreta.Entities { /// /// Az UML modell Foglalkozas entitásának megvalósítása. /// /// A kód teljes egészében generált, kézi módosítása nem megengedett! [Entity("Foglalkozas")] // alapértelmezett EntityHistoryMode public class Foglalkozas : Entity, IFoglalkozas { internal protected Foglalkozas() : base() { } public class AttributeInfo { public const string FoglalkozasTipusa = "FoglalkozasTipusa"; public const string Oraszam = "Oraszam"; public const string Nev = "Nev"; public const string ErtekelesKell = "ErtekelesKell"; public const string MulasztasKell = "MulasztasKell"; public const string TanarFelveheti = "TanarFelveheti"; public const string Importalt = "Importalt"; public const string IsOsszevontOra = "IsOsszevontOra"; public const string IsNemzetisegi = "IsNemzetisegi"; public const string TuloraSzam = "TuloraSzam"; public const string MegbizasiOraszam = "MegbizasiOraszam"; } public class AttributeLengthInfo { public const int NevLength = 771; } #region General private FoglalkozasDA m_DA = new FoglalkozasDA(); protected static Foglalkozas FakeFoglalkozas { get; set; } public static Foglalkozas GiveAnInstance() { Foglalkozas result = FakeFoglalkozas == null ? new Foglalkozas() : (Foglalkozas)FakeFoglalkozas.MemberwiseClone(); result.Reset(); result.SetDefaultData(); return result; } protected void SetDefaultData() { if (UserContext.Instance != null) { if (UserContext.Instance.IntezmenyId > 0) { IntezmenyId = UserContext.Instance.IntezmenyId; } if (UserContext.Instance.AktivTanevId > 0) { TanevId = UserContext.Instance.AktivTanevId; } m_State = EntityState.Uninitialized; } } protected override IEntityDataAccessor GetDataAccessor() { return m_DA; } protected internal virtual IEntityDataAccessor InheritedDA { get { return null; } } [Obsolete("Ezt ne használjátok, mert mindenhova bele kellene fogalmazni a tanév szűrést is! Meg fog majd szűnni!")] public static IEntityCollection LoadAll() { return LoadWithFilter(""); } [Obsolete("Ezt ne használjátok, mert mindenhova bele kellene fogalmazni a tanév szűrést is! Meg fog majd szűnni!")] public static IEntityCollection LoadAll(ColumnFilterMode columnFilterMode, IEnumerable columns) { return LoadWithFilter("", columnFilterMode, columns); } [Obsolete("Ezt ne használjátok, mert mindenhova bele kellene fogalmazni a tanév szűrést is! Meg fog majd szűnni!")] public static IEntityCollection LoadWithFilter(string filter, Dictionary commandParameters = null) { var result = new EntityCollection(); new FoglalkozasDA().LoadWithFilter(result, filter, commandParameters); return result; } [Obsolete("Ezt ne használjátok, mert mindenhova bele kellene fogalmazni a tanév szűrést is! Meg fog majd szűnni!")] public static IEntityCollection LoadWithFilter(string filter, ColumnFilterMode columnFilterMode, IEnumerable columns, Dictionary commandParameters = null) { var result = new EntityCollection(); new FoglalkozasDA().LoadWithFilter(result, filter, columnFilterMode, columns, commandParameters); return result; } protected override void StoreOriginalValues() { base.StoreOriginalValues(); OriginalValues.Add("FoglalkozasTipusa", (object)m_FoglalkozasTipusa); OriginalValues.Add("Oraszam", (object)m_Oraszam); OriginalValues.Add("Nev", (Nev == null ? (object)DBNull.Value : (object)m_Nev)); OriginalValues.Add("ErtekelesKell", (ErtekelesKell == null ? (object)DBNull.Value : (object)m_ErtekelesKell)); OriginalValues.Add("MulasztasKell", (MulasztasKell == null ? (object)DBNull.Value : (object)m_MulasztasKell)); OriginalValues.Add("TanarFelveheti", (TanarFelveheti == null ? (object)DBNull.Value : (object)m_TanarFelveheti)); OriginalValues.Add("Importalt", (object)m_Importalt); OriginalValues.Add("IsOsszevontOra", (object)m_IsOsszevontOra); OriginalValues.Add("IsNemzetisegi", (object)m_IsNemzetisegi); OriginalValues.Add("TuloraSzam", (object)m_TuloraSzam); OriginalValues.Add("MegbizasiOraszam", (object)m_MegbizasiOraszam); OriginalValues.Add("TantargyId", (m_TantargyId < 0 ? (object)DBNull.Value : (object)m_TantargyId)); OriginalValues.Add("OsztalyCsoportId", (m_OsztalyCsoportId < 0 ? (object)DBNull.Value : (object)m_OsztalyCsoportId)); OriginalValues.Add("TanarId", (m_TanarId < 0 ? (object)DBNull.Value : (object)m_TanarId)); OriginalValues.Add("IntezmenyId", (m_IntezmenyId < 0 ? (object)DBNull.Value : (object)m_IntezmenyId)); OriginalValues.Add("TanevId", (m_TanevId < 0 ? (object)DBNull.Value : (object)m_TanevId)); } #endregion #region Ellenőrzés protected override void Validate(bool skipValidateAttributes = false) { base.Validate(); if (!skipValidateAttributes) { // korlátos hosszúságú mezők ellenőrzése... if (m_Nev != null && m_Nev.Length > 771) { throw new InvalidEntityAttributeException("Foglalkozas", "Nev", EntityAttributeError.TooLong); } } // kötelező asszociációk ellenőrzése... if (m_TanarId == -1) { throw new InvalidEntityAttributeException("Foglalkozas", "TanarId", EntityAttributeError.Empty); } if (m_IntezmenyId == -1) { throw new InvalidEntityAttributeException("Foglalkozas", "IntezmenyId", EntityAttributeError.Empty); } if (m_TanevId == -1) { throw new InvalidEntityAttributeException("Foglalkozas", "TanevId", EntityAttributeError.Empty); } } #endregion #region Alaphelyzetbe állítás protected override void Reset() { base.Reset(); // alaphelyzetbe állítjuk az egyszerű mezőket this.m_FoglalkozasTipusa = -1; this.m_Oraszam = 0; this.m_Nev = null; this.m_ErtekelesKell = null; this.m_MulasztasKell = null; this.m_TanarFelveheti = null; this.m_Importalt = false; this.m_IsOsszevontOra = false; this.m_IsNemzetisegi = false; this.m_TuloraSzam = 0; this.m_MegbizasiOraszam = 0; // alaphelyzetbe állítjuk az asszociációkból származó mezőket this.m_TantargyId = -1; this.m_Tantargy = null; // Entity this.m_OsztalyCsoportId = -1; this.m_OsztalyCsoport = null; // Entity this.m_TanarId = -1; this.m_Tanar = null; // Entity this.m_OrarendiOra = null; // EntityCollection this.m_TanitasiOra = null; // EntityCollection this.m_FoglalkozasAmiTanulo = null; // EntityCollection this.m_IntezmenyId = -1; this.m_Intezmeny = null; // Entity this.m_TanevId = -1; this.m_Tanev = null; // Entity } #endregion protected override void DeAssociateBeforeDelete(bool runHandler = false) { // Nem kaszkád törölhető asszociációk ellenőrzése, hogy üresek-e... // Tantargy esetében mi mutatunk a másikra: startrole: *, endrole: 0..1 // OsztalyCsoport esetében mi mutatunk a másikra: startrole: *, endrole: 0..1 // Tanar esetében mi mutatunk a másikra: startrole: *, endrole: 1 if (this.OrarendiOra.Count > 0) { throw new EntityDeleteFailedException("Foglalkozas", "OrarendiOra", EntityUtil.GetAssociationDescription("T_ORARENDIORA_OSSZES", "C_FOGLALKOZASID")); // nincs kapcsolotabla } if (this.TanitasiOra.Count > 0) { throw new EntityDeleteFailedException("Foglalkozas", "TanitasiOra", EntityUtil.GetAssociationDescription("T_TANITASIORA_OSSZES", "C_FOGLALKOZASID")); // nincs kapcsolotabla } if (this.FoglalkozasAmiTanulo.Count > 0) { throw new EntityDeleteFailedException("Foglalkozas", "FoglalkozasAmiTanulo", EntityUtil.GetAssociationDescription("T_FOGLALKOZASAMITANULO_OSSZES", "C_FOGLALKOZASID")); // nincs kapcsolotabla } // Intezmeny esetében mi mutatunk a másikra: startrole: *, endrole: 1 // Tanev esetében mi mutatunk a másikra: startrole: *, endrole: 1 // kaszkád törlések... } #region Mezők és tulajdonságok #region Egyszerű mezők #region FoglalkozasTipusa protected internal int /* DictionaryItem */ m_FoglalkozasTipusa; /// /// A foglalkozás típusának ID-ja (tanóra, napközi, szakkör stb...)  /// [EntityProperty("FoglalkozasTipusa", EntityPropertyBaseType.ValueType, typeof(int /* DictionaryItem */), EntityCopyMethod.ShallowCopy)] [EntityDictionaryItemProperty("FoglalkozasTipusa", "FoglalkozasTipus", typeof(SDA.Kreta.Entities.FoglalkozasTipus))] public virtual int /* DictionaryItem */ FoglalkozasTipusa { get { return m_FoglalkozasTipusa; } set { CheckModifyable(); if (m_FoglalkozasTipusa == value) return; m_FoglalkozasTipusa = value; FieldModified("FoglalkozasTipusa", value); } } #endregion #region Oraszam protected internal double m_Oraszam; /// /// Heti óraszám  /// [EntityProperty("Oraszam", EntityPropertyBaseType.ValueType, typeof(double), EntityCopyMethod.ShallowCopy)] public virtual double Oraszam { get { return m_Oraszam; } set { CheckModifyable(); if (m_Oraszam == value) return; m_Oraszam = value; FieldModified("Oraszam", value); } } #endregion #region Nev protected internal string m_Nev; /// /// Foglalkozás neve (általában a tanár, tantárgy és csoport nevébol van összerakva)  /// [EntityProperty("Nev", EntityPropertyBaseType.ValueType, typeof(string), EntityCopyMethod.ShallowCopy)] public virtual string Nev { get { return m_Nev; } set { CheckModifyable(); if (m_Nev == value) return; m_Nev = value; FieldModified("Nev", value); } } #endregion #region ErtekelesKell protected internal bool? m_ErtekelesKell; /// /// NINCS HASZNÁLVA /// [EntityProperty("ErtekelesKell", EntityPropertyBaseType.ValueType, typeof(bool), EntityCopyMethod.ShallowCopy)] public virtual bool? ErtekelesKell { get { return m_ErtekelesKell; } set { CheckModifyable(); if (m_ErtekelesKell == value) return; m_ErtekelesKell = value; FieldModified("ErtekelesKell", value); } } #endregion #region MulasztasKell protected internal bool? m_MulasztasKell; /// /// NINCS HASZNÁLVA /// [EntityProperty("MulasztasKell", EntityPropertyBaseType.ValueType, typeof(bool), EntityCopyMethod.ShallowCopy)] public virtual bool? MulasztasKell { get { return m_MulasztasKell; } set { CheckModifyable(); if (m_MulasztasKell == value) return; m_MulasztasKell = value; FieldModified("MulasztasKell", value); } } #endregion #region TanarFelveheti protected internal bool? m_TanarFelveheti; /// /// NINCS HASZNÁLVA /// [EntityProperty("TanarFelveheti", EntityPropertyBaseType.ValueType, typeof(bool), EntityCopyMethod.ShallowCopy)] public virtual bool? TanarFelveheti { get { return m_TanarFelveheti; } set { CheckModifyable(); if (m_TanarFelveheti == value) return; m_TanarFelveheti = value; FieldModified("TanarFelveheti", value); } } #endregion #region Importalt protected internal bool m_Importalt; /// /// Importálással került-e be a rekord. Amit felületen módosítják a rekordot a flag False-ra vált.  /// [EntityProperty("Importalt", EntityPropertyBaseType.ValueType, typeof(bool), EntityCopyMethod.ShallowCopy)] public virtual bool Importalt { get { return m_Importalt; } set { CheckModifyable(); if (m_Importalt == value) return; m_Importalt = value; FieldModified("Importalt", value); } } #endregion #region IsOsszevontOra protected internal bool m_IsOsszevontOra; /// /// Összevont óra-e  /// [EntityProperty("IsOsszevontOra", EntityPropertyBaseType.ValueType, typeof(bool), EntityCopyMethod.ShallowCopy)] public virtual bool IsOsszevontOra { get { return m_IsOsszevontOra; } set { CheckModifyable(); if (m_IsOsszevontOra == value) return; m_IsOsszevontOra = value; FieldModified("IsOsszevontOra", value); } } #endregion #region IsNemzetisegi protected internal bool m_IsNemzetisegi; /// /// Nincs definiálva megjegyzés. /// [EntityProperty("IsNemzetisegi", EntityPropertyBaseType.ValueType, typeof(bool), EntityCopyMethod.ShallowCopy)] public virtual bool IsNemzetisegi { get { return m_IsNemzetisegi; } set { CheckModifyable(); if (m_IsNemzetisegi == value) return; m_IsNemzetisegi = value; FieldModified("IsNemzetisegi", value); } } #endregion #region TuloraSzam protected internal double m_TuloraSzam; /// /// Nincs definiálva megjegyzés. /// [EntityProperty("TuloraSzam", EntityPropertyBaseType.ValueType, typeof(double), EntityCopyMethod.ShallowCopy)] public virtual double TuloraSzam { get { return m_TuloraSzam; } set { CheckModifyable(); if (m_TuloraSzam == value) return; m_TuloraSzam = value; FieldModified("TuloraSzam", value); } } #endregion #region MegbizasiOraszam protected internal double m_MegbizasiOraszam; /// /// Nincs definiálva megjegyzés. /// [EntityProperty("MegbizasiOraszam", EntityPropertyBaseType.ValueType, typeof(double), EntityCopyMethod.ShallowCopy)] public virtual double MegbizasiOraszam { get { return m_MegbizasiOraszam; } set { CheckModifyable(); if (m_MegbizasiOraszam == value) return; m_MegbizasiOraszam = value; FieldModified("MegbizasiOraszam", value); } } #endregion #endregion #region Asszociációkkal kapcsolatos dolgok protected internal virtual bool LoadByOrarendiOraId(int id) { return m_DA.LoadByOrarendiOraId(id, this); } protected internal virtual bool LoadByTanitasiOraId(int id) { return m_DA.LoadByTanitasiOraId(id, this); } protected internal virtual bool LoadByFoglalkozasAmiTanuloId(int id) { return m_DA.LoadByFoglalkozasAmiTanuloId(id, this); } #region Foglalkozas (*) -> Tantargy (0..1) protected internal int m_TantargyId = -1; /// /// A(z) Tantargy asszociáció végpontjának ID-ja. /// /// /// - Insert() előtt célszerű kitölteni /// - Update() nincs rá hatással: ezt a mezőt nem frissíti /// - LoadByID() felhozza ezt a mezőt /// public virtual int TantargyId { get { return InternalTantargyId; } set { InternalTantargyId = value; } } /// /// Ez egy külön bejárat a DA számára /// internal int InternalTantargyId { get { if (m_Tantargy != null) { return m_Tantargy.ID; } else { return m_TantargyId;// XXX az meg nem teljesen OK } } set { CheckModifyable(); if (m_TantargyId != value) { m_TantargyId = value; m_Tantargy = null; FieldModified("TantargyId", value); } } } /// /// Ez egy külön bejárat a DA számára /// internal void ModifyTantargy(Tantargy value) { m_TantargyId = value != null ? value.ID : -1; m_Tantargy = value; FieldModified("TantargyId", value != null ? (object)value.ID : DBNull.Value); } protected internal void SetTantargy(Tantargy value) { m_Tantargy = value; if (value != null) { m_TantargyId = value.ID; } else { m_TantargyId = -1; } } protected Tantargy m_Tantargy = null; ITantargy IFoglalkozas.Tantargy { get { return Tantargy; } set { Tantargy = value as Tantargy; } } /// /// Tantárgy ID-ja  /// /// /// Az UML modellben szereplő Foglalkozas és Tantargy entitások közötti asszociáció megvalósítása. /// [EntityProperty("Tantargy", EntityPropertyBaseType.Entity, typeof(Tantargy), EntityCopyMethod.ShallowCopy)] public virtual Tantargy Tantargy { get { if ((m_Tantargy == null) && (m_TantargyId != -1)) { SDA.Kreta.Entities.Tantargy partner = SDA.Kreta.Entities.Tantargy.GiveAnInstance(); partner.LoadByID(m_TantargyId); this.SetTantargy(partner); } // természetesen null-t adunk vissza, ha nem tudtunk felhozni semmit return m_Tantargy; } set { CheckModifyable(); if (value != null) { if ((m_Tantargy == null) || (value.ID != m_Tantargy.ID)) { if (value.State != EntityState.Initialized) { throw new EntityStateException(value.State); } if ((this.State != EntityState.New)) { // Lista van a másik oldalon, úgyhogy a lista DA-ját használjuk SDA.Kreta.Entities.Tantargy_Foglalkozasok_DA da = new Tantargy_Foglalkozasok_DA(value); da.AddItem(this); this.SetTantargy(value); } else { this.SetTantargy(value); } FieldModified("TantargyId", value.ID); } } else { // ki kell törölni a kapcsolatot az adatbázisban this.SetTantargy(null); UpdateAssociations(); FieldModified("TantargyId", DBNull.Value); } } } #endregion #region Foglalkozas (*) -> OsztalyCsoport (0..1) protected internal int m_OsztalyCsoportId = -1; /// /// A(z) OsztalyCsoport asszociáció végpontjának ID-ja. /// /// /// - Insert() előtt célszerű kitölteni /// - Update() nincs rá hatással: ezt a mezőt nem frissíti /// - LoadByID() felhozza ezt a mezőt /// public virtual int OsztalyCsoportId { get { return InternalOsztalyCsoportId; } set { InternalOsztalyCsoportId = value; } } /// /// Ez egy külön bejárat a DA számára /// internal int InternalOsztalyCsoportId { get { if (m_OsztalyCsoport != null) { return m_OsztalyCsoport.ID; } else { return m_OsztalyCsoportId;// XXX az meg nem teljesen OK } } set { CheckModifyable(); if (m_OsztalyCsoportId != value) { m_OsztalyCsoportId = value; m_OsztalyCsoport = null; FieldModified("OsztalyCsoportId", value); } } } /// /// Ez egy külön bejárat a DA számára /// internal void ModifyOsztalyCsoport(OsztalyCsoport value) { m_OsztalyCsoportId = value != null ? value.ID : -1; m_OsztalyCsoport = value; FieldModified("OsztalyCsoportId", value != null ? (object)value.ID : DBNull.Value); } protected internal void SetOsztalyCsoport(OsztalyCsoport value) { m_OsztalyCsoport = value; if (value != null) { m_OsztalyCsoportId = value.ID; } else { m_OsztalyCsoportId = -1; } } protected OsztalyCsoport m_OsztalyCsoport = null; IOsztalyCsoport IFoglalkozas.OsztalyCsoport { get { return OsztalyCsoport; } set { OsztalyCsoport = value as OsztalyCsoport; } } /// /// Osztály vagy csoport ID-ja  /// /// /// Az UML modellben szereplő Foglalkozas és OsztalyCsoport entitások közötti asszociáció megvalósítása. /// [EntityProperty("OsztalyCsoport", EntityPropertyBaseType.Entity, typeof(OsztalyCsoport), EntityCopyMethod.ShallowCopy)] public virtual OsztalyCsoport OsztalyCsoport { get { if ((m_OsztalyCsoport == null) && (m_OsztalyCsoportId != -1)) { SDA.Kreta.Entities.OsztalyCsoport partner = SDA.Kreta.Entities.OsztalyCsoport.GiveAnInstance(); partner.LoadByID(m_OsztalyCsoportId); this.SetOsztalyCsoport(partner); } // természetesen null-t adunk vissza, ha nem tudtunk felhozni semmit return m_OsztalyCsoport; } set { CheckModifyable(); if (value != null) { if ((m_OsztalyCsoport == null) || (value.ID != m_OsztalyCsoport.ID)) { if (value.State != EntityState.Initialized) { throw new EntityStateException(value.State); } if ((this.State != EntityState.New)) { // Lista van a másik oldalon, úgyhogy a lista DA-ját használjuk SDA.Kreta.Entities.OsztalyCsoport_Foglalkozasok_DA da = new OsztalyCsoport_Foglalkozasok_DA(value); da.AddItem(this); this.SetOsztalyCsoport(value); } else { this.SetOsztalyCsoport(value); } FieldModified("OsztalyCsoportId", value.ID); } } else { // ki kell törölni a kapcsolatot az adatbázisban this.SetOsztalyCsoport(null); UpdateAssociations(); FieldModified("OsztalyCsoportId", DBNull.Value); } } } #endregion #region Foglalkozas (*) -> Alkalmazott (1) protected internal int m_TanarId = -1; /// /// A(z) Tanar asszociáció végpontjának ID-ja. /// /// /// - Insert() előtt célszerű kitölteni /// - Update() nincs rá hatással: ezt a mezőt nem frissíti /// - LoadByID() felhozza ezt a mezőt /// public virtual int TanarId { get { return InternalTanarId; } set { InternalTanarId = value; } } /// /// Ez egy külön bejárat a DA számára /// internal int InternalTanarId { get { if (m_Tanar != null) { return m_Tanar.ID; } else { return m_TanarId;// XXX az meg nem teljesen OK } } set { CheckModifyable(); if (m_TanarId != value) { m_TanarId = value; m_Tanar = null; FieldModified("TanarId", value); } } } /// /// Ez egy külön bejárat a DA számára /// internal void ModifyTanar(Alkalmazott value) { m_TanarId = value != null ? value.ID : -1; m_Tanar = value; FieldModified("TanarId", value != null ? (object)value.ID : DBNull.Value); } protected internal void SetTanar(Alkalmazott value) { m_Tanar = value; if (value != null) { m_TanarId = value.ID; } else { m_TanarId = -1; } } protected Alkalmazott m_Tanar = null; IAlkalmazott IFoglalkozas.Tanar { get { return Tanar; } set { Tanar = value as Alkalmazott; } } /// /// Tanár ID-ja  /// /// /// Az UML modellben szereplő Foglalkozas és Alkalmazott entitások közötti asszociáció megvalósítása. /// [EntityProperty("Tanar", EntityPropertyBaseType.Entity, typeof(Alkalmazott), EntityCopyMethod.ShallowCopy)] public virtual Alkalmazott Tanar { get { if ((m_Tanar == null) && (m_TanarId != -1)) { SDA.Kreta.Entities.Alkalmazott partner = SDA.Kreta.Entities.Alkalmazott.GiveAnInstance(); partner.LoadByID(m_TanarId); this.SetTanar(partner); } // természetesen null-t adunk vissza, ha nem tudtunk felhozni semmit return m_Tanar; } set { CheckModifyable(); if (value != null) { if ((m_Tanar == null) || (value.ID != m_Tanar.ID)) { if (value.State != EntityState.Initialized) { throw new EntityStateException(value.State); } if ((this.State != EntityState.New)) { // Lista van a másik oldalon, úgyhogy a lista DA-ját használjuk SDA.Kreta.Entities.Alkalmazott_Foglalkozas_DA da = new Alkalmazott_Foglalkozas_DA(value); da.AddItem(this); this.SetTanar(value); } else { this.SetTanar(value); } FieldModified("TanarId", value.ID); } } else { // ki kell törölni a kapcsolatot az adatbázisban this.SetTanar(null); UpdateAssociations(); FieldModified("TanarId", DBNull.Value); } } } #endregion #region Foglalkozas (*) -> Intezmeny (1) protected internal int m_IntezmenyId = -1; /// /// A(z) Intezmeny asszociáció végpontjának ID-ja. /// /// /// - Insert() előtt célszerű kitölteni /// - Update() nincs rá hatással: ezt a mezőt nem frissíti /// - LoadByID() felhozza ezt a mezőt /// public virtual int IntezmenyId { get { return InternalIntezmenyId; } set { InternalIntezmenyId = value; } } /// /// Ez egy külön bejárat a DA számára /// internal int InternalIntezmenyId { get { if (m_Intezmeny != null) { return m_Intezmeny.ID; } else { return m_IntezmenyId;// XXX az meg nem teljesen OK } } set { CheckModifyable(); if (m_IntezmenyId != value) { m_IntezmenyId = value; m_Intezmeny = null; FieldModified("IntezmenyId", value); } } } /// /// Ez egy külön bejárat a DA számára /// internal void ModifyIntezmeny(Intezmeny value) { m_IntezmenyId = value != null ? value.ID : -1; m_Intezmeny = value; FieldModified("IntezmenyId", value != null ? (object)value.ID : DBNull.Value); } protected internal void SetIntezmeny(Intezmeny value) { m_Intezmeny = value; if (value != null) { m_IntezmenyId = value.ID; } else { m_IntezmenyId = -1; } } protected Intezmeny m_Intezmeny = null; IIntezmeny IFoglalkozas.Intezmeny { get { return Intezmeny; } set { Intezmeny = value as Intezmeny; } } /// /// Nincs definiálva megjegyzés. /// /// /// Az UML modellben szereplő Foglalkozas és Intezmeny entitások közötti asszociáció megvalósítása. /// [EntityProperty("Intezmeny", EntityPropertyBaseType.Entity, typeof(Intezmeny), EntityCopyMethod.ShallowCopy)] public virtual Intezmeny Intezmeny { get { if ((m_Intezmeny == null) && (m_IntezmenyId != -1)) { SDA.Kreta.Entities.Intezmeny partner = SDA.Kreta.Entities.Intezmeny.GiveAnInstance(); partner.LoadByID(m_IntezmenyId); this.SetIntezmeny(partner); } // természetesen null-t adunk vissza, ha nem tudtunk felhozni semmit return m_Intezmeny; } set { CheckModifyable(); if (value != null) { if ((m_Intezmeny == null) || (value.ID != m_Intezmeny.ID)) { if (value.State != EntityState.Initialized) { throw new EntityStateException(value.State); } if ((this.State != EntityState.New)) { // Lista van a másik oldalon, úgyhogy a lista DA-ját használjuk SDA.Kreta.Entities.Intezmeny_Foglalkozas_DA da = new Intezmeny_Foglalkozas_DA(value); da.AddItem(this); this.SetIntezmeny(value); } else { this.SetIntezmeny(value); } FieldModified("IntezmenyId", value.ID); } } else { // ki kell törölni a kapcsolatot az adatbázisban this.SetIntezmeny(null); UpdateAssociations(); FieldModified("IntezmenyId", DBNull.Value); } } } #endregion #region Foglalkozas (*) -> Tanev (1) protected internal int m_TanevId = -1; /// /// A(z) Tanev asszociáció végpontjának ID-ja. /// /// /// - Insert() előtt célszerű kitölteni /// - Update() nincs rá hatással: ezt a mezőt nem frissíti /// - LoadByID() felhozza ezt a mezőt /// public virtual int TanevId { get { return InternalTanevId; } set { InternalTanevId = value; } } /// /// Ez egy külön bejárat a DA számára /// internal int InternalTanevId { get { if (m_Tanev != null) { return m_Tanev.ID; } else { return m_TanevId;// XXX az meg nem teljesen OK } } set { CheckModifyable(); if (m_TanevId != value) { m_TanevId = value; m_Tanev = null; FieldModified("TanevId", value); } } } /// /// Ez egy külön bejárat a DA számára /// internal void ModifyTanev(Tanev value) { m_TanevId = value != null ? value.ID : -1; m_Tanev = value; FieldModified("TanevId", value != null ? (object)value.ID : DBNull.Value); } protected internal void SetTanev(Tanev value) { m_Tanev = value; if (value != null) { m_TanevId = value.ID; } else { m_TanevId = -1; } } protected Tanev m_Tanev = null; ITanev IFoglalkozas.Tanev { get { return Tanev; } set { Tanev = value as Tanev; } } /// /// Nincs definiálva megjegyzés. /// /// /// Az UML modellben szereplő Foglalkozas és Tanev entitások közötti asszociáció megvalósítása. /// [EntityProperty("Tanev", EntityPropertyBaseType.Entity, typeof(Tanev), EntityCopyMethod.ShallowCopy)] public virtual Tanev Tanev { get { if ((m_Tanev == null) && (m_TanevId != -1)) { SDA.Kreta.Entities.Tanev partner = SDA.Kreta.Entities.Tanev.GiveAnInstance(); partner.LoadByID(m_TanevId); this.SetTanev(partner); } // természetesen null-t adunk vissza, ha nem tudtunk felhozni semmit return m_Tanev; } set { CheckModifyable(); if (value != null) { if ((m_Tanev == null) || (value.ID != m_Tanev.ID)) { if (value.State != EntityState.Initialized) { throw new EntityStateException(value.State); } if ((this.State != EntityState.New)) { // Lista van a másik oldalon, úgyhogy a lista DA-ját használjuk SDA.Kreta.Entities.Tanev_Foglalkozas_DA da = new Tanev_Foglalkozas_DA(value); da.AddItem(this); this.SetTanev(value); } else { this.SetTanev(value); } FieldModified("TanevId", value.ID); } } else { // ki kell törölni a kapcsolatot az adatbázisban this.SetTanev(null); UpdateAssociations(); FieldModified("TanevId", DBNull.Value); } } } #endregion #region Foglalkozas (0..1) -> OrarendiOra (*) protected IAssociatedEntityCollection m_OrarendiOra = null; IReadOnlyList IFoglalkozas.OrarendiOra => OrarendiOra.Cast().ToList(); /// /// A foglalkozás ID-ja, ha az óra foglalkozásból lett létrehozva  /// /// /// Az UML modellben szereplő Foglalkozas és OrarendiOra entitások közötti asszociáció megvalósítása. /// [EntityProperty("OrarendiOra", EntityPropertyBaseType.EntityCollection, typeof(IAssociatedEntityCollection), EntityCopyMethod.DeepCopy, "FoglalkozasId")] public virtual IAssociatedEntityCollection OrarendiOra { get { if (m_OrarendiOra == null) { m_OrarendiOra = new AssociatedEntityCollection( new Foglalkozas_OrarendiOra_DA(this) ); m_OrarendiOra.Load(); } return m_OrarendiOra; } } #endregion #region Foglalkozas (0..1) -> TanitasiOra (*) protected IAssociatedEntityCollection m_TanitasiOra = null; IReadOnlyList IFoglalkozas.TanitasiOra => TanitasiOra.Cast().ToList(); /// /// A foglalkozás ID-ja, ha az óra foglalkozásból lett létrehozva  (alap esetben az órarendi órából jön) /// /// /// Az UML modellben szereplő Foglalkozas és TanitasiOra entitások közötti asszociáció megvalósítása. /// [EntityProperty("TanitasiOra", EntityPropertyBaseType.EntityCollection, typeof(IAssociatedEntityCollection), EntityCopyMethod.DeepCopy, "FoglalkozasId")] public virtual IAssociatedEntityCollection TanitasiOra { get { if (m_TanitasiOra == null) { m_TanitasiOra = new AssociatedEntityCollection( new Foglalkozas_TanitasiOra_DA(this) ); m_TanitasiOra.Load(); } return m_TanitasiOra; } } #endregion #region Foglalkozas (1) -> FoglalkozasAmiTanulo (*) protected IAssociatedEntityCollection m_FoglalkozasAmiTanulo = null; IReadOnlyList IFoglalkozas.FoglalkozasAmiTanulo => FoglalkozasAmiTanulo.Cast().ToList(); /// /// Nincs definiálva megjegyzés. /// /// /// Az UML modellben szereplő Foglalkozas és FoglalkozasAmiTanulo entitások közötti asszociáció megvalósítása. /// [EntityProperty("FoglalkozasAmiTanulo", EntityPropertyBaseType.EntityCollection, typeof(IAssociatedEntityCollection), EntityCopyMethod.DeepCopy, "FoglalkozasId")] public virtual IAssociatedEntityCollection FoglalkozasAmiTanulo { get { if (m_FoglalkozasAmiTanulo == null) { m_FoglalkozasAmiTanulo = new AssociatedEntityCollection( new Foglalkozas_FoglalkozasAmiTanulo_DA(this) ); m_FoglalkozasAmiTanulo.Load(); } return m_FoglalkozasAmiTanulo; } } #endregion #endregion #endregion } }