init
This commit is contained in:
commit
e124a47765
19374 changed files with 9806149 additions and 0 deletions
293
Kreta.BusinessLogic/Helpers/ZaradekHelper.cs
Normal file
293
Kreta.BusinessLogic/Helpers/ZaradekHelper.cs
Normal file
|
@ -0,0 +1,293 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using Kreta.BusinessLogic.Classes;
|
||||
using Kreta.BusinessLogic.HelperClasses;
|
||||
using Kreta.BusinessLogic.Helpers.SystemSettings;
|
||||
using Kreta.Core.ConnectionType;
|
||||
using Kreta.Core.Exceptions;
|
||||
using Kreta.DataAccess.Interfaces;
|
||||
using Kreta.DataAccessManual;
|
||||
using Kreta.DataAccessManual.Interfaces;
|
||||
using Kreta.DataAccessManual.Util;
|
||||
using Kreta.Enums;
|
||||
using Kreta.Resources;
|
||||
|
||||
namespace Kreta.BusinessLogic.Helpers
|
||||
{
|
||||
public class ZaradekHelper : LogicBase
|
||||
{
|
||||
public ZaradekHelper(IConnectionType connectionType) : base(connectionType) { }
|
||||
|
||||
public ZaradekCo GetZaradekById(int Id)
|
||||
{
|
||||
return Dal.CustomConnection.Run(ConnectionType, (h) =>
|
||||
{
|
||||
var dal = h.ZaradekDal();
|
||||
var entity = dal.Get(Id);
|
||||
var result = new ZaradekCo(entity);
|
||||
|
||||
return result;
|
||||
});
|
||||
}
|
||||
|
||||
public void DeleteZaradek(int Id, bool isOfo)
|
||||
{
|
||||
Dal.CustomConnection.Run(ConnectionType, (h) =>
|
||||
{
|
||||
var dal = h.ZaradekDal();
|
||||
var entity = dal.Get(Id);
|
||||
|
||||
var hasError = false;
|
||||
var errorMessage = new StringBuilder();
|
||||
if (h.OsztalyCsoport().GetIsOsztaly(entity.TanuloCsoport.OsztalyCsoportId))
|
||||
{
|
||||
hasError = ValidateUtolsoKiVagyAtsorolasiZaradek(errorMessage, entity, dal);
|
||||
}
|
||||
|
||||
if (isOfo || hasError)
|
||||
{
|
||||
ValidateOfo(h, errorMessage, entity.IsKiVagyAtsorolasiZaradek);
|
||||
|
||||
if (errorMessage.Length > 0)
|
||||
{ throw new BlException(errorMessage.ToString()); }
|
||||
}
|
||||
|
||||
dal.Delete(entity);
|
||||
});
|
||||
}
|
||||
|
||||
public void SaveZaradek(ZaradekCo co, bool isOfo, bool isAdmin, int? tanevId = null)
|
||||
{
|
||||
Dal.CustomConnection.Run(ConnectionType, (h) =>
|
||||
{
|
||||
Validate(h, co, isOfo, isAdmin);
|
||||
SaveZaradek(h, co, tanevId);
|
||||
});
|
||||
}
|
||||
|
||||
public List<ZaradekCo> GetZaradekok(List<int> nemzetiDokumentumNyelvek, int tanuloCsoportId, int? tanuloId = null)
|
||||
{
|
||||
DataSet ds = Dal.CustomConnection.Run(ConnectionType, (h) => h.ZaradekDal().GetZaradekok(TanevId, IntezmenyId, nemzetiDokumentumNyelvek, tanuloCsoportId, tanuloId));
|
||||
|
||||
var coList = new List<ZaradekCo>();
|
||||
if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
|
||||
{
|
||||
foreach (DataRow row in ds.Tables[0].Rows)
|
||||
{
|
||||
coList.Add(new ZaradekCo
|
||||
{
|
||||
Id = row.Field<int>("Id"),
|
||||
KeltezesDatuma = row.Field<DateTime?>("KeltezesDatuma"),
|
||||
KeltezesHelye = row.Field<string>("KeltezesHelye"),
|
||||
TanuloCsoportId = row.Field<int>("TanuloCsoportId"),
|
||||
TanuloId = row.Field<int>("TanuloId"),
|
||||
RogzitoId = row.Field<int>("RogzitoId"),
|
||||
RogzitesDatuma = row.Field<DateTime>("RogzitesDatuma"),
|
||||
ZaradekSzovegek = row.Field<string>("IdegenNyelvSzovegek"),
|
||||
ZaradekSzovegList = new List<ZaradekNyelvCo> { new ZaradekNyelvCo() { NyelvId = (int)AnyanyelvEnum.magyar, Szoveg = row.Field<string>("Szoveg") } },
|
||||
IsKiVagyAtsorolasiZaradek = SDAConvert.ToBooleanFromTF(row["IsKiVagyAtsorolasiZaradek"]),
|
||||
OsztalyNev = row.Field<string>("OsztalyNev"),
|
||||
IsKapcsolodo = SDAConvert.ToBooleanFromTF(row["IsKapcsolodo"]),
|
||||
IsTorolheto = SDAConvert.ToBooleanFromTF(row["IsTorolheto"]),
|
||||
IsOsztaly = SDAConvert.ToBooleanFromTF(row["IsOsztaly"])
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
return coList;
|
||||
}
|
||||
|
||||
public void SaveZaradekTobbesModositas(ZaradekCo co, bool isOfo, bool isAdmin, List<int> tanuloCsoportIdList)
|
||||
{
|
||||
if (tanuloCsoportIdList.Any())
|
||||
{
|
||||
Dal.CustomConnection.Run(ConnectionType, (h) =>
|
||||
{
|
||||
Validate(h, co, isOfo, isAdmin);
|
||||
foreach (var tanuloCsoportId in tanuloCsoportIdList)
|
||||
{
|
||||
co.TanuloCsoportId = tanuloCsoportId;
|
||||
co.Id = null;
|
||||
SaveZaradek(h, co);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
public void OsszesZaradekTorlese(List<int> tanuloCsoportIdList, bool isOsztalyList)
|
||||
{
|
||||
Dal.CustomConnection.Run(ConnectionType, (h) =>
|
||||
{
|
||||
var dal = h.ZaradekDal();
|
||||
dal.DeleteAll(tanuloCsoportIdList, FelhasznaloId, isOsztalyList);
|
||||
});
|
||||
}
|
||||
|
||||
public void LegutobbRogzitettZaradekokTorlese(List<int> tanuloCsoportIdList, bool isOsztalyList)
|
||||
{
|
||||
Dal.CustomConnection.Run(ConnectionType, (h) =>
|
||||
{
|
||||
var dal = h.ZaradekDal();
|
||||
dal.DeleteLasts(tanuloCsoportIdList, FelhasznaloId, isOsztalyList);
|
||||
});
|
||||
}
|
||||
|
||||
private void SaveZaradek(IDalHandler h, ZaradekCo co, int? tanevId = null)
|
||||
{
|
||||
var dal = h.ZaradekDal();
|
||||
IZaradek entity;
|
||||
|
||||
if (co.Id.HasValue)
|
||||
{
|
||||
entity = dal.Get(co.Id.Value);
|
||||
}
|
||||
else
|
||||
{
|
||||
entity = dal.Get();
|
||||
entity.TanevId = tanevId ?? TanevId;
|
||||
entity.RogzitesDatuma = DateTime.Now;
|
||||
entity.RogzitoId = co.RogzitoId;
|
||||
entity.TanuloCsoportId = co.TanuloCsoportId.Value;
|
||||
}
|
||||
|
||||
entity.IsBizonyitvanybanMegjelenik = co.IsBizonyitvanybanMegjelenik;
|
||||
entity.IsKiVagyAtsorolasiZaradek = co.IsKiVagyAtsorolasiZaradek;
|
||||
entity.IsOsztalynaplobanMegjelenik = co.IsOsztalynaplobanMegjelenik;
|
||||
entity.IsTorzslaponMegjelenik = co.IsTorzslaponMegjelenik;
|
||||
entity.KeltezesDatuma = co.KeltezesDatuma.Value;
|
||||
entity.KeltezesHelye = co.KeltezesHelye;
|
||||
|
||||
entity.Szoveg = co.ZaradekSzovegList.Single(x => x.NyelvId == (int)AnyanyelvEnum.magyar).Szoveg;
|
||||
entity.UtolsoModositasDatuma = DateTime.Now;
|
||||
entity.UtolsoModositoId = FelhasznaloId;
|
||||
|
||||
if (co.Id.HasValue)
|
||||
{
|
||||
dal.FullUpdate(entity);
|
||||
}
|
||||
else
|
||||
{
|
||||
co.Id = dal.Insert(entity);
|
||||
}
|
||||
|
||||
foreach (var zaradekNyelv in co.ZaradekSzovegList.Where(x => x.NyelvId != (int)AnyanyelvEnum.magyar))
|
||||
{
|
||||
var zaradekNyelvEntity = entity.ZaradekNyelv.SingleOrDefault(x => x.NyelvId == zaradekNyelv.NyelvId && !x.Torolt);
|
||||
|
||||
if (zaradekNyelvEntity != null)
|
||||
{
|
||||
if (!string.IsNullOrWhiteSpace(zaradekNyelv.Szoveg))
|
||||
{
|
||||
zaradekNyelvEntity.Szoveg = zaradekNyelv.Szoveg;
|
||||
dal.UpdateIdegenNyelv(zaradekNyelvEntity);
|
||||
}
|
||||
else
|
||||
{
|
||||
dal.DeleteIdegenNyelv(zaradekNyelvEntity);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
var idegenNyelvEntity = dal.GetIdegenNyelv();
|
||||
idegenNyelvEntity.NyelvId = zaradekNyelv.NyelvId;
|
||||
idegenNyelvEntity.Szoveg = zaradekNyelv.Szoveg;
|
||||
idegenNyelvEntity.ZaradekId = co.Id.Value;
|
||||
|
||||
dal.InsertIdegenNyelv(idegenNyelvEntity);
|
||||
}
|
||||
}
|
||||
|
||||
foreach (var entityZaradekNyelv in entity.ZaradekNyelv.Where(e => !co.ZaradekSzovegList.Any(c => c.NyelvId == e.NyelvId) && !e.Torolt))
|
||||
{
|
||||
dal.DeleteIdegenNyelv(entityZaradekNyelv);
|
||||
}
|
||||
}
|
||||
|
||||
private void Validate(IDalHandler h, ZaradekCo co, bool isOfo, bool isAdmin)
|
||||
{
|
||||
if (!isOfo && !isAdmin)
|
||||
{
|
||||
throw new BlException(OsztalyCsoportResource.NincsJogosultsagaZaradekFelvetelere);
|
||||
}
|
||||
|
||||
var errorMessage = new StringBuilder();
|
||||
|
||||
if (isOfo)
|
||||
{
|
||||
ValidateOfo(h, errorMessage, co.IsKiVagyAtsorolasiZaradek);
|
||||
}
|
||||
|
||||
if (string.IsNullOrWhiteSpace(co.KeltezesHelye))
|
||||
{
|
||||
errorMessage.Append(OsztalyCsoportResource.KeltezesHelyeKotelezo).Append(Environment.NewLine);
|
||||
}
|
||||
|
||||
if (string.IsNullOrWhiteSpace(co.ZaradekSzovegList.Single(x => x.NyelvId == (int)AnyanyelvEnum.magyar).Szoveg))
|
||||
{
|
||||
errorMessage.Append(OsztalyCsoportResource.ZaradekSzovegeKotelezo).Append(Environment.NewLine);
|
||||
}
|
||||
|
||||
if (!co.KeltezesDatuma.HasValue)
|
||||
{
|
||||
errorMessage.Append(OsztalyCsoportResource.KeltezesDatumaKotelezo);
|
||||
}
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(errorMessage.ToString()))
|
||||
{
|
||||
throw new BlException(errorMessage.ToString());
|
||||
}
|
||||
}
|
||||
|
||||
private void ValidateOfo(IDalHandler h, StringBuilder errorMessage, bool isKiVagyAtsorolasiZaradek)
|
||||
{
|
||||
var systemSettingsHelper = new SystemSettingsHelper(new DalHandlerConnectionType(ConnectionType, h));
|
||||
|
||||
var isOfoRogzithetEvkoziZaradekot = systemSettingsHelper.GetSystemSettingValue<bool>(RendszerBeallitasTipusEnum.Osztalyfonok_megtekintheti_modosithatja_osztalyaba_jaro_tanulok_zaradekat);
|
||||
var isOfoRogzithetKiVagyAtsorolasiZaradekot = systemSettingsHelper.GetSystemSettingValue<bool>(RendszerBeallitasTipusEnum.Osztalyfonok_kiegeszitheti_osztalyaba_jaro_tanulok_ki_vagy_atsorolsasi_zaradekat);
|
||||
|
||||
if (!isOfoRogzithetEvkoziZaradekot)
|
||||
{
|
||||
errorMessage.Append(OsztalyCsoportResource.OfoNemRogzithetZaradekot).Append(Environment.NewLine);
|
||||
}
|
||||
else if (isKiVagyAtsorolasiZaradek && !isOfoRogzithetKiVagyAtsorolasiZaradekot)
|
||||
{
|
||||
errorMessage.Append(OsztalyCsoportResource.OfoNemRogzithetKiVagyAtsorolasiZaradekot).Append(Environment.NewLine);
|
||||
}
|
||||
}
|
||||
|
||||
private bool ValidateUtolsoKiVagyAtsorolasiZaradek(StringBuilder errorMessage, IZaradek entity, IZaradekDal dal)
|
||||
{
|
||||
if (entity.IsKiVagyAtsorolasiZaradek && entity.TanuloCsoport.KilepesDatum.HasValue)
|
||||
{
|
||||
if (!IsKiVagyAtsorolasiZaradekTorolheto(entity.TanuloCsoport.ID, entity.ID))
|
||||
{
|
||||
errorMessage.Append(OsztalyCsoportResource.OsztalybolKiirtTanuloknakRendelkezniukKellKiAtsorolasiZaradekkal);
|
||||
return true;
|
||||
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public bool IsKiVagyAtsorolasiZaradekTorolheto(int tanuloCsoportId, int zaradekId)
|
||||
{
|
||||
return Dal.CustomConnection.Run(ConnectionType, (h) =>
|
||||
{
|
||||
var tanuloCsoportDal = h.TanuloCsoport();
|
||||
|
||||
var tanuloCsoport = tanuloCsoportDal.Get(tanuloCsoportId);
|
||||
if (!tanuloCsoport.KilepesDatum.HasValue)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
var zaradekDal = h.ZaradekDal();
|
||||
return zaradekDal.GetTanuloKiVagyAtsorolasiZaradekai(tanuloCsoportId, zaradekId).Tables[0].AsEnumerable().Any();
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue