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 Csoport 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("Csoport")] // alapértelmezett EntityHistoryMode public class Csoport : OsztalyCsoport, ICsoport { internal protected Csoport() : base() { } public new class AttributeInfo : OsztalyCsoport.AttributeInfo { public const string Tipusa = "Tipusa"; public const string CsoportnaploLeiras = "CsoportnaploLeiras"; public const string CsoportnaploMegnyitasa = "CsoportnaploMegnyitasa"; public const string CsoportnaploZarasa = "CsoportnaploZarasa"; public const string IsAutoEgyeniCsoport = "IsAutoEgyeniCsoport"; public const string IsValtozoOsszetetelu = "IsValtozoOsszetetelu"; public const string DualisKepzohelyAdoszama = "DualisKepzohelyAdoszama"; public const string DualisKepzohelyNeve = "DualisKepzohelyNeve"; } public new class AttributeLengthInfo : OsztalyCsoport.AttributeLengthInfo { public const int CsoportnaploLeirasLength = 2147483647; public const int DualisKepzohelyAdoszamaLength = 20; public const int DualisKepzohelyNeveLength = 255; } #region General private CsoportDA m_DA = new CsoportDA(); protected static Csoport FakeCsoport { get; set; } public static new Csoport GiveAnInstance() { Csoport result = FakeCsoport == null ? new Csoport() : (Csoport)FakeCsoport.MemberwiseClone(); result.Reset(); result.SetDefaultData(); return result; } protected new void SetDefaultData() { if (UserContext.Instance != null) { if (UserContext.Instance.IntezmenyId > 0) { IntezmenyId = UserContext.Instance.IntezmenyId; AlIntezmenyId = UserContext.Instance.IntezmenyId; } if (UserContext.Instance.AktivTanevId > 0) { TanevId = UserContext.Instance.AktivTanevId; AlTanevId = UserContext.Instance.AktivTanevId; } m_State = EntityState.Uninitialized; } } protected override IEntityDataAccessor GetDataAccessor() { return m_DA; } protected internal new IEntityDataAccessor InheritedDA { get { return base.GetDataAccessor(); } } [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 new 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 new 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 new IEntityCollection LoadWithFilter(string filter, Dictionary commandParameters = null) { var result = new EntityCollection(); new CsoportDA().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 new IEntityCollection LoadWithFilter(string filter, ColumnFilterMode columnFilterMode, IEnumerable columns, Dictionary commandParameters = null) { var result = new EntityCollection(); new CsoportDA().LoadWithFilter(result, filter, columnFilterMode, columns, commandParameters); return result; } protected override void StoreOriginalValues() { base.StoreOriginalValues(); OriginalValues.Add("Tipusa", (Tipusa == null ? (object)DBNull.Value : (object)m_Tipusa)); OriginalValues.Add("CsoportnaploLeiras", (CsoportnaploLeiras == null ? (object)DBNull.Value : (object)m_CsoportnaploLeiras)); OriginalValues.Add("CsoportnaploMegnyitasa", (CsoportnaploMegnyitasa == null ? (object)DBNull.Value : (object)m_CsoportnaploMegnyitasa)); OriginalValues.Add("CsoportnaploZarasa", (CsoportnaploZarasa == null ? (object)DBNull.Value : (object)m_CsoportnaploZarasa)); OriginalValues.Add("IsAutoEgyeniCsoport", (object)m_IsAutoEgyeniCsoport); OriginalValues.Add("IsValtozoOsszetetelu", (object)m_IsValtozoOsszetetelu); OriginalValues.Add("DualisKepzohelyAdoszama", (DualisKepzohelyAdoszama == null ? (object)DBNull.Value : (object)m_DualisKepzohelyAdoszama)); OriginalValues.Add("DualisKepzohelyNeve", (DualisKepzohelyNeve == null ? (object)DBNull.Value : (object)m_DualisKepzohelyNeve)); OriginalValues.Add("CsoportVezetoId", (m_CsoportVezetoId < 0 ? (object)DBNull.Value : (object)m_CsoportVezetoId)); OriginalValues.Add("OsztalyBontasId", (m_OsztalyBontasId < 0 ? (object)DBNull.Value : (object)m_OsztalyBontasId)); OriginalValues.Add("SzervezetId", (m_SzervezetId < 0 ? (object)DBNull.Value : (object)m_SzervezetId)); OriginalValues.Add("AlIntezmenyId", (m_AlIntezmenyId < 0 ? (object)DBNull.Value : (object)m_AlIntezmenyId)); OriginalValues.Add("AlTanevId", (m_AlTanevId < 0 ? (object)DBNull.Value : (object)m_AlTanevId)); } #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_CsoportnaploLeiras != null && m_CsoportnaploLeiras.Length > 2147483647) { throw new InvalidEntityAttributeException("Csoport", "CsoportnaploLeiras", EntityAttributeError.TooLong); } if (m_DualisKepzohelyAdoszama != null && m_DualisKepzohelyAdoszama.Length > 20) { throw new InvalidEntityAttributeException("Csoport", "DualisKepzohelyAdoszama", EntityAttributeError.TooLong); } if (m_DualisKepzohelyNeve != null && m_DualisKepzohelyNeve.Length > 255) { throw new InvalidEntityAttributeException("Csoport", "DualisKepzohelyNeve", EntityAttributeError.TooLong); } } // kötelező asszociációk ellenőrzése... if (m_AlIntezmenyId == -1) { throw new InvalidEntityAttributeException("Csoport", "AlIntezmenyId", EntityAttributeError.Empty); } if (m_AlTanevId == -1) { throw new InvalidEntityAttributeException("Csoport", "AlTanevId", EntityAttributeError.Empty); } } #endregion #region Alaphelyzetbe állítás protected override void Reset() { base.Reset(); // alaphelyzetbe állítjuk az egyszerű mezőket this.m_Tipusa = null; this.m_CsoportnaploLeiras = null; this.m_CsoportnaploMegnyitasa = null; this.m_CsoportnaploZarasa = null; this.m_IsAutoEgyeniCsoport = false; this.m_IsValtozoOsszetetelu = false; this.m_DualisKepzohelyAdoszama = null; this.m_DualisKepzohelyNeve = null; // alaphelyzetbe állítjuk az asszociációkból származó mezőket this.m_CsoportVezetoId = -1; this.m_CsoportVezeto = null; // Entity this.m_OsztalyBontasId = -1; this.m_OsztalyBontas = null; // Entity this.m_OsszefuggoSzakGyak = null; // EntityCollection this.m_SzervezetId = -1; this.m_Szervezet = null; // Entity this.m_AlIntezmenyId = -1; this.m_AlIntezmeny = null; // Entity this.m_AlTanevId = -1; this.m_AlTanev = 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... // CsoportVezeto esetében mi mutatunk a másikra: startrole: *, endrole: 0..1 // OsztalyBontas esetében mi mutatunk a másikra: startrole: *, endrole: 0..1 if (this.OsszefuggoSzakGyak.Count > 0) { throw new EntityDeleteFailedException("Csoport", "OsszefuggoSzakGyak", EntityUtil.GetAssociationDescription("T_OSSZEFUGGOSZAKGYAK_OSSZES", "C_CSOPORTID")); // nincs kapcsolotabla } // Szervezet esetében mi mutatunk a másikra: startrole: *, endrole: 0..1 // AlIntezmeny esetében mi mutatunk a másikra: startrole: *, endrole: 1 // AlTanev esetében mi mutatunk a másikra: startrole: *, endrole: 1 // kaszkád törlések... base.DeAssociateBeforeDelete(runHandler); } #region Mezők és tulajdonságok #region Egyszerű mezők #region Tipusa protected internal int? /* DictionaryItem */ m_Tipusa; /// /// Csoporttipus ID (tanórai célú napközis, szakkör) /// [EntityProperty("Tipusa", EntityPropertyBaseType.ValueType, typeof(int /* DictionaryItem */), EntityCopyMethod.ShallowCopy)] [EntityDictionaryItemProperty("Tipusa", "CsoportTipus", typeof(SDA.Kreta.Entities.CsoportTipus))] public virtual int? /* DictionaryItem */ Tipusa { get { return m_Tipusa; } set { CheckModifyable(); if (m_Tipusa == value) return; m_Tipusa = value; FieldModified("Tipusa", value); } } #endregion #region CsoportnaploLeiras protected internal string m_CsoportnaploLeiras; /// /// A csoportnapló szöveges leírása /// [EntityProperty("CsoportnaploLeiras", EntityPropertyBaseType.ValueType, typeof(string), EntityCopyMethod.ShallowCopy)] public virtual string CsoportnaploLeiras { get { return m_CsoportnaploLeiras; } set { CheckModifyable(); if (m_CsoportnaploLeiras == value) return; m_CsoportnaploLeiras = value; FieldModified("CsoportnaploLeiras", value); } } #endregion #region CsoportnaploMegnyitasa protected internal DateTime? m_CsoportnaploMegnyitasa; /// /// A csoportnapló megnyitásának dátuma /// [EntityProperty("CsoportnaploMegnyitasa", EntityPropertyBaseType.ValueType, typeof(DateTime), EntityCopyMethod.ShallowCopy)] public virtual DateTime? CsoportnaploMegnyitasa { get { return m_CsoportnaploMegnyitasa; } set { CheckModifyable(); if (m_CsoportnaploMegnyitasa == value) return; m_CsoportnaploMegnyitasa = value; FieldModified("CsoportnaploMegnyitasa", value); } } #endregion #region CsoportnaploZarasa protected internal DateTime? m_CsoportnaploZarasa; /// /// A csoportnapló lezárásának dátuma /// [EntityProperty("CsoportnaploZarasa", EntityPropertyBaseType.ValueType, typeof(DateTime), EntityCopyMethod.ShallowCopy)] public virtual DateTime? CsoportnaploZarasa { get { return m_CsoportnaploZarasa; } set { CheckModifyable(); if (m_CsoportnaploZarasa == value) return; m_CsoportnaploZarasa = value; FieldModified("CsoportnaploZarasa", value); } } #endregion #region IsAutoEgyeniCsoport protected internal bool m_IsAutoEgyeniCsoport; /// /// Autoegyéni csoport-e /// [EntityProperty("IsAutoEgyeniCsoport", EntityPropertyBaseType.ValueType, typeof(bool), EntityCopyMethod.ShallowCopy)] public virtual bool IsAutoEgyeniCsoport { get { return m_IsAutoEgyeniCsoport; } set { CheckModifyable(); if (m_IsAutoEgyeniCsoport == value) return; m_IsAutoEgyeniCsoport = value; FieldModified("IsAutoEgyeniCsoport", value); } } #endregion #region IsValtozoOsszetetelu protected internal bool m_IsValtozoOsszetetelu; /// /// Nincs definiálva megjegyzés. /// [EntityProperty("IsValtozoOsszetetelu", EntityPropertyBaseType.ValueType, typeof(bool), EntityCopyMethod.ShallowCopy)] public virtual bool IsValtozoOsszetetelu { get { return m_IsValtozoOsszetetelu; } set { CheckModifyable(); if (m_IsValtozoOsszetetelu == value) return; m_IsValtozoOsszetetelu = value; FieldModified("IsValtozoOsszetetelu", value); } } #endregion #region DualisKepzohelyAdoszama protected internal string m_DualisKepzohelyAdoszama; /// /// Kapcsolódó szervezet rögzítéskori adószáma /// [EntityProperty("DualisKepzohelyAdoszama", EntityPropertyBaseType.ValueType, typeof(string), EntityCopyMethod.ShallowCopy)] public virtual string DualisKepzohelyAdoszama { get { return m_DualisKepzohelyAdoszama; } set { CheckModifyable(); if (m_DualisKepzohelyAdoszama == value) return; m_DualisKepzohelyAdoszama = value; FieldModified("DualisKepzohelyAdoszama", value); } } #endregion #region DualisKepzohelyNeve protected internal string m_DualisKepzohelyNeve; /// /// Kapcsolódó szervezet rögzítéskori neve /// [EntityProperty("DualisKepzohelyNeve", EntityPropertyBaseType.ValueType, typeof(string), EntityCopyMethod.ShallowCopy)] public virtual string DualisKepzohelyNeve { get { return m_DualisKepzohelyNeve; } set { CheckModifyable(); if (m_DualisKepzohelyNeve == value) return; m_DualisKepzohelyNeve = value; FieldModified("DualisKepzohelyNeve", value); } } #endregion #endregion #region Asszociációkkal kapcsolatos dolgok protected internal virtual bool LoadByOsszefuggoSzakGyakId(int id) { return m_DA.LoadByOsszefuggoSzakGyakId(id, this); } #region Csoport (*) -> Alkalmazott (0..1) protected internal int m_CsoportVezetoId = -1; /// /// A(z) CsoportVezeto 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 CsoportVezetoId { get { return InternalCsoportVezetoId; } set { InternalCsoportVezetoId = value; } } /// /// Ez egy külön bejárat a DA számára /// internal int InternalCsoportVezetoId { get { if (m_CsoportVezeto != null) { return m_CsoportVezeto.ID; } else { return m_CsoportVezetoId;// XXX az meg nem teljesen OK } } set { CheckModifyable(); if (m_CsoportVezetoId != value) { m_CsoportVezetoId = value; m_CsoportVezeto = null; FieldModified("CsoportVezetoId", value); } } } /// /// Ez egy külön bejárat a DA számára /// internal void ModifyCsoportVezeto(Alkalmazott value) { m_CsoportVezetoId = value != null ? value.ID : -1; m_CsoportVezeto = value; FieldModified("CsoportVezetoId", value != null ? (object)value.ID : DBNull.Value); } protected internal void SetCsoportVezeto(Alkalmazott value) { m_CsoportVezeto = value; if (value != null) { m_CsoportVezetoId = value.ID; } else { m_CsoportVezetoId = -1; } } protected Alkalmazott m_CsoportVezeto = null; IAlkalmazott ICsoport.CsoportVezeto { get { return CsoportVezeto; } set { CsoportVezeto = value as Alkalmazott; } } /// /// A csoportvezeto ID-ja (AlkalmazottId) /// /// /// Az UML modellben szereplő Csoport és Alkalmazott entitások közötti asszociáció megvalósítása. /// [EntityProperty("CsoportVezeto", EntityPropertyBaseType.Entity, typeof(Alkalmazott), EntityCopyMethod.ShallowCopy)] public virtual Alkalmazott CsoportVezeto { get { if ((m_CsoportVezeto == null) && (m_CsoportVezetoId != -1)) { SDA.Kreta.Entities.Alkalmazott partner = SDA.Kreta.Entities.Alkalmazott.GiveAnInstance(); partner.LoadByID(m_CsoportVezetoId); this.SetCsoportVezeto(partner); } // természetesen null-t adunk vissza, ha nem tudtunk felhozni semmit return m_CsoportVezeto; } set { CheckModifyable(); if (value != null) { if ((m_CsoportVezeto == null) || (value.ID != m_CsoportVezeto.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_VezetoCsoportjai_DA da = new Alkalmazott_VezetoCsoportjai_DA(value); da.AddItem(this); this.SetCsoportVezeto(value); } else { this.SetCsoportVezeto(value); } FieldModified("CsoportVezetoId", value.ID); } } else { // ki kell törölni a kapcsolatot az adatbázisban this.SetCsoportVezeto(null); UpdateAssociations(); FieldModified("CsoportVezetoId", DBNull.Value); } } } #endregion #region Csoport (*) -> Osztaly (0..1) protected internal int m_OsztalyBontasId = -1; /// /// A(z) OsztalyBontas 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 OsztalyBontasId { get { return InternalOsztalyBontasId; } set { InternalOsztalyBontasId = value; } } /// /// Ez egy külön bejárat a DA számára /// internal int InternalOsztalyBontasId { get { if (m_OsztalyBontas != null) { return m_OsztalyBontas.ID; } else { return m_OsztalyBontasId;// XXX az meg nem teljesen OK } } set { CheckModifyable(); if (m_OsztalyBontasId != value) { m_OsztalyBontasId = value; m_OsztalyBontas = null; FieldModified("OsztalyBontasId", value); } } } /// /// Ez egy külön bejárat a DA számára /// internal void ModifyOsztalyBontas(Osztaly value) { m_OsztalyBontasId = value != null ? value.ID : -1; m_OsztalyBontas = value; FieldModified("OsztalyBontasId", value != null ? (object)value.ID : DBNull.Value); } protected internal void SetOsztalyBontas(Osztaly value) { m_OsztalyBontas = value; if (value != null) { m_OsztalyBontasId = value.ID; } else { m_OsztalyBontasId = -1; } } protected Osztaly m_OsztalyBontas = null; IOsztaly ICsoport.OsztalyBontas { get { return OsztalyBontas; } set { OsztalyBontas = value as Osztaly; } } /// /// Amenyiben a csoport egy osztály bontása, az osztály ID-ja /// /// /// Az UML modellben szereplő Csoport és Osztaly entitások közötti asszociáció megvalósítása. /// [EntityProperty("OsztalyBontas", EntityPropertyBaseType.Entity, typeof(Osztaly), EntityCopyMethod.ShallowCopy)] public virtual Osztaly OsztalyBontas { get { if ((m_OsztalyBontas == null) && (m_OsztalyBontasId != -1)) { SDA.Kreta.Entities.Osztaly partner = SDA.Kreta.Entities.Osztaly.GiveAnInstance(); partner.LoadByID(m_OsztalyBontasId); this.SetOsztalyBontas(partner); } // természetesen null-t adunk vissza, ha nem tudtunk felhozni semmit return m_OsztalyBontas; } set { CheckModifyable(); if (value != null) { if ((m_OsztalyBontas == null) || (value.ID != m_OsztalyBontas.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.Osztaly_CsoportBontasok_DA da = new Osztaly_CsoportBontasok_DA(value); da.AddItem(this); this.SetOsztalyBontas(value); } else { this.SetOsztalyBontas(value); } FieldModified("OsztalyBontasId", value.ID); } } else { // ki kell törölni a kapcsolatot az adatbázisban this.SetOsztalyBontas(null); UpdateAssociations(); FieldModified("OsztalyBontasId", DBNull.Value); } } } #endregion #region Csoport (*) -> Szervezet (0..1) protected internal int m_SzervezetId = -1; /// /// A(z) Szervezet 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 SzervezetId { get { return InternalSzervezetId; } set { InternalSzervezetId = value; } } /// /// Ez egy külön bejárat a DA számára /// internal int InternalSzervezetId { get { if (m_Szervezet != null) { return m_Szervezet.ID; } else { return m_SzervezetId;// XXX az meg nem teljesen OK } } set { CheckModifyable(); if (m_SzervezetId != value) { m_SzervezetId = value; m_Szervezet = null; FieldModified("SzervezetId", value); } } } /// /// Ez egy külön bejárat a DA számára /// internal void ModifySzervezet(Szervezet value) { m_SzervezetId = value != null ? value.ID : -1; m_Szervezet = value; FieldModified("SzervezetId", value != null ? (object)value.ID : DBNull.Value); } protected internal void SetSzervezet(Szervezet value) { m_Szervezet = value; if (value != null) { m_SzervezetId = value.ID; } else { m_SzervezetId = -1; } } protected Szervezet m_Szervezet = null; ISzervezet ICsoport.Szervezet { get { return Szervezet; } set { Szervezet = value as Szervezet; } } /// /// A kapcsolódó szervezet ID-ja /// /// /// Az UML modellben szereplő Csoport és Szervezet entitások közötti asszociáció megvalósítása. /// [EntityProperty("Szervezet", EntityPropertyBaseType.Entity, typeof(Szervezet), EntityCopyMethod.ShallowCopy)] public virtual Szervezet Szervezet { get { if ((m_Szervezet == null) && (m_SzervezetId != -1)) { SDA.Kreta.Entities.Szervezet partner = SDA.Kreta.Entities.Szervezet.GiveAnInstance(); partner.LoadByID(m_SzervezetId); this.SetSzervezet(partner); } // természetesen null-t adunk vissza, ha nem tudtunk felhozni semmit return m_Szervezet; } set { CheckModifyable(); if (value != null) { if ((m_Szervezet == null) || (value.ID != m_Szervezet.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.Szervezet_Csoport_DA da = new Szervezet_Csoport_DA(value); da.AddItem(this); this.SetSzervezet(value); } else { this.SetSzervezet(value); } FieldModified("SzervezetId", value.ID); } } else { // ki kell törölni a kapcsolatot az adatbázisban this.SetSzervezet(null); UpdateAssociations(); FieldModified("SzervezetId", DBNull.Value); } } } #endregion #region Csoport (*) -> Intezmeny (1) protected internal int m_AlIntezmenyId = -1; /// /// A(z) AlIntezmeny 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 AlIntezmenyId { get { return InternalAlIntezmenyId; } set { InternalAlIntezmenyId = value; } } /// /// Ez egy külön bejárat a DA számára /// internal int InternalAlIntezmenyId { get { if (m_AlIntezmeny != null) { return m_AlIntezmeny.ID; } else { return m_AlIntezmenyId;// XXX az meg nem teljesen OK } } set { CheckModifyable(); if (m_AlIntezmenyId != value) { m_AlIntezmenyId = value; m_AlIntezmeny = null; FieldModified("AlIntezmenyId", value); } } } /// /// Ez egy külön bejárat a DA számára /// internal void ModifyAlIntezmeny(Intezmeny value) { m_AlIntezmenyId = value != null ? value.ID : -1; m_AlIntezmeny = value; FieldModified("AlIntezmenyId", value != null ? (object)value.ID : DBNull.Value); } protected internal void SetAlIntezmeny(Intezmeny value) { m_AlIntezmeny = value; if (value != null) { m_AlIntezmenyId = value.ID; } else { m_AlIntezmenyId = -1; } } protected Intezmeny m_AlIntezmeny = null; IIntezmeny ICsoport.AlIntezmeny { get { return AlIntezmeny; } set { AlIntezmeny = value as Intezmeny; } } /// /// Nincs definiálva megjegyzés. /// /// /// Az UML modellben szereplő Csoport és Intezmeny entitások közötti asszociáció megvalósítása. /// [EntityProperty("AlIntezmeny", EntityPropertyBaseType.Entity, typeof(Intezmeny), EntityCopyMethod.ShallowCopy)] public virtual Intezmeny AlIntezmeny { get { if ((m_AlIntezmeny == null) && (m_AlIntezmenyId != -1)) { SDA.Kreta.Entities.Intezmeny partner = SDA.Kreta.Entities.Intezmeny.GiveAnInstance(); partner.LoadByID(m_AlIntezmenyId); this.SetAlIntezmeny(partner); } // természetesen null-t adunk vissza, ha nem tudtunk felhozni semmit return m_AlIntezmeny; } set { CheckModifyable(); if (value != null) { if ((m_AlIntezmeny == null) || (value.ID != m_AlIntezmeny.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_Csoport_DA da = new Intezmeny_Csoport_DA(value); da.AddItem(this); this.SetAlIntezmeny(value); } else { this.SetAlIntezmeny(value); } FieldModified("AlIntezmenyId", value.ID); } } else { // ki kell törölni a kapcsolatot az adatbázisban this.SetAlIntezmeny(null); UpdateAssociations(); FieldModified("AlIntezmenyId", DBNull.Value); } } } #endregion #region Csoport (*) -> Tanev (1) protected internal int m_AlTanevId = -1; /// /// A(z) AlTanev 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 AlTanevId { get { return InternalAlTanevId; } set { InternalAlTanevId = value; } } /// /// Ez egy külön bejárat a DA számára /// internal int InternalAlTanevId { get { if (m_AlTanev != null) { return m_AlTanev.ID; } else { return m_AlTanevId;// XXX az meg nem teljesen OK } } set { CheckModifyable(); if (m_AlTanevId != value) { m_AlTanevId = value; m_AlTanev = null; FieldModified("AlTanevId", value); } } } /// /// Ez egy külön bejárat a DA számára /// internal void ModifyAlTanev(Tanev value) { m_AlTanevId = value != null ? value.ID : -1; m_AlTanev = value; FieldModified("AlTanevId", value != null ? (object)value.ID : DBNull.Value); } protected internal void SetAlTanev(Tanev value) { m_AlTanev = value; if (value != null) { m_AlTanevId = value.ID; } else { m_AlTanevId = -1; } } protected Tanev m_AlTanev = null; ITanev ICsoport.AlTanev { get { return AlTanev; } set { AlTanev = value as Tanev; } } /// /// Nincs definiálva megjegyzés. /// /// /// Az UML modellben szereplő Csoport és Tanev entitások közötti asszociáció megvalósítása. /// [EntityProperty("AlTanev", EntityPropertyBaseType.Entity, typeof(Tanev), EntityCopyMethod.ShallowCopy)] public virtual Tanev AlTanev { get { if ((m_AlTanev == null) && (m_AlTanevId != -1)) { SDA.Kreta.Entities.Tanev partner = SDA.Kreta.Entities.Tanev.GiveAnInstance(); partner.LoadByID(m_AlTanevId); this.SetAlTanev(partner); } // természetesen null-t adunk vissza, ha nem tudtunk felhozni semmit return m_AlTanev; } set { CheckModifyable(); if (value != null) { if ((m_AlTanev == null) || (value.ID != m_AlTanev.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_Csoport_DA da = new Tanev_Csoport_DA(value); da.AddItem(this); this.SetAlTanev(value); } else { this.SetAlTanev(value); } FieldModified("AlTanevId", value.ID); } } else { // ki kell törölni a kapcsolatot az adatbázisban this.SetAlTanev(null); UpdateAssociations(); FieldModified("AlTanevId", DBNull.Value); } } } #endregion public override int TanevId { get { return base.TanevId; } set { InternalAlTanevId = value; base.TanevId = value; } } #region Csoport (1) -> OsszefuggoSzakGyak (0..*) protected IAssociatedEntityCollection m_OsszefuggoSzakGyak = null; IReadOnlyList ICsoport.OsszefuggoSzakGyak => OsszefuggoSzakGyak.Cast().ToList(); /// /// Nincs definiálva megjegyzés. /// /// /// Az UML modellben szereplő Csoport és OsszefuggoSzakGyak entitások közötti asszociáció megvalósítása. /// [EntityProperty("OsszefuggoSzakGyak", EntityPropertyBaseType.EntityCollection, typeof(IAssociatedEntityCollection), EntityCopyMethod.DeepCopy, "CsoportId")] public virtual IAssociatedEntityCollection OsszefuggoSzakGyak { get { if (m_OsszefuggoSzakGyak == null) { m_OsszefuggoSzakGyak = new AssociatedEntityCollection( new Csoport_OsszefuggoSzakGyak_DA(this) ); m_OsszefuggoSzakGyak.Load(); } return m_OsszefuggoSzakGyak; } } #endregion #endregion #endregion } }