513 lines
17 KiB
C#
513 lines
17 KiB
C#
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
|
|
{
|
|
/// <summary>
|
|
/// Az UML modell Allampolgarsag entitásának megvalósítása.
|
|
/// </summary>
|
|
/// <remarks>A kód teljes egészében generált, kézi módosítása nem megengedett!</remarks>
|
|
[Entity("Allampolgarsag")]
|
|
// alapértelmezett EntityHistoryMode
|
|
public class Allampolgarsag : DictionaryItemBase, IAllampolgarsag
|
|
{
|
|
internal protected Allampolgarsag()
|
|
: base()
|
|
{
|
|
}
|
|
|
|
public new class AttributeInfo : DictionaryItemBase.AttributeInfo
|
|
{
|
|
public const string Kod2 = "Kod2";
|
|
}
|
|
|
|
public new class AttributeLengthInfo : DictionaryItemBase.AttributeLengthInfo
|
|
{
|
|
public const int Kod2Length = 2;
|
|
}
|
|
|
|
#region General
|
|
private AllampolgarsagDA m_DA = new AllampolgarsagDA();
|
|
|
|
protected static Allampolgarsag FakeAllampolgarsag { get; set; }
|
|
|
|
public static new Allampolgarsag GiveAnInstance()
|
|
{
|
|
Allampolgarsag result = FakeAllampolgarsag == null
|
|
? new Allampolgarsag()
|
|
: (Allampolgarsag)FakeAllampolgarsag.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<Allampolgarsag> 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<Allampolgarsag> LoadAll(ColumnFilterMode columnFilterMode, IEnumerable<string> 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<Allampolgarsag> LoadWithFilter(string filter, Dictionary<string, object> commandParameters = null)
|
|
{
|
|
var result = new EntityCollection<Allampolgarsag>();
|
|
new AllampolgarsagDA().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<Allampolgarsag> LoadWithFilter(string filter, ColumnFilterMode columnFilterMode, IEnumerable<string> columns, Dictionary<string, object> commandParameters = null)
|
|
{
|
|
var result = new EntityCollection<Allampolgarsag>();
|
|
new AllampolgarsagDA().LoadWithFilter(result, filter, columnFilterMode, columns, commandParameters);
|
|
return result;
|
|
}
|
|
|
|
protected override void StoreOriginalValues()
|
|
{
|
|
base.StoreOriginalValues();
|
|
OriginalValues.Add("Kod2", (Kod2 == null ? (object)DBNull.Value : (object)m_Kod2));
|
|
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();
|
|
|
|
// Védett kódtétel...
|
|
//if (m_Protected == false) { throw new InvalidEntityAttributeException("Allampolgarsag", "Protected", EntityAttributeError.Unknown); }
|
|
if (m_Protected && (HasChanged("Name") || HasChanged("Code")))
|
|
{
|
|
throw new ProtectedDictionaryItemException("Allampolgarsag", ID);
|
|
}
|
|
|
|
if (!skipValidateAttributes)
|
|
{
|
|
// korlátos hosszúságú mezők ellenőrzése...
|
|
if (m_Kod2 != null && m_Kod2.Length > 2)
|
|
{
|
|
throw new InvalidEntityAttributeException("Allampolgarsag", "Kod2", EntityAttributeError.TooLong);
|
|
}
|
|
|
|
}
|
|
|
|
// kötelező asszociációk ellenőrzése...
|
|
if (m_AlIntezmenyId == -1) { throw new InvalidEntityAttributeException("Allampolgarsag", "AlIntezmenyId", EntityAttributeError.Empty); }
|
|
if (m_AlTanevId == -1) { throw new InvalidEntityAttributeException("Allampolgarsag", "AlTanevId", EntityAttributeError.Empty); }
|
|
|
|
|
|
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Alaphelyzetbe állítás
|
|
protected override void Reset()
|
|
{
|
|
base.Reset();
|
|
|
|
// alaphelyzetbe állítjuk az egyszerű mezőket
|
|
this.m_Kod2 = null;
|
|
|
|
// alaphelyzetbe állítjuk az asszociációkból származó mezőket
|
|
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...
|
|
|
|
// 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 Kod2
|
|
|
|
protected internal string m_Kod2;
|
|
|
|
/// <summary>
|
|
/// ?llapolg?rs?g k?t betus k?dja.
|
|
/// </summary>
|
|
[EntityProperty("Kod2", EntityPropertyBaseType.ValueType, typeof(string), EntityCopyMethod.ShallowCopy)]
|
|
public virtual string Kod2
|
|
{
|
|
get
|
|
{
|
|
return m_Kod2;
|
|
}
|
|
set
|
|
{
|
|
CheckModifyable();
|
|
|
|
if (m_Kod2 == value) return;
|
|
m_Kod2 = value;
|
|
FieldModified("Kod2", value);
|
|
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
#endregion
|
|
|
|
#region Asszociációkkal kapcsolatos dolgok
|
|
|
|
#region Allampolgarsag (*) -> Intezmeny (1)
|
|
|
|
protected internal int m_AlIntezmenyId = -1;
|
|
|
|
/// <summary>
|
|
/// A(z) AlIntezmeny asszociáció végpontjának ID-ja.
|
|
/// </summary>
|
|
/// <remarks>
|
|
/// - 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
|
|
/// </remarks>
|
|
public virtual int AlIntezmenyId
|
|
{
|
|
get
|
|
{
|
|
return InternalAlIntezmenyId;
|
|
}
|
|
set
|
|
{
|
|
InternalAlIntezmenyId = value;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Ez egy külön bejárat a DA számára
|
|
/// <summary>
|
|
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);
|
|
}
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Ez egy külön bejárat a DA számára
|
|
/// <summary>
|
|
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 IAllampolgarsag.AlIntezmeny
|
|
{
|
|
get { return AlIntezmeny; }
|
|
set { AlIntezmeny = value as Intezmeny; }
|
|
}
|
|
|
|
/// <summary>
|
|
/// Nincs definiálva megjegyzés.
|
|
/// </summary>
|
|
/// <remarks>
|
|
/// Az UML modellben szereplő Allampolgarsag és Intezmeny entitások közötti asszociáció megvalósítása.
|
|
/// </remarks>
|
|
[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_Allampolgarsag_DA da = new Intezmeny_Allampolgarsag_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 Allampolgarsag (*) -> Tanev (1)
|
|
|
|
protected internal int m_AlTanevId = -1;
|
|
|
|
/// <summary>
|
|
/// A(z) AlTanev asszociáció végpontjának ID-ja.
|
|
/// </summary>
|
|
/// <remarks>
|
|
/// - 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
|
|
/// </remarks>
|
|
public virtual int AlTanevId
|
|
{
|
|
get
|
|
{
|
|
return InternalAlTanevId;
|
|
}
|
|
set
|
|
{
|
|
InternalAlTanevId = value;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Ez egy külön bejárat a DA számára
|
|
/// <summary>
|
|
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);
|
|
}
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Ez egy külön bejárat a DA számára
|
|
/// <summary>
|
|
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 IAllampolgarsag.AlTanev
|
|
{
|
|
get { return AlTanev; }
|
|
set { AlTanev = value as Tanev; }
|
|
}
|
|
|
|
/// <summary>
|
|
/// Nincs definiálva megjegyzés.
|
|
/// </summary>
|
|
/// <remarks>
|
|
/// Az UML modellben szereplő Allampolgarsag és Tanev entitások közötti asszociáció megvalósítása.
|
|
/// </remarks>
|
|
[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_Allampolgarsag_DA da = new Tanev_Allampolgarsag_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;
|
|
}
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
#endregion
|
|
}
|
|
}
|
|
|