kreta/Kreta.BusinessLogic/Helpers/FogadooraHelper.cs
2024-03-13 00:33:46 +01:00

1484 lines
75 KiB
C#

using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Xml;
using Kreta.BusinessLogic.Classes;
using Kreta.BusinessLogic.HelperClasses;
using Kreta.Core;
using Kreta.Core.ConnectionType;
using Kreta.DataAccess.Interfaces;
using Kreta.DataAccessManual;
using Kreta.DataAccessManual.Interfaces;
using Kreta.DataAccessManual.Util;
using Kreta.Enums;
using Kreta.Enums.ManualEnums;
using Kreta.Framework.Util;
using Kreta.Resources;
namespace Kreta.BusinessLogic.Helpers
{
public class FogadooraHelper : LogicBase
{
public FogadooraHelper(IConnectionType connectionType) : base(connectionType) { }
public DataSet GetFogadoora(FogadooraSearchCo searchCo)
{
var dataSet = Dal.CustomConnection.Run(ConnectionType, h =>
{
var dal = h.Fogadoora(GridParameters);
return dal.GetFogadoora(
IntezmenyId,
TanevId,
searchCo.ConvertToPco()
);
});
dataSet.Tables[0].Columns.Add("JelentkezesekKezelese");
dataSet.Tables[0].Columns.Add("Rendszeresseg");
dataSet.Tables[0].Columns.Add("OsztalyCsoportFormatted");
var temp = dataSet.Tables[0].AsEnumerable();
var RendszeressegDictionary = EnumExtensions.EnumToDictionary<FogadooraRendszeressegEnum>(tanevId: TanevId);
var TipusDictionary = new Dictionary<int, string>
{
{(int)FogadooraTipusEnum.Jelentkezheto, FogadooraResource.Igen },
{(int)FogadooraTipusEnum.NemJelentkezheto, FogadooraResource.Nem },
{(int)FogadooraTipusEnum.JelentkezhetoDarabolt, FogadooraResource.Idopontra },
};
foreach (var row in temp)
{
row["JelentkezesekKezelese"] = TipusDictionary.First(x => x.Key == (int)row["JelentkezesekKezeleseId"]).Value;
row["Rendszeresseg"] = RendszeressegDictionary.First(x => x.Key == row["RendszeressegId"].ToString()).Value;
var ocsStr = row["OsztalyCsoport"].ToString();
if (ocsStr.Length > 70 && ocsStr.LastIndexOf(',') > 0)
{
int indx = ocsStr.LastIndexOf(',');
row["OsztalyCsoportFormatted"] = ocsStr.Substring(0, indx) + " ...";
}
else
{
row["OsztalyCsoportFormatted"] = row["OsztalyCsoport"].ToString();
}
}
return dataSet;
}
private DataSet GetGondviselokByFogadooraId(IDalHandler h, int fogadooraId)
{
var dal = h.Fogadoora(GridParameters);
return dal.GetGondviselokByFogadooraId(fogadooraId);
}
public DataSet GetJelentkezettGondviseloCntByFogadooraId(int fogadooraId)
{
return Dal.CustomConnection.Run(ConnectionType, (h) =>
{
var dal = h.Fogadoora(GridParameters);
return dal.GetJelentkezettGondviseloCntByFogadooraId(fogadooraId);
});
}
private DataSet GetGondviselokByFogadooraIdAndOsztalyCsoportId(IDalHandler h, int fogadooraId, int osztalyCsoportId)
{
var dal = h.Fogadoora(GridParameters);
return dal.GetGondviselokByFogadooraIdAndOsztalyCsoportId(fogadooraId, osztalyCsoportId);
}
public void DeleteFogadoora(int fogadooraId, int modositasiIdoszakTipus)
{
Dal.CustomConnection.Run(ConnectionType, (h) =>
{
TanevCO tanevCO;
var tanevHelper = new TanevHelper(new DalHandlerConnectionType(ConnectionType, h));
tanevCO = tanevHelper.GetTanevInfo();
var gondviseloDs = GetGondviselokByFogadooraId(h, fogadooraId);
var fogadooraCo = GetFogadooraById(h, fogadooraId);
DateTime idopontVege = fogadooraCo.FogadoOraVege;
var lista = new List<(int Id, DateTime Idopont)>();
switch (modositasiIdoszakTipus)
{
case (int)OraModositasiIdoszakTipus.EgyOra:
lista.Add((fogadooraId, fogadooraCo.FogadoOraKezdete));
break;
case (int)OraModositasiIdoszakTipus.AdottNaptol:
lista = GetFogadooraIdAndKezdeteByGroupIdList(h, fogadooraCo.GroupId, fogadooraCo.FogadoOraDatuma, tanevCO.UtolsoTanitasiNap);
break;
case (int)OraModositasiIdoszakTipus.AdottNapig:
lista = GetFogadooraIdAndKezdeteByGroupIdList(h, fogadooraCo.GroupId, tanevCO.ElsoTanitasiNap, fogadooraCo.FogadoOraDatuma);
break;
case (int)OraModositasiIdoszakTipus.TeljesIdoszak:
lista = GetFogadooraIdAndKezdeteByGroupIdList(h, fogadooraCo.GroupId, tanevCO.ElsoTanitasiNap, tanevCO.UtolsoTanitasiNap);
break;
}
var elsoAlkalomDatuma = GetRendszeresModifyDeleteElsoDatum(lista);
var dal = h.Fogadoora(GridParameters);
foreach (var (Id, Idopont) in lista)
{
dal.DeleteFogadoora(Id);
}
bool isEgyalkalom = lista.Count < 2;
PedagogusToroltFogadooraEmailKuldes(h, fogadooraCo.TanarId, fogadooraCo.TeremId, isEgyalkalom, elsoAlkalomDatuma, idopontVege, fogadooraCo.Rendszeresseg, fogadooraCo.JelentkezesHatarideje);
GondviseloToroltFogadooraEmailKuldes(h, gondviseloDs, fogadooraCo.TanarId, fogadooraCo.TeremId, isEgyalkalom, elsoAlkalomDatuma, idopontVege, fogadooraCo.Rendszeresseg, fogadooraCo.JelentkezesHatarideje);
if (fogadooraCo.IsFaliujsagonMegjelenjen) //beállítától függjön?
{
SaveToroltFogadooraFaliujsag(h, fogadooraCo, isEgyalkalom, elsoAlkalomDatuma, idopontVege);
}
});
}
public DataSet GetFogadooraDokumentumAdatok(int fogadooraId)
{
return Dal.CustomConnection.Run(ConnectionType, (h) =>
{
var dal = h.Fogadoora(GridParameters);
return dal.GetFogadooraDokumentumAdatok(fogadooraId, TanevId);
});
}
public DataSet GetFogadooraOsztalyCsoportok(bool isSzuperOsztalyfonok)
{
return Dal.CustomConnection.Run(ConnectionType, (h) =>
{
var dal = h.Fogadoora(GridParameters);
return dal.GetFogadooraOsztalyCsoportok(TanevId, FelhasznaloId, isSzuperOsztalyfonok);
});
}
private int InsertNewFogadoora(IDalHandler h, FogadooraCo fogadooraCo)
{
if (fogadooraCo.Rendszeresseg == (int)FogadooraRendszeressegEnum.EgyAlkalom)
{
return InsertFogadoora(h, fogadooraCo);
}
return InsertFogadooraTobbalkalom(h, fogadooraCo);
}
public Dictionary<string, string> SaveFogadoora(FogadooraCo fogadooraCo)
{
return Dal.CustomConnection.Run(ConnectionType, (h) =>
{
var tanevCO = new TanevHelper(new DalHandlerConnectionType(ConnectionType, h)).GetTanevInfo();
var isIdopontUjraGeneralasKell = false;
var validateDictionary = ValidateFogadoora(fogadooraCo);
if (validateDictionary.Any())
{
return validateDictionary;
}
if (fogadooraCo.Id.HasValue)
{
var gondviseloDs = GetGondviselokByFogadooraId(h, fogadooraCo.Id.Value);
var oldFogadooraCo = GetFogadooraById(h, fogadooraCo.Id.Value);
fogadooraCo.FaliujsagId = oldFogadooraCo.FaliujsagId;
fogadooraCo.GroupId = oldFogadooraCo.GroupId;
fogadooraCo.FaliujsagId = oldFogadooraCo.FaliujsagId;
fogadooraCo.Rendszeresseg = oldFogadooraCo.Rendszeresseg;
var lista = new List<(int Id, DateTime Idopont)>();
isIdopontUjraGeneralasKell = IsIdopontUjraGeneralasKell(h, fogadooraCo.Id.Value, fogadooraCo.JelentkezesekKezelese, fogadooraCo.IsIdosavraOsztas.Value, fogadooraCo.EgysegnyiIdopontok, fogadooraCo.FogadoOraKezdete, fogadooraCo.FogadoOraVege);
switch (fogadooraCo.ModositasiIdoszakTipus)
{
case (int)OraModositasiIdoszakTipus.TeljesIdoszak:
lista = GetFogadooraIdAndKezdeteByGroupIdList(h, oldFogadooraCo.GroupId, DateTime.Now, tanevCO.UtolsoTanitasiNap);
break;
case (int)OraModositasiIdoszakTipus.AdottNaptol:
lista = GetFogadooraIdAndKezdeteByGroupIdList(h, oldFogadooraCo.GroupId, fogadooraCo.FogadoOraDatuma, tanevCO.UtolsoTanitasiNap);
break;
case (int)OraModositasiIdoszakTipus.AdottNapig:
lista = GetFogadooraIdAndKezdeteByGroupIdList(h, oldFogadooraCo.GroupId, DateTime.Now, fogadooraCo.FogadoOraDatuma);
break;
case (int)OraModositasiIdoszakTipus.EgyOra:
lista.Add((fogadooraCo.Id.Value, fogadooraCo.FogadoOraKezdete));
fogadooraCo.Rendszeresseg = 0;
break;
}
bool isEgyalkalom = lista.Count < 2;
UpdateFogadoora(h, lista, fogadooraCo, isIdopontUjraGeneralasKell);
if (isIdopontUjraGeneralasKell || oldFogadooraCo.TeremId != fogadooraCo.TeremId)
{
var elsoAlkalomDatuma = GetRendszeresModifyDeleteElsoDatum(lista).Date;
var oldFogadooraKezdete = elsoAlkalomDatuma.AddHours(oldFogadooraCo.FogadoOraKezdete.Hour).AddMinutes(oldFogadooraCo.FogadoOraKezdete.Minute);
var oldFogadooraVege = elsoAlkalomDatuma.AddHours(oldFogadooraCo.FogadoOraVege.Hour).AddMinutes(oldFogadooraCo.FogadoOraVege.Minute);
var newFogadooraKezdete = elsoAlkalomDatuma.AddHours(fogadooraCo.FogadoOraKezdete.Hour).AddMinutes(fogadooraCo.FogadoOraKezdete.Minute);
var newFogadooraVege = elsoAlkalomDatuma.AddHours(fogadooraCo.FogadoOraVege.Hour).AddMinutes(fogadooraCo.FogadoOraVege.Minute);
PedagogusModositottFogadooraEmailKuldes(h, fogadooraCo.TanarId, oldFogadooraCo.TeremId, fogadooraCo.TeremId, oldFogadooraKezdete, oldFogadooraVege, newFogadooraKezdete, newFogadooraVege, isEgyalkalom, fogadooraCo.Rendszeresseg, fogadooraCo.JelentkezesHatarideje);
GondviseloModositottFogadooraEmailKuldes(h, gondviseloDs, fogadooraCo.TanarId, oldFogadooraCo.TeremId, fogadooraCo.TeremId, oldFogadooraKezdete, oldFogadooraVege, newFogadooraKezdete, newFogadooraVege, isEgyalkalom, fogadooraCo.Rendszeresseg, fogadooraCo.JelentkezesHatarideje);
if (fogadooraCo.IsFaliujsagonMegjelenjen) //beállítástól függjön?
{
fogadooraCo.Id = fogadooraCo.GroupId;
SaveModositottFogadooraFaliujsag(h, fogadooraCo, fogadooraCo.TeremId, newFogadooraKezdete, newFogadooraVege, isEgyalkalom);
}
}
}
else
{
var newFogadooraKezdete = fogadooraCo.RendszeresFogadooraElsoDatuma?.AddHours(fogadooraCo.FogadoOraKezdete.Hour).AddMinutes(fogadooraCo.FogadoOraKezdete.Minute) ?? fogadooraCo.FogadoOraKezdete;
var newFogadooraVege = fogadooraCo.RendszeresFogadooraUtolsoDatuma?.AddHours(fogadooraCo.FogadoOraVege.Hour).AddMinutes(fogadooraCo.FogadoOraVege.Minute) ?? fogadooraCo.FogadoOraVege;
var groupId = InsertNewFogadoora(h, fogadooraCo);
PedagogusUjFogadooraEmailKuldes(h, groupId, fogadooraCo.TanarId, fogadooraCo.TeremId, newFogadooraKezdete, newFogadooraVege, fogadooraCo.Rendszeresseg, fogadooraCo.EgysegnyiIdopontok, fogadooraCo.FogadooraTipusEnumId, fogadooraCo.JelentkezesHatarideje, isIdosavraOsztas: fogadooraCo.IsIdosavraOsztas);
GondviseloUjFogadooraEmailKuldes(h, groupId, fogadooraCo.TanarId, fogadooraCo.TeremId, newFogadooraKezdete, newFogadooraVege, fogadooraCo.Rendszeresseg, fogadooraCo.EgysegnyiIdopontok, fogadooraCo.JelentkezesHatarideje, isIdosavraOsztas: fogadooraCo.IsIdosavraOsztas);
if (fogadooraCo.IsFaliujsagonMegjelenjen) //beállítástól függjön?
{
fogadooraCo.Id = groupId;
SaveUjFogadooraFaliujsag(h, fogadooraCo, tanevCO.OraFelvetelKezdete, tanevCO.UtolsoTanitasiNap, newFogadooraKezdete, newFogadooraVege);
}
}
return validateDictionary;
});
}
private Dictionary<string, string> ValidateFogadoora(FogadooraCo fogadooraCo)
{
Dictionary<string, string> modelStateDictionary = new Dictionary<string, string>();
if (fogadooraCo.FogadoOraKezdete >= fogadooraCo.FogadoOraVege)
{
modelStateDictionary.Add(nameof(fogadooraCo.FogadoOraVege), FogadooraResource.AFogadooraVegeIdopontjaNemLehetKorabbanMintaKezdoIdopont);
}
if (new DateTime(fogadooraCo.FogadoOraDatuma.Year, fogadooraCo.FogadoOraDatuma.Month, fogadooraCo.FogadoOraDatuma.Day, fogadooraCo.FogadoOraKezdete.Hour, fogadooraCo.FogadoOraKezdete.Minute, fogadooraCo.FogadoOraKezdete.Second) <= DateTime.Now)
{
modelStateDictionary.Add(nameof(fogadooraCo.FogadoOraKezdete), FogadooraResource.FogadooraCreateIsFutureError);
}
if (fogadooraCo.SelectedOsztalyCsoportIdList.Count == 0)
{
modelStateDictionary.Add(nameof(fogadooraCo.SelectedOsztalyCsoportIdList), FogadooraResource.NincsBeallitvaCsoportvagyOsztalyAFogadoorahoz);
}
if ((int)FogadooraRendszeressegEnum.Egyedi == fogadooraCo.Rendszeresseg && !fogadooraCo.Id.HasValue)
{
if (!fogadooraCo.FogadooraDatumList.Any())
{
modelStateDictionary.Add(nameof(fogadooraCo.FogadooraDatumList), FogadooraResource.EgyediRendszeresseguFogadooranalLegalabbEgyIdopontKivalasztasaKotelezo);
}
}
var span = fogadooraCo.FogadoOraVege.Subtract(fogadooraCo.FogadoOraKezdete);
var oraHoszaInMinutes = span.Hours * 60 + span.Minutes;
if (fogadooraCo.JelentkezesekKezelese && fogadooraCo.IsIdosavraOsztas.HasValue && fogadooraCo.IsIdosavraOsztas.Value && oraHoszaInMinutes < fogadooraCo.EgysegnyiIdopontok)
{
modelStateDictionary.Add(nameof(fogadooraCo.EgysegnyiIdopontok), FogadooraResource.FogadooraIdotartamaKevesebbMintAzEgysegnyiIdopontok);
}
if (oraHoszaInMinutes < 15)
{
modelStateDictionary.Add(nameof(oraHoszaInMinutes), FogadooraResource.OraHosszaNemLehet15PercnelRovidebb);
}
var rendszeressegTipusList = new List<int> { (int)FogadooraRendszeressegEnum.Heti, (int)FogadooraRendszeressegEnum.HetirendAlapu };
if (!fogadooraCo.Id.HasValue && rendszeressegTipusList.Contains(fogadooraCo.Rendszeresseg) && fogadooraCo.RendszeresFogadooraElsoDatuma >= fogadooraCo.RendszeresFogadooraUtolsoDatuma)
{
modelStateDictionary.Add(nameof(fogadooraCo.RendszeresFogadooraUtolsoDatuma), FogadooraResource.AFogadooraUtolsoDatumaNemLehetKorabbanMintAzElsoDatuma);
}
if (!fogadooraCo.Id.HasValue && (rendszeressegTipusList.Contains(fogadooraCo.Rendszeresseg) && fogadooraCo.RendszeresFogadooraElsoDatuma <= DateTime.Today || fogadooraCo.FogadooraDatumList.Any(x => x <= DateTime.Today)))
{
modelStateDictionary.Add(nameof(fogadooraCo.RendszeresFogadooraElsoDatuma), FogadooraResource.FogadooraFelivetleCsakJovobeliDatumraLehetseges);
}
if (fogadooraCo.IsFaliujsagonMegjelenjen && (fogadooraCo.FaliujsagErvenyessegKezdete >= fogadooraCo.FaliujsagErvenyessegVege))
{
modelStateDictionary.Add(nameof(fogadooraCo.FaliujsagErvenyessegVege), FogadooraResource.AFaliujsagVegeIdopontjaNemLehetKorabbanMintaKezdoIdopont);
}
return modelStateDictionary;
}
private int PreUpdateFogadoora(IDalHandler h, FogadooraCo fogadooraCo, List<DateTime> modositottIdopontok = null)
{
return InsertFogadooraTobbalkalom(h, fogadooraCo, modositottIdopontok, fogadooraCo.GroupId);
}
private int InsertFogadoora(IDalHandler h, FogadooraCo fogadooraCo, int groupId = -1)
{
var dal = h.Fogadoora(GridParameters);
var entity = dal.Get();
entity.FogadooraKezdete = fogadooraCo.FogadoOraKezdete;
entity.FogadooraVege = fogadooraCo.FogadoOraVege;
entity.Rendszeresseg = fogadooraCo.Rendszeresseg;
entity.FogadooraTipusId = fogadooraCo.FogadooraTipusEnumId;
entity.TanarId = fogadooraCo.TanarId;
entity.TeremId = fogadooraCo.TeremId;
entity.Egyseg = fogadooraCo.EgysegnyiIdopontok;
if (fogadooraCo.JelentkezesHatarideje.HasValue)
{
entity.JelentkezesHatarido = fogadooraCo.FogadoOraKezdete.AddHours(-fogadooraCo.JelentkezesHatarideje.Value);
}
if (fogadooraCo.FaliujsagId.IsEntityId())
{
entity.TanuloEsemenyId = fogadooraCo.FaliujsagId;
}
InsertNemkotottMunkaido(h, fogadooraCo);
if (groupId < 0)
{
var entityId = dal.Insert(entity);
dal.UpdateFogadooraGroupId(entityId, entityId);
}
else
{
entity.GroupId = groupId;
dal.Insert(entity);
}
foreach (var osztalyCsoportId in fogadooraCo.SelectedOsztalyCsoportIdList)
{
var focs = dal.GetFogadooraOsztalyCsoport();
focs.FogadooraId = entity.ID;
focs.OsztalyCsoportId = osztalyCsoportId;
dal.Insert(focs);
}
if (fogadooraCo.JelentkezesekKezelese)
{
if (fogadooraCo.IsIdosavraOsztas == true)
{
int fogadooraSzeletekSzama = CalculateFogadooraIdoszeletekSzama(fogadooraCo);
if (fogadooraSzeletekSzama != 0)
{
var add = 0;
for (int i = 1; i < fogadooraSzeletekSzama + 1; i++)
{
var fi = dal.GetFogadooraIdopont();
fi.Kezdete = fogadooraCo.FogadoOraKezdete.AddMinutes(add);
fi.Vege = fogadooraCo.FogadoOraKezdete.AddMinutes(i * fogadooraCo.EgysegnyiIdopontok);
add = i * fogadooraCo.EgysegnyiIdopontok;
fi.FogadooraId = entity.ID;
dal.Insert(fi);
}
}
else
{
var fi = dal.GetFogadooraIdopont();
fi.Kezdete = fogadooraCo.FogadoOraKezdete;
fi.Vege = fogadooraCo.FogadoOraVege;
fi.FogadooraId = entity.ID;
dal.Insert(fi);
}
}
else
{
var fi = dal.GetFogadooraIdopont();
fi.Kezdete = fogadooraCo.FogadoOraKezdete;
fi.Vege = fogadooraCo.FogadoOraVege;
fi.FogadooraId = entity.ID;
dal.Insert(fi);
}
}
return entity.ID;
}
private void UpdateFogadoora(IDalHandler h, List<(int Id, DateTime Idopont)> fogadooraIdList, FogadooraCo fogadooraCo, bool IsIdopontUjraGeneralasKell)
{
var dal = h.Fogadoora(GridParameters);
if (IsIdopontUjraGeneralasKell)
{
foreach (var (Id, Idopont) in fogadooraIdList)
{
dal.DeleteFogadoora(Id);
}
PreUpdateFogadoora(h, fogadooraCo, fogadooraIdList.Select(x => x.Idopont).ToList());
}
else
{
var maradekElemek = GetFogadooraOsztalyCsoportMaradekElemek(h, fogadooraCo.GroupId);
bool ujonnanFelvettOsztalycsoportokMailjeiKikuldve = false;
foreach (var (Id, Idopont) in fogadooraIdList)
{
var entity = dal.Get(Id);
entity.TeremId = fogadooraCo.TeremId;
entity.TanuloEsemenyId = fogadooraCo.FaliujsagId;
if (fogadooraCo.JelentkezesHatarideje.HasValue)
{
entity.JelentkezesHatarido = fogadooraCo.FogadoOraKezdete.AddHours(-fogadooraCo.JelentkezesHatarideje.Value);
}
dal.FullUpdate(entity);
var jelentkezesHatarideje = entity.JelentkezesHatarido.HasValue ? (int?)(entity.FogadooraKezdete - entity.JelentkezesHatarido.Value).TotalHours : null;
// újonnan felvett osztálycsoportok
foreach (var osztalyCsoportId in fogadooraCo.SelectedOsztalyCsoportIdList.Except(entity.Fogadoora_OsztalyCsoport.Where(x => !x.Torolt).Select(y => y.OsztalyCsoportId)))
{
var focs = dal.GetFogadooraOsztalyCsoport();
focs.FogadooraId = entity.ID;
focs.OsztalyCsoportId = osztalyCsoportId;
dal.Insert(focs);
if (!ujonnanFelvettOsztalycsoportokMailjeiKikuldve)
{
GondviseloUjFogadooraEmailKuldes(h, Id, entity.TanarId, entity.TeremId, entity.FogadooraKezdete, entity.FogadooraVege, entity.Rendszeresseg, entity.Egyseg ?? 0, jelentkezesHatarideje, osztalyCsoportId, isIdosavraOsztas: fogadooraCo.IsIdosavraOsztas);
}
if (fogadooraCo.IsFaliujsagonMegjelenjen)
{
InsertOsztalyCsoportTanuloesemenyByFogadooraId(h, Id, osztalyCsoportId);
}
}
ujonnanFelvettOsztalycsoportokMailjeiKikuldve = true;
//eltávolított osztálycsoportok
foreach (var osztalyCsoportId in fogadooraCo.ModifiedOsztalyCsoportList.Where(x => x.Value == false).Select(x => x.Key))
{
var isEgyalkalom = fogadooraIdList.Count > 2;
DeleteFogadooraOsztalyCsoportByFogadooraIdOsztalyCsoportId(h, Id, osztalyCsoportId);
var ertesitendoGondviseloDS = DeleteGondviseloJelentkezesByFogadooraIdOsztalyCsoportId(h, Id, osztalyCsoportId);
GondviseloToroltFogadooraEmailKuldes(h, ertesitendoGondviseloDS, entity.TanarId, entity.TeremId, isEgyalkalom, entity.FogadooraKezdete, entity.FogadooraVege, entity.Rendszeresseg, jelentkezesHatarideje);
if (fogadooraCo.IsFaliujsagonMegjelenjen
&& (maradekElemek.AsEnumerable().First(x => x.Field<int>("OsztalyCsoportId") == osztalyCsoportId).Field<int>("Darab") == fogadooraIdList.Count))
{
DeleteOsztalyCsoportTanuloesemenyByFogadooraId(h, Id, osztalyCsoportId);
}
}
}
}
UpdateFaliujsag(h, fogadooraCo);
}
private void UpdateFaliujsag(IDalHandler h, FogadooraCo co)
{
var tanevCo = new TanevHelper(new DalHandlerConnectionType(ConnectionType, h)).GetTanevInfo();
var fogadooraList = GetFogadooraIdAndKezdeteByGroupIdList(h, co.GroupId, tanevCo.OraFelvetelKezdete, tanevCo.UtolsoTanitasiNap);
var faliujsagDal = h.Feljegyzes();
if (co.FaliujsagId.IsEntityId())
{
var faliujsagEntity = faliujsagDal.Get(co.FaliujsagId);
faliujsagEntity.Kezdete = co.FaliujsagErvenyessegKezdete;
faliujsagEntity.Vege = co.FaliujsagErvenyessegVege;
faliujsagDal.FullUpdate(faliujsagEntity);
}
var fogadooraDal = h.Fogadoora();
if (!co.IsFaliujsagonMegjelenjen && co.FaliujsagId.IsEntityId())
{
foreach (var (Id, _) in fogadooraList)
{
var fogadooraEntity = fogadooraDal.Get(Id);
fogadooraEntity.TanuloEsemeny = null;
fogadooraDal.FullUpdate(fogadooraEntity);
}
faliujsagDal.DeleteFeljegyzes(co.FaliujsagId);
}
if (co.IsFaliujsagonMegjelenjen && !co.FaliujsagId.IsEntityId())
{
var newFogadooraKezdete = co.RendszeresFogadooraElsoDatuma?.AddHours(co.FogadoOraKezdete.Hour).AddMinutes(co.FogadoOraKezdete.Minute) ?? co.FogadoOraKezdete;
var newFogadooraVege = co.RendszeresFogadooraUtolsoDatuma?.AddHours(co.FogadoOraVege.Hour).AddMinutes(co.FogadoOraVege.Minute) ?? co.FogadoOraVege;
SaveUjFogadooraFaliujsag(h, co, tanevCo.OraFelvetelKezdete, tanevCo.UtolsoTanitasiNap, newFogadooraKezdete, newFogadooraVege);
}
}
private NemKotottMunkaidoCO CreateNemKotottMunkaidoCO(FogadooraCo model)
{
return new NemKotottMunkaidoCO()
{
Id = model.Id,
GroupId = Guid.NewGuid().ToString(),
TorvenyKategoriaId = (int)TevekenysegTipusEnum.egyeb,
TanarId = FelhasznaloId,
TulajId = FelhasznaloId,
Kezdete = model.FogadoOraKezdete,
Vege = model.FogadoOraVege,
Megtartott = false,
Megjegyzes = FogadooraResource.Fogadoora,
NaplozottMegjegyzes = FogadooraResource.Fogadoora,
HetirendId = (int)HetiRendTipusEnum.MindegyikHet
};
}
private void InsertNemkotottMunkaido(IDalHandler h, FogadooraCo model)
{
var nemKotottMunkaIdoCo = CreateNemKotottMunkaidoCO(model);
if (model.IsNemKotottMunkaido)
{
var nemKotottMunkaidoHelper = new NemKotottMunkaidoHelper(new DalHandlerConnectionType(ConnectionType, h));
nemKotottMunkaidoHelper.Insert(nemKotottMunkaIdoCo);
}
}
private int InsertFogadooraTobbalkalom(IDalHandler h, FogadooraCo fogadooraCo, List<DateTime> modositottIdopontok = null, int groupId = -1)
{
var fogadooraIdopontList = modositottIdopontok ?? GetFogadooraDatumList(h, fogadooraCo);
foreach (var fogadooraIdopont in fogadooraIdopontList)
{
fogadooraCo.FogadoOraKezdete =
new DateTime(fogadooraIdopont.Year, fogadooraIdopont.Month, fogadooraIdopont.Day, fogadooraCo.FogadoOraKezdete.Hour, fogadooraCo.FogadoOraKezdete.Minute, fogadooraCo.FogadoOraKezdete.Second);
fogadooraCo.FogadoOraVege =
new DateTime(fogadooraIdopont.Year, fogadooraIdopont.Month, fogadooraIdopont.Day, fogadooraCo.FogadoOraVege.Hour, fogadooraCo.FogadoOraVege.Minute, fogadooraCo.FogadoOraVege.Second);
if (groupId < 0)
{
groupId = InsertFogadoora(h, fogadooraCo, groupId); //A gruop id az első elem id-ja lesz
}
else
{
InsertFogadoora(h, fogadooraCo, groupId);
}
}
return groupId;
}
private List<DateTime> GetFogadooraDatumList(IDalHandler h, FogadooraCo fogadooraCo)
{
var fogadooraIdopontList = new List<DateTime>();
if (fogadooraCo.Rendszeresseg == (int)FogadooraRendszeressegEnum.EgyAlkalom)
{
fogadooraIdopontList.Add(fogadooraCo.FogadoOraDatuma);
}
else if (fogadooraCo.Rendszeresseg == (int)FogadooraRendszeressegEnum.Egyedi)
{
fogadooraIdopontList = fogadooraCo.FogadooraDatumList;
}
else
{
fogadooraIdopontList = GetFogadooraIdopontokByRendszeressegTipusEnum(h, fogadooraCo.RendszeresFogadooraElsoDatuma.Value, fogadooraCo.RendszeresFogadooraUtolsoDatuma, (FogadooraRendszeressegEnum)fogadooraCo.Rendszeresseg);
}
return fogadooraIdopontList;
}
public List<DateTime> GetFogadooraDatumList(FogadooraCo fogadooraCo)
{
return Dal.CustomConnection.Run(ConnectionType, (h) => GetFogadooraDatumList(h, fogadooraCo));
}
private int CalculateFogadooraIdoszeletekSzama(FogadooraCo fogadooraCo)
{
var szeletekSzama = 0;
if (fogadooraCo.EgysegnyiIdopontok != 0)
{
TimeSpan span = fogadooraCo.FogadoOraVege.Subtract(fogadooraCo.FogadoOraKezdete);
var minutes = span.Hours * 60 + span.Minutes;
szeletekSzama = minutes / fogadooraCo.EgysegnyiIdopontok;
}
return szeletekSzama;
}
private List<DateTime> GetFogadooraIdopontokByRendszeressegTipusEnum(IDalHandler h, DateTime datum, DateTime? rendszeresFogadooraUtolsoDatuma, FogadooraRendszeressegEnum rendszeressegEnum)
{
DateTime utolsoNap = rendszeresFogadooraUtolsoDatuma ?? new TanevrendHelper(new DalHandlerConnectionType(ConnectionType, h)).GetUtolsoTanitasiNapDate();
var dal = h.Fogadoora(GridParameters);
var ds = dal.GetFogadooraIdopontokByRendszeressegTipusId(TanevId, (int)rendszeressegEnum, datum, utolsoNap);
var result = ds.Tables[0].AsEnumerable().Select(x => SDAConvert.ToDateTime(x["Datum"]).Value).ToList();
return result;
}
public FogadooraCo GetFogadooraById(int fogadooraId)
{
return Dal.CustomConnection.Run(ConnectionType, h =>
{
return GetFogadooraById(h, fogadooraId);
});
}
private FogadooraCo GetFogadooraById(IDalHandler h, int fogadooraId)
{
var fogadoora = h.Fogadoora().Get(fogadooraId);
var result = ConvertEntityToCoFogadooraToCo(h, fogadoora);
return result;
}
private FogadooraCo ConvertEntityToCoFogadooraToCo(IDalHandler h, IFogadoora fogadoora)
{
var (kezdete, vege) = GetFaliujsagDetails(h, fogadoora);
return new FogadooraCo()
{
Id = fogadoora.ID,
Rendszeresseg = fogadoora.Rendszeresseg,
EgysegnyiIdopontok = fogadoora.Egyseg.Value,
IsIdosavraOsztas = fogadoora.FogadooraTipusId == (int)FogadooraTipusEnum.JelentkezhetoDarabolt,
FogadoOraDatuma = fogadoora.FogadooraKezdete,
FogadoOraKezdete = fogadoora.FogadooraKezdete,
FogadoOraVege = fogadoora.FogadooraVege,
FogadooraTipusEnumId = fogadoora.FogadooraTipusId,
JelentkezesekKezelese = (int)FogadooraTipusEnum.Jelentkezheto == fogadoora.FogadooraTipusId || (int)FogadooraTipusEnum.JelentkezhetoDarabolt == fogadoora.FogadooraTipusId,
TanarId = fogadoora.TanarId,
TeremId = fogadoora.TeremId,
SelectedOsztalyCsoportIdList = fogadoora.Fogadoora_OsztalyCsoport.Where(s => !s.Torolt).Select(x => x.OsztalyCsoportId).ToList(),
TeremNev = fogadoora.Terem.Nev,
GroupId = fogadoora.GroupId,
IsFaliujsagonMegjelenjen = fogadoora.TanuloEsemenyId.IsEntityId(),
FaliujsagErvenyessegKezdete = kezdete,
FaliujsagErvenyessegVege = vege,
FaliujsagId = fogadoora.TanuloEsemenyId,
JelentkezesHatarideje = fogadoora.JelentkezesHatarido.HasValue ? (int?)(fogadoora.FogadooraKezdete - fogadoora.JelentkezesHatarido.Value).TotalHours : null
};
}
private DateTime GetRendszeresModifyDeleteElsoDatum(List<(int Id, DateTime Idopont)> datumList)
{
var result = datumList.Select(x => x.Idopont).OrderBy(x => x.Date).FirstOrDefault();
return result;
}
private (DateTime kezdete, DateTime vege) GetFaliujsagDetails(IDalHandler h, IFogadoora fogadoora)
{
if (fogadoora.TanuloEsemenyId.IsEntityId())
{
return (fogadoora.TanuloEsemeny.Kezdete.Value, fogadoora.TanuloEsemeny.Vege.Value);
}
DateTime ervenyessegVege;
switch (fogadoora.Rendszeresseg)
{
case (int)FogadooraRendszeressegEnum.EgyAlkalom:
ervenyessegVege = fogadoora.FogadooraVege.Date.AddDays(1);
break;
case (int)FogadooraRendszeressegEnum.Heti:
case (int)FogadooraRendszeressegEnum.HetirendAlapu:
var helper = new TanevHelper(new DalHandlerConnectionType(ConnectionType, h));
ervenyessegVege = helper.GetTanevInfo().UtolsoNap;
break;
default:
ervenyessegVege = DateTime.Today.AddDays(1);
break;
}
return (DateTime.Today, ervenyessegVege);
}
private void DeleteFogadooraOsztalyCsoportByFogadooraIdOsztalyCsoportId(IDalHandler h, int fogadooraId, int osztalyCsoportId)
{
var dal = h.Fogadoora(GridParameters);
dal.DeleteFogadooraOsztalyCsoportByFogadooraIdOsztalyCsoportId(fogadooraId, osztalyCsoportId);
}
private void DeleteOsztalyCsoportTanuloesemenyByFogadooraId(IDalHandler h, int fogadooraId, int osztalyCsoportId)
{
var dal = h.Fogadoora(GridParameters);
dal.DeleteOsztalyCsoportTanuloesemenyByFogadooraId(fogadooraId, osztalyCsoportId);
}
private void InsertOsztalyCsoportTanuloesemenyByFogadooraId(IDalHandler h, int fogadooraId, int osztalyCsoportId)
{
var dal = h.Fogadoora(GridParameters);
dal.InsertOsztalyCsoportTanuloesemenyByFogadooraId(fogadooraId, osztalyCsoportId);
}
private DataSet DeleteGondviseloJelentkezesByFogadooraIdOsztalyCsoportId(IDalHandler h, int fogadooraId, int osztalyCsoportId)
{
var dal = h.Fogadoora(GridParameters);
return dal.DeleteFogadooraIdopontGondviseloByFogadooraIdOsztalyCsoportId(fogadooraId, osztalyCsoportId);
}
public DataSet GetFogadooraGondviselo(int gondviseloId, int? tanarId = null, int? teremId = null, DateTime? start = null, DateTime? end = null, DateTime? startTime = null, DateTime? endTime = null, bool? isJelentkezheto = null)
{
return Dal.CustomConnection.Run(ConnectionType, h =>
{
var dal = h.Fogadoora(GridParameters);
var dataSet = dal.GetFogadooraGondviselo(
IntezmenyId,
TanevId,
gondviseloId,
tanarId,
teremId,
start,
end,
startTime,
endTime,
isJelentkezheto
);
var jelentkezettFogadoorak = dataSet.Tables[0].AsEnumerable()
.Where(x => (int)x["JelentkezesekKezeleseId"] == (int)FogadooraTipusEnum.JelentkezhetoDarabolt && !string.IsNullOrWhiteSpace(x["IdopontGondviseloId"].ToString()))
.Select(x => (int)x["ID"]).ToList();
var result = new DataSet();
var table = dataSet.Tables[0].Clone();
var data = dataSet.Tables[0].AsEnumerable();
foreach (var dataRow in data)
{
if (string.IsNullOrWhiteSpace(dataRow["IdopontStr"].ToString()))
{
dataRow["IdopontStr"] = FogadooraResource.NemLehetJelentkezni;
}
if (!(jelentkezettFogadoorak.Contains((int)dataRow["Id"]) && string.IsNullOrWhiteSpace(dataRow["IdopontGondviseloId"].ToString())))
{
if ((int)dataRow["JelentkezesekKezeleseId"] == (int)FogadooraTipusEnum.JelentkezhetoDarabolt
&& (int)dataRow["jelentkezesAllapot"] == 1 /*nem jelentkezett*/
&& (int)dataRow["SzabadIdopontokSzama"] == 0)
{
dataRow["JelentkezesekKezeleseId"] = ((int)FogadooraTipusEnum.NemJelentkezheto).ToString();
}
table.ImportRow(dataRow);
}
}
result.Tables.Add(table);
return result;
});
}
public DataSet GetFogadooraIdopontok(int fogadooraId, int gondviseloId, FogadooraTipusEnum? tipus = null)
{
var dataSet = Dal.CustomConnection.Run(ConnectionType, h =>
{
var dal = h.Fogadoora(GridParameters);
return dal.GetFogadooraIdopontok(
new List<int> { fogadooraId },
gondviseloId,
tipus
);
});
return dataSet;
}
public bool IsIdopontUjraGeneralasKell(int Id, bool isJelentkezesekKezelese, bool IsIdosavraOsztas, int egysegnyiIdopontok, DateTime kezdete, DateTime vege)
{
return Dal.CustomConnection.Run(ConnectionType, h => IsIdopontUjraGeneralasKell(h, Id, isJelentkezesekKezelese, IsIdosavraOsztas, egysegnyiIdopontok, kezdete, vege));
}
private bool IsIdopontUjraGeneralasKell(IDalHandler h, int Id, bool isJelentkezesekKezelese, bool IsIdosavraOsztas, int egysegnyiIdopontok, DateTime kezdete, DateTime vege)
{
var entity = h.Fogadoora().Get(Id);
var tipusId = isJelentkezesekKezelese ? (IsIdosavraOsztas ? (int)FogadooraTipusEnum.JelentkezhetoDarabolt : (int)FogadooraTipusEnum.Jelentkezheto) : (int)FogadooraTipusEnum.NemJelentkezheto;
var result = entity.FogadooraTipusId != tipusId
||
tipusId == (int)FogadooraTipusEnum.JelentkezhetoDarabolt && entity.Egyseg.HasValue && entity.Egyseg.Value != egysegnyiIdopontok
|| entity.FogadooraKezdete.Hour != kezdete.Hour || entity.FogadooraKezdete.Minute != kezdete.Minute || entity.FogadooraVege.Hour != vege.Hour || entity.FogadooraVege.Minute != vege.Minute;
return result;
}
/// INFO: Mobil használja
public void FogadooraGondviseloJelentkezes(int idopontId, int gondviseloId)
{
Dal.CustomConnection.Run(ConnectionType, (h) =>
{
var dal = h.Fogadoora(GridParameters);
var foig = dal.GetFogadooraIdopontGondviselo();
foig.FogadooraIdopontId = idopontId;
foig.GondviseloId = gondviseloId;
if (!foig.IntezmenyId.IsEntityId())
{
foig.IntezmenyId = IntezmenyId;
}
dal.Insert(foig);
//Email küldés jelentkezéskor
var fogadooraIdopont = dal.GetFogadooraIdopont(idopontId);
var fogadoora = fogadooraIdopont.Fogadoora;
string osztalyCsoportok = string.Join(", ", fogadoora.Fogadoora_OsztalyCsoport.Where(focs => focs.OsztalyCsoport.Tanulo.Any(tcs => tcs.Tanulo.Gondviselo.Any(g => g.ID == gondviseloId && !g.Torolt) && !tcs.Torolt) && !focs.Torolt).Select(focs => focs.OsztalyCsoport.Nev));
PedagogusFogadooraJelentkezesEmailKuldes(h, fogadoora.TanarId, fogadoora.TeremId, gondviseloId, fogadooraIdopont.Kezdete, fogadooraIdopont.Vege, foig.Gondviselo.TanuloId, osztalyCsoportok);
GondviseloSikeresJelentkezesEmailKuldes(h, fogadoora.TanarId, fogadoora.TeremId, gondviseloId, fogadooraIdopont.Kezdete, fogadooraIdopont.Vege, foig.Gondviselo.TanuloId, osztalyCsoportok);
});
}
/// INFO: Mobil használja
public void FogadooraGondviseloJelentkezesLemondas(int idopontId, int gondviseloId)
{
Dal.CustomConnection.Run(ConnectionType, (h) =>
{
var dal = h.Fogadoora(GridParameters);
var fogadooraIdopont = dal.GetFogadooraIdopont(idopontId);
var idopontGondviselo = fogadooraIdopont.FogadooraIdopont_Gondviselo.FirstOrDefault(x => x.GondviseloId == gondviseloId && !x.Torolt && !x.Gondviselo.Torolt);
if (idopontGondviselo != null)
{
FogadooraGondviseloJelentkezesLemondas(idopontGondviselo.ID);
}
});
}
public void FogadooraGondviseloJelentkezesLemondas(int idopontGondviseloId)
{
Dal.CustomConnection.Run(ConnectionType, (h) =>
{
var dal = h.Fogadoora(GridParameters);
var fogadooraIdopontGondviselo = dal.GetFogadooraIdopontGondviselo(idopontGondviseloId);
var fogadooraIdopont = dal.GetFogadooraIdopont(fogadooraIdopontGondviselo.FogadooraIdopontId);
var fogadoora = fogadooraIdopont.Fogadoora;
string osztalyCsoportok = string.Join(", ", fogadoora.Fogadoora_OsztalyCsoport.Where(focs => focs.OsztalyCsoport.Tanulo.Any(tcs => tcs.Tanulo.Gondviselo.Any(g => g.ID == fogadooraIdopontGondviselo.GondviseloId && !g.Torolt) && !tcs.Torolt) && !focs.Torolt).Select(focs => focs.OsztalyCsoport.Nev));
PedagogusFogadooraJelentkezesLemondasEmailKuldes(h, fogadoora.TanarId, fogadoora.TeremId, fogadooraIdopontGondviselo.GondviseloId, fogadooraIdopont.Kezdete, fogadooraIdopont.Vege, fogadooraIdopontGondviselo.Gondviselo.TanuloId, osztalyCsoportok);
dal.DeleteFogadooraIdopontGondviselo(idopontGondviseloId);
});
}
#region Email
private void FogadooraEmailKuldes(IDalHandler h, FogadooraEmailModel model)
=> new UzenetekHelper(new DalHandlerConnectionType(ConnectionType, h)).EmailKuldes(model.Message, model.Subject, model.EmailCim, model.EmailGuid);
private void FogadooraEmailekKuldese(IDalHandler h, List<FogadooraEmailModel> modelList)
=> new UzenetekHelper(new DalHandlerConnectionType(ConnectionType, h)).EmailekKuldese(modelList);
private string TanarNev(IDalHandler h, int tanarid)
=> new TanarHelper(new DalHandlerConnectionType(ConnectionType, h)).GetTanarNev(tanarid);
private string TanuloNev(IDalHandler h, int tanuloid)
=> new TanuloHelper(new DalHandlerConnectionType(ConnectionType, h)).GetTanuloNev(tanuloid);
private string GondviseloNev(IDalHandler h, int gondviseloId)
=> new TanuloHelper(new DalHandlerConnectionType(ConnectionType, h)).GetTanuloGondviseloById(gondviseloId).GondviseloNeve;
private (string email, Guid? guid) GetGondviseloEmailCimAndGuid(IDalHandler h, int gondviseloId)
=> new TanuloHelper(new DalHandlerConnectionType(ConnectionType, h)).GetGondviseloEmailCimAndGuid(gondviseloId);
private string TeremNev(IDalHandler h, int teremId)
=> new TeremHelper(new DalHandlerConnectionType(ConnectionType, h)).GetTeremNev(teremId);
private static IEmail TanarEmailCim(IDalHandler h, int tanarid)
{
var oTanar = h.Alkalmazott().Get(tanarid);
var emailList = oTanar.Email;
if (emailList.Any(x => x.Alapertelmezett && !x.Torolt && !x.IsHibasanMegadva))
{
return emailList.First(x => x.Alapertelmezett && !x.Torolt && !x.IsHibasanMegadva);
}
return emailList.Any(x => x.EmailTipusa == (int)EmailTipusEnum.Hivatalos && !x.Torolt && !x.IsHibasanMegadva)
? emailList.First(x => x.EmailTipusa == (int)EmailTipusEnum.Hivatalos && !x.Torolt && !x.IsHibasanMegadva)
: null;
}
private IntezmenyCO Intezmeny(IDalHandler h)
=> new IntezmenyHelper(new DalHandlerConnectionType(ConnectionType, h)).GetIntezmenyiAdatok();
private (string rendszeresseg, string idopont) FogadaooraDetails(int rendszeressegEnumId)
{
switch (rendszeressegEnumId)
{
case (int)FogadooraRendszeressegEnum.EgyAlkalom:
return (string.Empty, FogadooraResource.Idopont);
case (int)FogadooraRendszeressegEnum.Heti:
return (FogadooraResource.HetiRendszeressegu, FogadooraResource.ElsoAlkalomIdopontja);
case (int)FogadooraRendszeressegEnum.HetirendAlapu:
return (FogadooraResource.HetirendAlapuRendszeressegu, FogadooraResource.ElsoAlkalomIdopontja);
case (int)FogadooraRendszeressegEnum.Egyedi:
return (FogadooraResource.EgyediRendszeressegu, FogadooraResource.ElsoAlkalomIdopontja);
}
return (string.Empty, string.Empty);
}
private void PedagogusUjFogadooraEmailKuldes(IDalHandler h, int fogadooraId, int tanarId, int teremId, DateTime idopontKezdete, DateTime idopontVege, int rendszeressegId, int egysegnyiIdopontok, int fogadooraTipusEnumId, int? jelentkezesHatarideje, bool? isIdosavraOsztas = null)
{
if (GetProfileData(h, tanarId, "FogadooraEmailUj"))
{
var tanarNev = TanarNev(h, tanarId);
var teremNev = TeremNev(h, teremId);
var (rendszeresseg, idopont) = FogadaooraDetails(rendszeressegId);
var fogadooraDetailList = (GetGondviselokByFogadooraId(h, fogadooraId)).Tables[0].AsEnumerable().Select(g => new { OsztalyNev = g["OsztalyNev"], FogadooraJelentkezesTipus = g["FogadooraJelentkezesTipusa"] });
string KiirtOsztalyok = string.Join(", ", from osztaly in fogadooraDetailList.Select(s => s.OsztalyNev).Distinct().ToList() select osztaly);
string idosavraOsztasSzoveg = string.Empty;
if (isIdosavraOsztas.HasValue && isIdosavraOsztas.Value)
{
idosavraOsztasSzoveg = string.Format(EmailResource.UjFogadooraEmailTartalomIdosavraOsztasSzoveg, egysegnyiIdopontok);
}
IEmail email = TanarEmailCim(h, tanarId);
var emailModel = new FogadooraEmailModel
{
Message = string.Format(EmailResource.UjFogadooraPedagogusEmailTartalom,
tanarNev,
rendszeresseg,
idopont,
GetFogadooraIdopontIntervallum(idopontKezdete, idopontVege, true),
idosavraOsztasSzoveg,
fogadooraTipusEnumId != 0 ? EmailResource.Tudnak : EmailResource.NemTudnak,
GetJelentkezesiHataridoText(jelentkezesHatarideje),
teremNev,
tanarNev,
KiirtOsztalyok),
Subject = $"{EmailResource.UjFogadoora} - {idopontKezdete.ToShortDateString()} - {KiirtOsztalyok} osztály/csoport",
EmailCim = email?.EmailCim,
EmailGuid = email?.Guid
};
FogadooraEmailKuldes(h, emailModel);
}
}
public void GondviseloUjFogadooraEmailKuldes(IDalHandler h, int fogadooraId, int tanarId, int teremId, DateTime idopontKezdete, DateTime idopontVege, int rendszeressegId, int egysegnyiIdopontok, int? jelentkezesHatarideje, int? osztalyCsoportId = null, bool? isIdosavraOsztas = null)
{
var tanarNev = TanarNev(h, tanarId);
var teremNev = TeremNev(h, teremId);
var (rendszeresseg, idopont) = FogadaooraDetails(rendszeressegId);
var jelentkezesHataridejeText = GetJelentkezesiHataridoText(jelentkezesHatarideje);
var ds = new DataSet();
if (!osztalyCsoportId.HasValue)
{
ds = GetGondviselokByFogadooraId(h, fogadooraId);
}
else
{
ds = GetGondviselokByFogadooraIdAndOsztalyCsoportId(h, fogadooraId, osztalyCsoportId.Value);
}
if (ds.Tables[0].Rows.Count > 0)
{
var fogadooraDetailList = ds.Tables[0].AsEnumerable()
.Select(g => new
{
FogadooraJelentkezesTipus = g["FogadooraJelentkezesTipusa"],
Id = g["GondviseloId"],
EmailCim = g["GondviseloEmailCim"],
EmailGuid = SDAConvert.ToNullableGuid(g["GondviseloEmailGuid"]),
Nev = g["GondviseloNev"],
TanuloId = g["TanuloId"],
TanuloNev = g["TanuloNev"],
OsztalyNev = g["OsztalyNev"],
IsProfilFogadooraEmailUj = SDAConvert.ToBoolean(g["FogadooraEmailUj"], true)
});
bool IsJelentkezesLehetseges = ((int)fogadooraDetailList.Select(s => s.FogadooraJelentkezesTipus).First() > 0);
string idosavraOsztasSzoveg = string.Empty;
if (isIdosavraOsztas.HasValue && isIdosavraOsztas.Value)
{
idosavraOsztasSzoveg = string.Format(EmailResource.UjFogadooraEmailTartalomIdosavraOsztasSzoveg, egysegnyiIdopontok);
}
string fogadooraIdopontIntervallum = GetFogadooraIdopontIntervallum(idopontKezdete, idopontVege, true);
string emailTartalomPluszHaLehetJelentkezni = IsJelentkezesLehetseges ? isIdosavraOsztas.ToBool() ? EmailResource.UjFogadooraGondviseloEmailTartalomPlusTextHaLehetJelentkeni : EmailResource.UjFogadooraGondviseloEmailTartalomPlusTextHaLehetJelentkeniDeNincsIdosav : ".";
var emailModelList = new List<FogadooraEmailModel>();
foreach (var fogadooraDetail in fogadooraDetailList)
{
if (fogadooraDetail.IsProfilFogadooraEmailUj && !string.IsNullOrWhiteSpace((string)fogadooraDetail.EmailCim) && ((string)fogadooraDetail.EmailCim).IsValidEmail())
{
var gondviseloNev = fogadooraDetail.Nev.ToString();
var gondviseloEmailCim = fogadooraDetail.EmailCim.ToString();
var emailModel = new FogadooraEmailModel
{
Message = string.Format(EmailResource.UjFogadooraGondviseloEmailTartalom,
gondviseloNev,
rendszeresseg,
idopont,
fogadooraIdopontIntervallum,
idosavraOsztasSzoveg,
emailTartalomPluszHaLehetJelentkezni,
jelentkezesHataridejeText,
teremNev,
tanarNev,
fogadooraDetail.TanuloNev.ToString(),
fogadooraDetail.OsztalyNev.ToString()),
Subject = $"{EmailResource.UjFogadoora} - {idopontKezdete.ToShortDateString()} - {fogadooraDetail.TanuloNev} - {fogadooraDetail.OsztalyNev}",
EmailCim = gondviseloEmailCim,
EmailGuid = fogadooraDetail.EmailGuid
};
emailModelList.Add(emailModel);
}
}
if (emailModelList.Count > 0)
{
FogadooraEmailekKuldese(h, emailModelList);
}
}
}
private int GetHetNapja(DateTime date)
{
HetNapjaTipusEnum hetNapja = HetNapjaTipusEnum.na;
switch (date.DayOfWeek)
{
case DayOfWeek.Monday:
hetNapja = HetNapjaTipusEnum.Hetfo;
break;
case DayOfWeek.Tuesday:
hetNapja = HetNapjaTipusEnum.Kedd;
break;
case DayOfWeek.Wednesday:
hetNapja = HetNapjaTipusEnum.Szerda;
break;
case DayOfWeek.Thursday:
hetNapja = HetNapjaTipusEnum.Csutortok;
break;
case DayOfWeek.Friday:
hetNapja = HetNapjaTipusEnum.Pentek;
break;
case DayOfWeek.Saturday:
hetNapja = HetNapjaTipusEnum.Szombat;
break;
case DayOfWeek.Sunday:
hetNapja = HetNapjaTipusEnum.Vasarnap;
break;
}
return (int)hetNapja;
}
private string GetHetnapja(DateTime date)
=> GetHetNapja(date).GetItemNameFromCache(TanevId).ToLower();
private void PedagogusToroltFogadooraEmailKuldes(IDalHandler h, int tanarId, int teremId, bool isEgyalkalom, DateTime idopontKezdete, DateTime idopontVege, int rendszeressegId, int? jelentkezesHatarideje)
{
if (GetProfileData(h, tanarId, "FogadooraEmailTorles"))
{
var tanarNev = TanarNev(h, tanarId);
var teremNev = TeremNev(h, teremId);
var (rendszeresseg, idopont) = FogadaooraDetails(isEgyalkalom ? (int)FogadooraRendszeressegEnum.EgyAlkalom : rendszeressegId);
var idopontSzoveg = GetFogadooraIdopontIntervallum(idopontKezdete, idopontVege, true);
var message = string.Format(EmailResource.LemondottFogadooraTartalom, tanarNev, rendszeresseg, idopont, idopontSzoveg, GetJelentkezesiHataridoText(jelentkezesHatarideje), teremNev, tanarNev);
IEmail email = TanarEmailCim(h, tanarId);
var emailModel = new FogadooraEmailModel
{
Message = message,
Subject = $"{EmailResource.LemondottFogadoora} - {tanarNev}",
EmailCim = email?.EmailCim,
EmailGuid = email?.Guid
};
FogadooraEmailKuldes(h, emailModel);
}
}
private void GondviseloToroltFogadooraEmailKuldes(IDalHandler h, DataSet gondviseloDs, int tanarId, int teremId, bool isEgyalkalom, DateTime idopontKezdete, DateTime idopontVege, int rendszeressegId, int? jelentkezesHatarideje)
{
var tanarNev = TanarNev(h, tanarId);
var teremNev = TeremNev(h, teremId);
var (rendszeresseg, idopont) = FogadaooraDetails(isEgyalkalom ? (int)FogadooraRendszeressegEnum.EgyAlkalom : rendszeressegId);
var idopontSzoveg = GetFogadooraIdopontIntervallum(idopontKezdete, idopontVege, true);
var jelentkezesHataridejeText = GetJelentkezesiHataridoText(jelentkezesHatarideje);
var gondviseloList = gondviseloDs.Tables[0].AsEnumerable()
.Select(g => new
{
Id = g.Field<int>("GondviseloId"),
EmailCim = g.Field<string>("GondviseloEmailCim"),
EmailGuid = g.Field<Guid?>("GondviseloEmailGuid"),
Nev = g.Field<string>("GondviseloNev"),
TanuloId = g.Field<int>("TanuloId")
});
foreach (var gondviselo in gondviseloList.Where(g => !string.IsNullOrWhiteSpace(g.EmailCim)))
{
if (GetProfileData(h, (int)gondviselo.TanuloId, "FogadooraEmailTorles"))
{
var emailModel = new FogadooraEmailModel
{
Message = string.Format(EmailResource.LemondottFogadooraTartalom, gondviselo.Nev, rendszeresseg, idopont, idopontSzoveg, jelentkezesHataridejeText, teremNev, tanarNev),
Subject = $"{EmailResource.LemondottFogadoora} - {idopontKezdete.ToShortDateString()} - {tanarNev}",
EmailCim = gondviselo.EmailCim,
EmailGuid = gondviselo.EmailGuid
};
FogadooraEmailKuldes(h, emailModel);
}
}
}
private void PedagogusModositottFogadooraEmailKuldes(IDalHandler h, int tanarId, int oldaTeremId, int newTeremId, DateTime oldIdopontKezdete, DateTime oldIdopontVege, DateTime newIdopontKezdete, DateTime newIdopontVege, bool isEgyalkalom, int rendszeressegId, int? jelentkezesHatarideje)
{
if (GetProfileData(h, tanarId, "FogadooraEmailUj"))
{
var oldTeremNev = TeremNev(h, oldaTeremId);
var teremText = oldaTeremId != newTeremId ? $"<s>({oldTeremNev})</s> <b>{TeremNev(h, newTeremId)}</b>" : $"<b>{oldTeremNev}</b>";
var tanarNev = TanarNev(h, tanarId);
var (rendszeresseg, idopont) = FogadaooraDetails(isEgyalkalom ? (int)FogadooraRendszeressegEnum.EgyAlkalom : rendszeressegId);
var idopontText = oldIdopontKezdete != newIdopontKezdete || oldIdopontVege != newIdopontVege ?
$"(<s>{GetFogadooraIdopontIntervallum(oldIdopontKezdete, oldIdopontVege)}</s>) <b>{GetFogadooraIdopontIntervallum(newIdopontKezdete, newIdopontVege, true)}</b>"
: $"<b>{GetFogadooraIdopontIntervallum(oldIdopontKezdete, oldIdopontVege, true)}</b>";
var message = string.Format(EmailResource.ModositottFogadooraTartalom, tanarNev, rendszeresseg, idopont, idopontText, GetJelentkezesiHataridoText(jelentkezesHatarideje), teremText, tanarNev);
IEmail email = TanarEmailCim(h, tanarId);
var emailModel = new FogadooraEmailModel
{
Message = message,
Subject = $"{EmailResource.ModositottFogadoora} - {tanarNev}",
EmailCim = email?.EmailCim,
EmailGuid = email?.Guid
};
FogadooraEmailKuldes(h, emailModel);
}
}
private void GondviseloModositottFogadooraEmailKuldes(IDalHandler h, DataSet gondviseloDs, int tanarId, int oldaTeremId, int newTeremId, DateTime oldIdopontKezdete, DateTime oldIdopontVege, DateTime newIdopontKezdete, DateTime newIdopontVege, bool isEgyalkalom, int rendszeressegId, int? jelentkezesHatarideje)
{
var oldTeremNev = TeremNev(h, oldaTeremId);
var teremText = oldaTeremId != newTeremId ? $"<s>({oldTeremNev})</s> <b>{TeremNev(h, newTeremId)}</b>" : $"<b>{oldTeremNev}</b>";
var tanarNev = TanarNev(h, tanarId);
var (rendszeresseg, idopont) = FogadaooraDetails(isEgyalkalom ? (int)FogadooraRendszeressegEnum.EgyAlkalom : rendszeressegId);
var idopontText = oldIdopontKezdete != newIdopontKezdete || oldIdopontVege != newIdopontVege ?
$"(<s>{GetFogadooraIdopontIntervallum(oldIdopontKezdete, oldIdopontVege)}</s>) <b>{GetFogadooraIdopontIntervallum(newIdopontKezdete, newIdopontVege, true)}</b>"
: $"<b>{GetFogadooraIdopontIntervallum(oldIdopontKezdete, oldIdopontVege, true)}</b>";
var jelentkezesHataridejeText = GetJelentkezesiHataridoText(jelentkezesHatarideje);
var gondviseloList = gondviseloDs.Tables[0].AsEnumerable()
.Select(g => new
{
Id = g.Field<int>("GondviseloId"),
EmailCim = g.Field<string>("GondviseloEmailCim"),
EmailGuid = g.Field<Guid?>("GondviseloEmailGuid"),
Nev = g.Field<string>("GondviseloNev"),
TanuloId = g.Field<int>("TanuloId")
});
foreach (var gondviselo in gondviseloList.Where(g => !string.IsNullOrWhiteSpace(g.EmailCim)))
{
if (GetProfileData(h, (int)gondviselo.TanuloId, "FogadooraEmailUj"))
{
var message = string.Format(EmailResource.ModositottFogadooraTartalom, gondviselo.Nev, rendszeresseg, idopont, idopontText, jelentkezesHataridejeText, teremText, tanarNev);
var emailModel = new FogadooraEmailModel
{
Message = message,
Subject = $"{EmailResource.ModositottFogadoora} - {tanarNev}",
EmailCim = gondviselo.EmailCim,
EmailGuid = gondviselo.EmailGuid
};
FogadooraEmailKuldes(h, emailModel);
}
}
}
private void PedagogusFogadooraJelentkezesEmailKuldes(IDalHandler h, int tanarId, int teremId, int gondviseloId, DateTime idopont, DateTime idopontVege, int tanuloId, string osztalyCsoportok)
{
if (GetProfileData(h, tanarId, "FogadooraEmailJelentkezes"))
{
var tanarNev = TanarNev(h, tanarId);
var teremNev = TeremNev(h, teremId);
var gondviseloNev = GondviseloNev(h, gondviseloId);
var tanuloNev = TanuloNev(h, tanuloId);
var intezmenyCO = Intezmeny(h);
var intezmenyUrl = Utils.CommonUtils.GetIntezmenyUrl(intezmenyCO.IntezmenyAzonosito);
var intezmenyNev = intezmenyCO.Nev;
var intezmenyCim = intezmenyCO.IntezmenyCim;
IEmail email = TanarEmailCim(h, tanarId);
var emailModel = new FogadooraEmailModel
{
Message = string.Format(EmailResource.JelentkezesFogadoorara, tanarNev, idopont, teremNev, gondviseloNev, idopontVege, tanuloNev, osztalyCsoportok, intezmenyUrl, intezmenyNev, intezmenyCim),
Subject = $"{EmailResource.FogadooraJelentkezes} - {idopont} - {gondviseloNev}",
EmailCim = email?.EmailCim,
EmailGuid = email?.Guid
};
FogadooraEmailKuldes(h, emailModel);
}
}
private void PedagogusFogadooraJelentkezesLemondasEmailKuldes(IDalHandler h, int tanarId, int teremId, int gondviseloId, DateTime idopont, DateTime idopontVege, int tanuloId, string osztalyCsoportok)
{
if (GetProfileData(h, tanarId, "FogadooraEmailJelentkezesLemondas"))
{
var tanarNev = TanarNev(h, tanarId);
var teremNev = TeremNev(h, teremId);
var gondviseloNev = GondviseloNev(h, gondviseloId);
var tanuloNev = TanuloNev(h, tanuloId);
var intezmenyCO = Intezmeny(h);
var intezmenyUrl = Utils.CommonUtils.GetIntezmenyUrl(intezmenyCO.IntezmenyAzonosito);
var intezmenyNev = intezmenyCO.Nev;
var intezmenyCim = intezmenyCO.IntezmenyCim;
IEmail email = TanarEmailCim(h, tanarId);
var emailModel = new FogadooraEmailModel
{
Message = string.Format(EmailResource.JelentkezesLemondasFogadoorara, tanarNev, idopont, teremNev, gondviseloNev, idopontVege, tanuloNev, osztalyCsoportok, intezmenyUrl, intezmenyNev, intezmenyCim),
Subject = $"{EmailResource.FogadooraJelentkezesLemondas} - {idopont} - {gondviseloNev}",
EmailCim = email?.EmailCim,
EmailGuid = email?.Guid
};
FogadooraEmailKuldes(h, emailModel);
}
}
private void GondviseloSikeresJelentkezesEmailKuldes(IDalHandler h, int tanarId, int teremId, int gondviseloId, DateTime idopont, DateTime idopontVege, int tanuloId, string osztalyCsoportok)
{
if (GetProfileData(h, tanuloId, "FogadooraEmailJelentkezes"))
{
var tanarNev = TanarNev(h, tanarId);
var teremNev = TeremNev(h, teremId);
var gondviseloNev = GondviseloNev(h, gondviseloId);
var tanuloNev = TanuloNev(h, tanuloId);
var intezmenyCO = Intezmeny(h);
var intezmenyUrl = Utils.CommonUtils.GetIntezmenyUrl(intezmenyCO.IntezmenyAzonosito);
var intezmenyNev = intezmenyCO.Nev;
var intezmenyCim = intezmenyCO.IntezmenyCim;
var (email, guid) = GetGondviseloEmailCimAndGuid(h, gondviseloId);
var emailModel = new FogadooraEmailModel
{
Message = string.Format(EmailResource.SikeresFogadooraJelentkezesTartalom, gondviseloNev, idopont, teremNev, tanarNev, idopontVege, tanuloNev, osztalyCsoportok, intezmenyUrl, intezmenyNev, intezmenyCim),
Subject = $"{EmailResource.SikeresFogadooraJelentkezes} - {idopont} - {tanarNev}",
EmailCim = email,
EmailGuid = guid
};
FogadooraEmailKuldes(h, emailModel);
}
}
private bool GetProfileData(IDalHandler h, int felhasznaloId, string profileTipus)
{
var dal = h.Fogadoora(GridParameters);
var profileXml = dal.GetProfileData(felhasznaloId);
if (string.IsNullOrWhiteSpace(profileXml))
{
return true;
}
XmlDocument xDoc = new XmlDocument();
xDoc.LoadXml(profileXml);
XmlNode node = xDoc.SelectSingleNode("UserProfile/" + profileTipus);
return node == null || (bool.TryParse(node.InnerText, out bool result)) && result;
}
#endregion
public DataSet GetFogadooraJelentkezettGondviselokDataSet(int fogadooraId)
{
return Dal.CustomConnection.Run(ConnectionType, (h) =>
{
var fogadooraOsztalyCsoportIdList = GetFogadooraById(h, fogadooraId).SelectedOsztalyCsoportIdList;
var dal = h.Fogadoora(GridParameters);
return dal.GetFogadooraJelentkezettGondviselokDataSet(fogadooraId, fogadooraOsztalyCsoportIdList);
});
}
public DataSet GetFogadooraJelentkezettGondviselokByGroupId(int groupId, DateTime kedzete, DateTime vege)
{
return Dal.CustomConnection.Run(ConnectionType, (h) =>
{
var dal = h.Fogadoora(GridParameters);
return dal.GetFogadooraJelentkezettGondviselokByGroupId(groupId, kedzete, vege);
});
}
public DataSet GeTeremOrarendDs(DateTime start, DateTime end, int teremId)
{
return Dal.CustomConnection.Run(ConnectionType, (h) =>
{
var dal = h.Fogadoora(GridParameters);
return dal.GeTeremOrarendDataSet(IntezmenyId, TanevId, start, end, teremId);
});
}
public DataSet GetPedagogusOrarendDs(DateTime start, DateTime end)
{
return Dal.CustomConnection.Run(ConnectionType, (h) =>
{
var dal = h.Fogadoora(GridParameters);
return dal.GetPedagogusOrarendDataSet(IntezmenyId, TanevId, start, end, FelhasznaloId);
});
}
public DataSet GetPedagogusFogadooraDs(DateTime start, DateTime end)
{
return Dal.CustomConnection.Run(ConnectionType, (h) =>
{
var dal = h.Fogadoora(GridParameters);
return dal.GetPedagogusTeremFogadooraDataSet(TanevId, start, end, FelhasznaloId, null);
});
}
public DataSet GetTeremFogadooraDs(DateTime start, DateTime end, int teremId)
{
return Dal.CustomConnection.Run(ConnectionType, (h) =>
{
var dal = h.Fogadoora(GridParameters);
return dal.GetPedagogusTeremFogadooraDataSet(TanevId, start, end, null, teremId);
});
}
private List<(int Id, DateTime Idopont)> GetFogadooraIdAndKezdeteByGroupIdList(IDalHandler h, int fogadooraGroupId, DateTime start, DateTime end)
{
var dal = h.Fogadoora(GridParameters);
return dal.GetFogadooraIdByGroupIdList(TanevId, fogadooraGroupId, start, end);
}
public int IsSzabadIdopontByFogadooraIdopontId(int fogadooraIdopontId)
{
return Dal.CustomConnection.Run(ConnectionType, (h) =>
{
var isTorolt = false;
var isSzabad = false;
var dal = h.Fogadoora(GridParameters);
var fogadooraIdopont = dal.GetFogadooraIdopont(fogadooraIdopontId);
if (fogadooraIdopont.Torolt)
{
isTorolt = true;
}
var isSzabadIdopont = dal.IsSzabadIdopontByFogadooraIdopontId(fogadooraIdopontId);
if (isSzabadIdopont)
{
isSzabad = true;
}
if (isTorolt)
{
return (int)FogadooraJelentkezesAllapotEnum.ToroltFogoora;
}
if (!isSzabad)
{
return (int)FogadooraJelentkezesAllapotEnum.MarJelentkeztek;
}
return (int)FogadooraJelentkezesAllapotEnum.LehetJelentkezni;
});
}
private string GetDateWithoutHoursAndMinutes(DateTime date)
{
var months = date.Month < 10 ? $"0{date.Month}" : date.Month.ToString();
var days = date.Day < 10 ? $"0{date.Day}" : date.Day.ToString();
return $"{date.Year}.{months}.{days}.";
}
private string GetDateOnlyHoursAndMinutes(DateTime date)
{
var hours = date.Hour < 10 ? $"0{date.Hour}" : date.Hour.ToString();
var minutes = date.Minute < 10 ? $"0{date.Minute}" : date.Minute.ToString();
return $"{hours}:{minutes}";
}
private string GetFogadooraIdopontIntervallum(DateTime intervallumEleje, DateTime intervalllumVege, bool isNapFelirat = false)
{
var hetnapjaText = isNapFelirat ? $"{GetHetnapja(intervallumEleje)}, " : string.Empty;
return $"{GetDateWithoutHoursAndMinutes(intervallumEleje)} ({hetnapjaText}{GetDateOnlyHoursAndMinutes(intervallumEleje)}-{GetDateOnlyHoursAndMinutes(intervalllumVege)})";
}
private string GetJelentkezesiHataridoText(int? jelentkezesHatarideje)
{
if (!jelentkezesHatarideje.HasValue || jelentkezesHatarideje == 0)
{
return FogadooraResource.Nincs;
}
return string.Format(FogadooraResource.ora, jelentkezesHatarideje.Value);
}
private void SaveUjFogadooraFaliujsag(IDalHandler h, FogadooraCo co, DateTime elsoTanitasiNap, DateTime utolsoTanitasiNap, DateTime idopontKezdete, DateTime idopontVege)
{
var (rendszeresseg, idopont) = FogadaooraDetails(co.Rendszeresseg);
var tanarNeve = h.Alkalmazott().GetAlkalmazottNevById(FelhasznaloId, TanevId, IntezmenyId);
var teremNev = h.Terem().Get(co.TeremId).Nev;
var dal = h.Feljegyzes();
var fogadooraDal = h.Fogadoora();
var entity = dal.Get();
entity.Kezdete = co.FaliujsagErvenyessegKezdete;
entity.FaliujsagMegjelenes = true;
entity.EsemenyDatuma = idopontKezdete.Date;
entity.Tipus = (int)EsemenyTipusEnum.FaliujsagBejegyzes;
entity.Vege = co.FaliujsagErvenyessegVege;
entity.FeljegyzoId = FelhasznaloId;
entity.Mindenkinek = false;
entity.Targy = FogadooraResource.UjFogadora;
entity.Tartalom = string.Format(FogadooraResource.FaliujsagUjFogadoora, rendszeresseg, idopont, GetFogadooraIdopontIntervallum(idopontKezdete, idopontVege, true), tanarNeve, teremNev);
dal.Insert(entity);
var coOsztalyCsoportIdList = co.SelectedOsztalyCsoportIdList;
foreach (var id in coOsztalyCsoportIdList)
{
dal.AddOsztalyCsoport(entity, id);
}
var fogadooraList = fogadooraDal.GetFogadooraIdByGroupIdList(TanevId, co.Id.Value, elsoTanitasiNap, utolsoTanitasiNap);
foreach (var (Id, _) in fogadooraList)
{
var fogadooraEntity = fogadooraDal.Get(Id);
fogadooraEntity.TanuloEsemenyId = entity.ID;
fogadooraDal.FullUpdate(fogadooraEntity);
}
}
private void SaveToroltFogadooraFaliujsag(IDalHandler handler, FogadooraCo co, bool isEgyalkalom, DateTime idopontKezdete, DateTime idopontVege)
{
var (rendszeresseg, idopont) = FogadaooraDetails(isEgyalkalom ? (int)FogadooraRendszeressegEnum.EgyAlkalom : co.Rendszeresseg);
var tanarNeve = handler.Alkalmazott().GetAlkalmazottNevById(co.TanarId, TanevId, IntezmenyId);
var teremNev = handler.Terem().Get(co.TeremId).Nev;
var dal = handler.Feljegyzes();
var entity = dal.Get(co.FaliujsagId);
entity.Kezdete = co.FaliujsagErvenyessegKezdete;
entity.FaliujsagMegjelenes = true;
entity.EsemenyDatuma = DateTime.Today;
entity.Tipus = (int)EsemenyTipusEnum.FaliujsagBejegyzes;
entity.Vege = co.FaliujsagErvenyessegVege;
entity.Mindenkinek = false;
entity.Targy = EmailResource.LemondottFogadoora;
entity.Tartalom = string.Format(FogadooraResource.LemondottFogadooraFaliujsag, rendszeresseg, idopont, GetFogadooraIdopontIntervallum(idopontKezdete, idopontVege, true), tanarNeve, teremNev);
dal.FullUpdate(entity);
}
public void SaveModositottFogadooraFaliujsag(IDalHandler h, FogadooraCo co, int newTeremId, DateTime newIdopontKezdete, DateTime newIdopontVege, bool isEgyalkalom)
{
var teremText = $"{TeremNev(h, newTeremId)}";
var tanarNev = TanarNev(h, co.TanarId);
var (rendszeresseg, idopont) = FogadaooraDetails(isEgyalkalom ? (int)FogadooraRendszeressegEnum.EgyAlkalom : co.Rendszeresseg);
var idopontText = $"{GetFogadooraIdopontIntervallum(newIdopontKezdete, newIdopontVege, true)}";
var fogadooraDal = h.Fogadoora();
var faliujsagId = fogadooraDal.Get(co.Id.Value).TanuloEsemenyId;
var dal = h.Feljegyzes();
var entity = dal.Get(faliujsagId);
entity.Kezdete = co.FaliujsagErvenyessegKezdete;
entity.FaliujsagMegjelenes = true;
entity.EsemenyDatuma = DateTime.Today;
entity.Tipus = (int)EsemenyTipusEnum.FaliujsagBejegyzes;
entity.Vege = co.FaliujsagErvenyessegVege;
entity.FeljegyzoId = FelhasznaloId;
entity.Mindenkinek = false;
entity.Targy = EmailResource.ModositottFogadoora;
entity.Tartalom = string.Format(FogadooraResource.ModositottFaliujsagTartalom, rendszeresseg, idopont, idopontText, teremText, tanarNev);
dal.FullUpdate(entity);
}
private DataTable GetFogadooraOsztalyCsoportMaradekElemek(IDalHandler h, int fogadooraId)
{
var fogadooraDal = h.Fogadoora();
return fogadooraDal.GetFogadooraOsztalyCsoportMaradekElemek(fogadooraId);
}
}
}