143 lines
6.5 KiB
C#
143 lines
6.5 KiB
C#
using System.Collections.Generic;
|
|
using System.Data;
|
|
using System.Linq;
|
|
using Kreta.BusinessLogic.Classes;
|
|
using Kreta.BusinessLogic.HelperClasses;
|
|
using Kreta.Core;
|
|
using Kreta.Core.ConnectionType;
|
|
using Kreta.DataAccessManual;
|
|
using SDA.Kreta.Entities;
|
|
|
|
namespace Kreta.BusinessLogic.Helpers
|
|
{
|
|
public class GondviseloHelper : LogicBase
|
|
{
|
|
#region Constructors
|
|
|
|
public GondviseloHelper(IConnectionType connectionType) : base(connectionType) { }
|
|
|
|
#endregion Constructors
|
|
|
|
public List<GondviseloItemCo> GetGondviseloCoList()
|
|
{
|
|
DataSet dataSet = Dal.CustomConnection.Run(ConnectionType, dalHandler => dalHandler.Gondviselo().GetGondviseloDataSet(TanevId));
|
|
|
|
var gondviseloItemCoList = new List<GondviseloItemCo>();
|
|
foreach (DataRow dataRow in dataSet.Tables[0].Rows)
|
|
{
|
|
GondviseloItemCo gondviseloItemCo;
|
|
int gondviseloId = SDAConvert.ToInt32(dataRow["Id"]);
|
|
//NOTE: Csak akkor adunk hozzá új gondviselőt a listához, ha még nincs a listában, különben a már benne lévővel dolgozunk tovább!
|
|
// Erre azért van szükség, mert a left join-ok miatt többször visszajöhet!
|
|
if (gondviseloItemCoList.All(x => x.Id != gondviseloId))
|
|
{
|
|
gondviseloItemCo = new GondviseloItemCo(dataRow, TanevId);
|
|
gondviseloItemCoList.Add(gondviseloItemCo);
|
|
}
|
|
else
|
|
{
|
|
gondviseloItemCo = gondviseloItemCoList.Single(x => x.Id == gondviseloId);
|
|
}
|
|
|
|
int? cimId = SDAConvert.ToNullableInt32(dataRow["CimId"]);
|
|
//NOTE: Csak akkor adjuk hozzá a gondviselőhöz az címet, ha az létezik és még nincs hozzáadva korábban!
|
|
// Erre azért van szükség, mert a left join-ok miatt többször visszajöhet!
|
|
if (cimId.IsEntityId() && gondviseloItemCo.CimList.All(x => x.Id != cimId.Value))
|
|
{
|
|
var cimItemCo = new CimItemCo(gondviseloItemCo, dataRow);
|
|
gondviseloItemCo.CimList.Add(cimItemCo);
|
|
}
|
|
|
|
int? emailId = SDAConvert.ToNullableInt32(dataRow["EmailId"]);
|
|
//NOTE: Csak akkor adjuk hozzá a gondviselőhöz az email-t, ha az létezik és még nincs hozzáadva korábban!
|
|
// Erre azért van szükség, mert a left join-ok miatt többször visszajöhet!
|
|
if (emailId.IsEntityId() && gondviseloItemCo.EmailList.All(x => x.Id != emailId.Value))
|
|
{
|
|
var emailItemCo = new EmailItemCo(gondviseloItemCo, dataRow);
|
|
gondviseloItemCo.EmailList.Add(emailItemCo);
|
|
}
|
|
|
|
int? telefonId = SDAConvert.ToNullableInt32(dataRow["TelefonId"]);
|
|
//NOTE: Csak akkor adjuk hozzá a gondviselőhöz az telefont, ha az létezik és még nincs hozzáadva korábban!
|
|
// Erre azért van szükség, mert a left join-ok miatt többször visszajöhet!
|
|
if (telefonId.IsEntityId() && gondviseloItemCo.TelefonList.All(x => x.Id != telefonId.Value))
|
|
{
|
|
var telefonItemCo = new TelefonItemCo(gondviseloItemCo, dataRow);
|
|
gondviseloItemCo.TelefonList.Add(telefonItemCo);
|
|
}
|
|
}
|
|
|
|
return gondviseloItemCoList;
|
|
}
|
|
|
|
public List<GondviseloItemCo> GetTanuloGonviseloiItemCoList(int tanuloId)
|
|
{
|
|
return Dal.CustomConnection.Run(ConnectionType, (h) =>
|
|
{
|
|
var gonviselokDs = h.Tanulo().GetGondviselok(tanuloId, TanevId);
|
|
|
|
var gondviseloItemCoList = new List<GondviseloItemCo>();
|
|
|
|
foreach (DataRow dataRow in gonviselokDs.Tables[0].Rows)
|
|
{
|
|
gondviseloItemCoList.Add(GondviseloItemCo.ConvertToGondviseloItemCoFromTanuloDalGetGondviselok(dataRow));
|
|
}
|
|
|
|
return gondviseloItemCoList;
|
|
});
|
|
}
|
|
|
|
public bool IsCsokkentettGondviselo(int gondviseloId)
|
|
{
|
|
return Dal.CustomConnection.Run(ConnectionType, (h) =>
|
|
{
|
|
return h.Felhasznalo().IsCsokkentettGondviselo(gondviseloId, IntezmenyId, TanevId);
|
|
});
|
|
}
|
|
|
|
public bool HasTanuloTorvenyesGondviselo(int tanuloId)
|
|
{
|
|
var tanuloGondviseloje = GetTanuloGonviseloiItemCoList(tanuloId);
|
|
return tanuloGondviseloje.Any(t => t.IsTorvenyesKepviselo);
|
|
}
|
|
|
|
public Felhasznalo4TAdatokCo GetGondviselo4TAdatok(int gondviseloId)
|
|
{
|
|
return Dal.CustomConnection.Run(ConnectionType, (h) =>
|
|
{
|
|
return (Gondviselo)h.Gondviselo().Get(gondviseloId);
|
|
});
|
|
}
|
|
|
|
/// INFO: Mobil használja
|
|
public void SaveGondviselo4TAdatok(int gondviseloId, Felhasznalo4TAdatokCo co)
|
|
{
|
|
Dal.CustomConnection.Run(ConnectionType, (h) =>
|
|
{
|
|
var dal = h.Gondviselo();
|
|
var gondviselo = dal.Get(gondviseloId);
|
|
gondviselo.AnyjaUtonev = co.AnyjaUtonev.ReplaceMultipleSpacesAndTrim();
|
|
gondviselo.AnyjaVezeteknev = co.AnyjaVezeteknev.ReplaceMultipleSpacesAndTrim();
|
|
gondviselo.Elotag = Extensions.NameExtensions.CleanElotag(co.Elotag);
|
|
gondviselo.SzuletesiDatum = co.SzuletesiDatum;
|
|
gondviselo.SzuletesiHely = co.SzuletesiHely.ReplaceMultipleSpacesAndTrim();
|
|
gondviselo.SzuletesiUtonev = co.SzuletesiUtonev.ReplaceMultipleSpacesAndTrim();
|
|
gondviselo.SzuletesiVezeteknev = co.SzuletesiVezeteknev.ReplaceMultipleSpacesAndTrim();
|
|
gondviselo.Utonev = co.Utonev.ReplaceMultipleSpacesAndTrim();
|
|
gondviselo.Vezeteknev = co.Vezeteknev.ReplaceMultipleSpacesAndTrim();
|
|
|
|
gondviselo.Nev = Extensions.NameExtensions.GetNevSorrendben("F", gondviselo.Elotag, gondviselo.Vezeteknev, gondviselo.Utonev);
|
|
|
|
dal.Update(gondviselo);
|
|
});
|
|
}
|
|
|
|
public bool IsGondviseloTanuloinakEvfolyamTipusaLetezik(int gondviseloId, IEnumerable<int> evfolyamTipusIdList)
|
|
{
|
|
return Dal.CustomConnection.Run(ConnectionType, (h) =>
|
|
{
|
|
return h.Gondviselo().IsGondviseloTanuloinakEvfolyamTipusaLetezik(gondviseloId, IntezmenyId, TanevId, evfolyamTipusIdList);
|
|
});
|
|
}
|
|
}
|
|
}
|