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 LogEventType 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("LogEventType")] // alapértelmezett EntityHistoryMode public class LogEventType : Entity, ILogEventType { internal protected LogEventType() : base() { } public class AttributeInfo { public const string Deletable = "Deletable"; public const string DisplayName = "DisplayName"; } public class AttributeLengthInfo { public const int DisplayNameLength = 200; } #region General private LogEventTypeDA m_DA = new LogEventTypeDA(); protected static LogEventType FakeLogEventType { get; set; } public static LogEventType GiveAnInstance() { LogEventType result = FakeLogEventType == null ? new LogEventType() : (LogEventType)FakeLogEventType.MemberwiseClone(); result.Reset(); result.SetDefaultData(); return result; } protected void SetDefaultData() { } 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 LogEventTypeDA().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 LogEventTypeDA().LoadWithFilter(result, filter, columnFilterMode, columns, commandParameters); return result; } protected override void StoreOriginalValues() { base.StoreOriginalValues(); OriginalValues.Add("Deletable", (Deletable == null ? (object)DBNull.Value : (object)m_Deletable)); OriginalValues.Add("DisplayName", (DisplayName == null ? (object)DBNull.Value : (object)m_DisplayName)); } #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_DisplayName != null && m_DisplayName.Length > 200) { throw new InvalidEntityAttributeException("LogEventType", "DisplayName", EntityAttributeError.TooLong); } } // kötelező asszociációk ellenőrzése... } #endregion #region Alaphelyzetbe állítás protected override void Reset() { base.Reset(); // alaphelyzetbe állítjuk az egyszerű mezőket this.m_Deletable = null; this.m_DisplayName = null; // alaphelyzetbe állítjuk az asszociációkból származó mezőket this.m_Log = null; // EntityCollection } #endregion protected override void DeAssociateBeforeDelete(bool runHandler = false) { // Nem kaszkád törölhető asszociációk ellenőrzése, hogy üresek-e... if (this.Log.Count > 0) { throw new EntityDeleteFailedException("LogEventType", "Log", EntityUtil.GetAssociationDescription("T_LOG_OSSZES", "C_EVENTTYPEID")); // nincs kapcsolotabla } // kaszkád törlések... } #region Mezők és tulajdonságok #region Egyszerű mezők #region Deletable protected internal bool? m_Deletable; /// /// mezo /// [EntityProperty("Deletable", EntityPropertyBaseType.ValueType, typeof(bool), EntityCopyMethod.ShallowCopy)] public virtual bool? Deletable { get { return m_Deletable; } set { CheckModifyable(); if (m_Deletable == value) return; m_Deletable = value; FieldModified("Deletable", value); } } #endregion #region DisplayName protected internal string m_DisplayName; /// /// logeventtype /// [EntityProperty("DisplayName", EntityPropertyBaseType.ValueType, typeof(string), EntityCopyMethod.ShallowCopy)] public virtual string DisplayName { get { return m_DisplayName; } set { CheckModifyable(); if (m_DisplayName == value) return; m_DisplayName = value; FieldModified("DisplayName", value); } } #endregion #endregion #region Asszociációkkal kapcsolatos dolgok protected internal virtual bool LoadByLogId(int id) { return m_DA.LoadByLogId(id, this); } #region LogEventType (1) -> Log (*) protected IAssociatedEntityCollection m_Log = null; IReadOnlyList ILogEventType.Log => Log.Cast().ToList(); /// /// log eventtype /// /// /// Az UML modellben szereplő LogEventType és Log entitások közötti asszociáció megvalósítása. /// [EntityProperty("Log", EntityPropertyBaseType.EntityCollection, typeof(IAssociatedEntityCollection), EntityCopyMethod.DeepCopy, "EventTypeId")] public virtual IAssociatedEntityCollection Log { get { if (m_Log == null) { m_Log = new AssociatedEntityCollection( new LogEventType_Log_DA(this) ); m_Log.Load(); } return m_Log; } } #endregion #endregion #endregion } }