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 Fenntarto 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("Fenntarto")]
// alapértelmezett EntityHistoryMode
public class Fenntarto : Entity, IFenntarto
{
internal protected Fenntarto()
: base()
{
}
public class AttributeInfo
{
public const string Nev = "Nev";
public const string Azonosito = "Azonosito";
public const string Guid = "Guid";
public const string LegmagasabbSzintuFenntartoId = "LegmagasabbSzintuFenntartoId";
public const string IsTesztFenntarto = "IsTesztFenntarto";
}
public class AttributeLengthInfo
{
public const int NevLength = 1000;
public const int AzonositoLength = 16;
}
#region General
private FenntartoDA m_DA = new FenntartoDA();
protected static Fenntarto FakeFenntarto { get; set; }
public static Fenntarto GiveAnInstance()
{
Fenntarto result = FakeFenntarto == null
? new Fenntarto()
: (Fenntarto)FakeFenntarto.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 FenntartoDA().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 FenntartoDA().LoadWithFilter(result, filter, columnFilterMode, columns, commandParameters);
return result;
}
protected override void StoreOriginalValues()
{
base.StoreOriginalValues();
OriginalValues.Add("Nev", (object)m_Nev);
OriginalValues.Add("Azonosito", (object)m_Azonosito);
OriginalValues.Add("Guid", (object)m_Guid);
OriginalValues.Add("LegmagasabbSzintuFenntartoId", (LegmagasabbSzintuFenntartoId == null ? (object)DBNull.Value : (object)m_LegmagasabbSzintuFenntartoId));
OriginalValues.Add("IsTesztFenntarto", (object)m_IsTesztFenntarto);
}
#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 > 1000)
{
throw new InvalidEntityAttributeException("Fenntarto", "Nev", EntityAttributeError.TooLong);
}
if (m_Azonosito != null && m_Azonosito.Length > 16)
{
throw new InvalidEntityAttributeException("Fenntarto", "Azonosito", 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_Nev = "";
this.m_Azonosito = "";
this.m_Guid = default(Guid);
this.m_LegmagasabbSzintuFenntartoId = null;
this.m_IsTesztFenntarto = false;
// alaphelyzetbe állítjuk az asszociációkból származó mezőket
this.m_Intezmeny = 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.Intezmeny.Count > 0)
{
throw new EntityDeleteFailedException("Fenntarto", "Intezmeny", EntityUtil.GetAssociationDescription("T_INTEZMENY_OSSZES", "C_FENNTARTOID")); // nincs kapcsolotabla
}
// kaszkád törlések...
}
#region Mezők és tulajdonságok
#region Egyszerű mezők
#region Nev
protected internal string m_Nev;
///
/// Fenntartó neve
///
[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 Azonosito
protected internal string m_Azonosito;
///
/// A fenntartó rendszerbeli egyedi azonosítója
///
[EntityProperty("Azonosito", EntityPropertyBaseType.ValueType, typeof(string), EntityCopyMethod.ShallowCopy)]
public virtual string Azonosito
{
get
{
return m_Azonosito;
}
set
{
CheckModifyable();
if (m_Azonosito == value) return;
m_Azonosito = value;
FieldModified("Azonosito", value);
}
}
#endregion
#region Guid
protected internal Guid m_Guid;
///
/// A fenntartó rendszerek közötti egyedi azonosítója
///
[EntityProperty("Guid", EntityPropertyBaseType.ValueType, typeof(Guid), EntityCopyMethod.ShallowCopy)]
public virtual Guid Guid
{
get
{
return m_Guid;
}
set
{
CheckModifyable();
if (m_Guid == value) return;
m_Guid = value;
FieldModified("Guid", value);
}
}
#endregion
#region LegmagasabbSzintuFenntartoId
protected internal int? m_LegmagasabbSzintuFenntartoId;
///
/// Legmagasabb szintű fenntartó ID-je
///
[EntityProperty("LegmagasabbSzintuFenntartoId", EntityPropertyBaseType.ValueType, typeof(int), EntityCopyMethod.ShallowCopy)]
public virtual int? LegmagasabbSzintuFenntartoId
{
get
{
return m_LegmagasabbSzintuFenntartoId;
}
set
{
CheckModifyable();
if (m_LegmagasabbSzintuFenntartoId == value) return;
m_LegmagasabbSzintuFenntartoId = value;
FieldModified("LegmagasabbSzintuFenntartoId", value);
}
}
#endregion
#region IsTesztFenntarto
protected internal bool m_IsTesztFenntarto;
///
/// Ha értéke IGAZ, Teszt fenntartóról beszélünk
///
[EntityProperty("IsTesztFenntarto", EntityPropertyBaseType.ValueType, typeof(bool), EntityCopyMethod.ShallowCopy)]
public virtual bool IsTesztFenntarto
{
get
{
return m_IsTesztFenntarto;
}
set
{
CheckModifyable();
if (m_IsTesztFenntarto == value) return;
m_IsTesztFenntarto = value;
FieldModified("IsTesztFenntarto", value);
}
}
#endregion
#endregion
#region Asszociációkkal kapcsolatos dolgok
protected internal virtual bool LoadByIntezmenyId(int id)
{
return m_DA.LoadByIntezmenyId(id, this);
}
#region Fenntarto (1) -> Intezmeny (*)
protected IAssociatedEntityCollection m_Intezmeny = null;
IReadOnlyList IFenntarto.Intezmeny => Intezmeny.Cast().ToList();
///
/// Intézmény fenntartója
///
///
/// Az UML modellben szereplő Fenntarto és Intezmeny entitások közötti asszociáció megvalósítása.
///
[EntityProperty("Intezmeny", EntityPropertyBaseType.EntityCollection, typeof(IAssociatedEntityCollection), EntityCopyMethod.DeepCopy, "FenntartoId")]
public virtual IAssociatedEntityCollection Intezmeny
{
get
{
if (m_Intezmeny == null)
{
m_Intezmeny = new AssociatedEntityCollection(
new Fenntarto_Intezmeny_DA(this)
);
m_Intezmeny.Load();
}
return m_Intezmeny;
}
}
#endregion
#endregion
#endregion
}
}