602 lines
20 KiB
C#
602 lines
20 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 OktatasiNevelesiFeladat 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("OktatasiNevelesiFeladat")]
|
|
// alapértelmezett EntityHistoryMode
|
|
public class OktatasiNevelesiFeladat : DictionaryItemBase, IOktatasiNevelesiFeladat
|
|
{
|
|
internal protected OktatasiNevelesiFeladat()
|
|
: base()
|
|
{
|
|
}
|
|
|
|
public new class AttributeInfo : DictionaryItemBase.AttributeInfo
|
|
{
|
|
public const string FeladatKategoriaId = "FeladatKategoriaId";
|
|
public const string EslKozepesAtlag = "EslKozepesAtlag";
|
|
}
|
|
|
|
public new class AttributeLengthInfo : DictionaryItemBase.AttributeLengthInfo
|
|
{
|
|
}
|
|
|
|
#region General
|
|
private OktatasiNevelesiFeladatDA m_DA = new OktatasiNevelesiFeladatDA();
|
|
|
|
protected static OktatasiNevelesiFeladat FakeOktatasiNevelesiFeladat { get; set; }
|
|
|
|
public static new OktatasiNevelesiFeladat GiveAnInstance()
|
|
{
|
|
OktatasiNevelesiFeladat result = FakeOktatasiNevelesiFeladat == null
|
|
? new OktatasiNevelesiFeladat()
|
|
: (OktatasiNevelesiFeladat)FakeOktatasiNevelesiFeladat.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<OktatasiNevelesiFeladat> 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<OktatasiNevelesiFeladat> 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<OktatasiNevelesiFeladat> LoadWithFilter(string filter, Dictionary<string, object> commandParameters = null)
|
|
{
|
|
var result = new EntityCollection<OktatasiNevelesiFeladat>();
|
|
new OktatasiNevelesiFeladatDA().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<OktatasiNevelesiFeladat> LoadWithFilter(string filter, ColumnFilterMode columnFilterMode, IEnumerable<string> columns, Dictionary<string, object> commandParameters = null)
|
|
{
|
|
var result = new EntityCollection<OktatasiNevelesiFeladat>();
|
|
new OktatasiNevelesiFeladatDA().LoadWithFilter(result, filter, columnFilterMode, columns, commandParameters);
|
|
return result;
|
|
}
|
|
|
|
protected override void StoreOriginalValues()
|
|
{
|
|
base.StoreOriginalValues();
|
|
OriginalValues.Add("FeladatKategoriaId", (object)m_FeladatKategoriaId);
|
|
OriginalValues.Add("EslKozepesAtlag", (object)m_EslKozepesAtlag);
|
|
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("OktatasiNevelesiFeladat", "Protected", EntityAttributeError.Unknown); }
|
|
if (m_Protected && (HasChanged("Name") || HasChanged("Code")))
|
|
{
|
|
throw new ProtectedDictionaryItemException("OktatasiNevelesiFeladat", ID);
|
|
}
|
|
|
|
if (!skipValidateAttributes)
|
|
{
|
|
// korlátos hosszúságú mezők ellenőrzése...
|
|
}
|
|
|
|
// kötelező asszociációk ellenőrzése...
|
|
if (m_AlIntezmenyId == -1) { throw new InvalidEntityAttributeException("OktatasiNevelesiFeladat", "AlIntezmenyId", EntityAttributeError.Empty); }
|
|
if (m_AlTanevId == -1) { throw new InvalidEntityAttributeException("OktatasiNevelesiFeladat", "AlTanevId", EntityAttributeError.Empty); }
|
|
|
|
|
|
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Alaphelyzetbe állítás
|
|
protected override void Reset()
|
|
{
|
|
base.Reset();
|
|
|
|
// alaphelyzetbe állítjuk az egyszerű mezőket
|
|
this.m_FeladatKategoriaId = -1;
|
|
this.m_EslKozepesAtlag = 3;
|
|
|
|
// alaphelyzetbe állítjuk az asszociációkból származó mezőket
|
|
this.m_EvfolyamTipus = null; // EntityCollection
|
|
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...
|
|
|
|
if (this.EvfolyamTipus.Count > 0)
|
|
{
|
|
throw new EntityDeleteFailedException("OktatasiNevelesiFeladat", "EvfolyamTipus", EntityUtil.GetAssociationDescription("T_EVFOLYAMTIPUS_OSSZES", "ID")); // *-* + kapcsolotabla
|
|
}
|
|
// 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 FeladatKategoriaId
|
|
|
|
protected internal int /* DictionaryItem */ m_FeladatKategoriaId;
|
|
|
|
/// <summary>
|
|
/// Nincs definiálva megjegyzés.
|
|
/// </summary>
|
|
[EntityProperty("FeladatKategoriaId", EntityPropertyBaseType.ValueType, typeof(int /* DictionaryItem */), EntityCopyMethod.ShallowCopy)]
|
|
[EntityDictionaryItemProperty("FeladatKategoriaId", "OktNevelesiKategoria", typeof(SDA.Kreta.Entities.OktNevelesiKategoria))]
|
|
|
|
public virtual int /* DictionaryItem */ FeladatKategoriaId
|
|
{
|
|
get
|
|
{
|
|
return m_FeladatKategoriaId;
|
|
}
|
|
set
|
|
{
|
|
CheckModifyable();
|
|
|
|
if (m_FeladatKategoriaId == value) return;
|
|
m_FeladatKategoriaId = value;
|
|
FieldModified("FeladatKategoriaId", value);
|
|
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region EslKozepesAtlag
|
|
|
|
protected internal double m_EslKozepesAtlag;
|
|
|
|
/// <summary>
|
|
/// ESL-ben ez számít közepes átlagnak, ennél rosszab átlagú tanulókat kell megjeleníteni
|
|
/// </summary>
|
|
[EntityProperty("EslKozepesAtlag", EntityPropertyBaseType.ValueType, typeof(double), EntityCopyMethod.ShallowCopy)]
|
|
public virtual double EslKozepesAtlag
|
|
{
|
|
get
|
|
{
|
|
return m_EslKozepesAtlag;
|
|
}
|
|
set
|
|
{
|
|
CheckModifyable();
|
|
|
|
if (m_EslKozepesAtlag == value) return;
|
|
m_EslKozepesAtlag = value;
|
|
FieldModified("EslKozepesAtlag", value);
|
|
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
#endregion
|
|
|
|
#region Asszociációkkal kapcsolatos dolgok
|
|
|
|
#region OktatasiNevelesiFeladat (*) -> 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 IOktatasiNevelesiFeladat.AlIntezmeny
|
|
{
|
|
get { return AlIntezmeny; }
|
|
set { AlIntezmeny = value as Intezmeny; }
|
|
}
|
|
|
|
/// <summary>
|
|
/// Nincs definiálva megjegyzés.
|
|
/// </summary>
|
|
/// <remarks>
|
|
/// Az UML modellben szereplő OktatasiNevelesiFeladat é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_OktatasiNevelesiFeladat_DA da = new Intezmeny_OktatasiNevelesiFeladat_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 OktatasiNevelesiFeladat (*) -> 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 IOktatasiNevelesiFeladat.AlTanev
|
|
{
|
|
get { return AlTanev; }
|
|
set { AlTanev = value as Tanev; }
|
|
}
|
|
|
|
/// <summary>
|
|
/// Nincs definiálva megjegyzés.
|
|
/// </summary>
|
|
/// <remarks>
|
|
/// Az UML modellben szereplő OktatasiNevelesiFeladat é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_OktatasiNevelesiFeladat_DA da = new Tanev_OktatasiNevelesiFeladat_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 OktatasiNevelesiFeladat (*) -> EvfolyamTipus (*)
|
|
protected IAssociatedEntityCollection<EvfolyamTipus> m_EvfolyamTipus = null;
|
|
|
|
IReadOnlyList<IEvfolyamTipus> IOktatasiNevelesiFeladat.EvfolyamTipus => EvfolyamTipus.Cast<IEvfolyamTipus>().ToList();
|
|
|
|
/// <summary>
|
|
/// Nincs definiálva megjegyzés.
|
|
/// </summary>
|
|
/// <remarks>
|
|
/// Az UML modellben szereplő OktatasiNevelesiFeladat és EvfolyamTipus entitások közötti asszociáció megvalósítása.
|
|
/// </remarks>
|
|
[EntityProperty("EvfolyamTipus", EntityPropertyBaseType.EntityCollection, typeof(IAssociatedEntityCollection<EvfolyamTipus>), EntityCopyMethod.ShallowCopy, "OktatasiNevelesiFeladatId", "EvfolyamTipusId", "T_EVFOLYAMTIPUS_OKTATASINEVELE_OSSZES")]
|
|
public virtual IAssociatedEntityCollection<EvfolyamTipus> EvfolyamTipus
|
|
{
|
|
get
|
|
{
|
|
if (m_EvfolyamTipus == null)
|
|
{
|
|
m_EvfolyamTipus = new AssociatedEntityCollection<OktatasiNevelesiFeladat, EvfolyamTipus>(
|
|
new OktatasiNevelesiFeladat_EvfolyamTipus_DA(this)
|
|
);
|
|
m_EvfolyamTipus.Load();
|
|
}
|
|
return m_EvfolyamTipus;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Teljesítményre optimalizált metódus a(z) EvfolyamTipus hozzárendelésre. <b>Ne használd, ha nem muszáj!</b>
|
|
/// </summary>
|
|
public void AddToEvfolyamTipus(EvfolyamTipus partner)
|
|
{
|
|
if (m_EvfolyamTipus == null)
|
|
{
|
|
new OktatasiNevelesiFeladat_EvfolyamTipus_DA(this).AddItem(partner);
|
|
}
|
|
else
|
|
{
|
|
EvfolyamTipus.Add(partner);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Teljesítményre optimalizált metódus a(z) EvfolyamTipus szétrendelésre. <b>Ne használd, ha nem muszáj!</b>
|
|
/// </summary>
|
|
public void RemoveFromEvfolyamTipus(EvfolyamTipus partner)
|
|
{
|
|
if (m_EvfolyamTipus == null)
|
|
{
|
|
new OktatasiNevelesiFeladat_EvfolyamTipus_DA(this).DeleteItem(partner);
|
|
}
|
|
else
|
|
{
|
|
EvfolyamTipus.Remove(partner);
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
|
|
#endregion
|
|
|
|
#endregion
|
|
}
|
|
}
|
|
|