init
This commit is contained in:
commit
e124a47765
19374 changed files with 9806149 additions and 0 deletions
691
Kreta.BusinessLogic/Helpers/TeremHelper.cs
Normal file
691
Kreta.BusinessLogic/Helpers/TeremHelper.cs
Normal file
|
@ -0,0 +1,691 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using Kreta.BusinessLogic.Classes;
|
||||
using Kreta.BusinessLogic.Exceptions;
|
||||
using Kreta.BusinessLogic.HelperClasses;
|
||||
using Kreta.BusinessLogic.Logic;
|
||||
using Kreta.BusinessLogic.Utils;
|
||||
using Kreta.Core;
|
||||
using Kreta.Core.ConnectionType;
|
||||
using Kreta.Core.Exceptions;
|
||||
using Kreta.Core.FileService;
|
||||
using Kreta.DataAccess.Interfaces;
|
||||
using Kreta.DataAccessManual;
|
||||
using Kreta.DataAccessManual.Interfaces;
|
||||
using Kreta.Enums.ManualEnums;
|
||||
using Kreta.Framework.Entities;
|
||||
using Kreta.Framework.Util;
|
||||
using Kreta.Resources;
|
||||
using OfficeOpenXml;
|
||||
|
||||
namespace Kreta.BusinessLogic.Helpers
|
||||
{
|
||||
public class TeremHelper : LogicBase
|
||||
{
|
||||
public TeremHelper(IConnectionType connectionType) : base(connectionType) { }
|
||||
|
||||
public string GetTeremNev(int id)
|
||||
{
|
||||
return Dal.CustomConnection.Run(ConnectionType, h =>
|
||||
{
|
||||
var dal = h.Terem();
|
||||
var entity = dal.Get(id);
|
||||
return entity.Nev;
|
||||
});
|
||||
}
|
||||
|
||||
public int? GetTeremKapacitasById(int id)
|
||||
{
|
||||
return Dal.CustomConnection.Run(ConnectionType, h =>
|
||||
{
|
||||
var dal = h.Terem();
|
||||
var entity = dal.Get(id);
|
||||
return entity.Kapacitas;
|
||||
});
|
||||
}
|
||||
|
||||
public IDictionary<string, string> GetTermekForDropDown(bool IsFromSzervezet = false)
|
||||
{
|
||||
var result = Dal.CustomConnection.Run(ConnectionType, h =>
|
||||
LogicUtil.CreateDropdownContent(h.Terem().GetTeremIdWithName(IsFromSzervezet, TanevId), "ID", "Nev"));
|
||||
return result;
|
||||
}
|
||||
|
||||
public DataSet GetOsztalytermek(bool IsFromSzervezet = false)
|
||||
{
|
||||
return Dal.CustomConnection.Run(ConnectionType, h =>
|
||||
{
|
||||
var dal = h.Terem();
|
||||
return dal.GetTeremIdWithName(IsFromSzervezet, TanevId);
|
||||
});
|
||||
}
|
||||
|
||||
public DataSet GetOsztalytermek(int? SzervezetId, bool IsFromSzervezet = false)
|
||||
{
|
||||
return Dal.CustomConnection.Run(ConnectionType, h =>
|
||||
{
|
||||
var dal = h.Terem();
|
||||
return dal.GetTeremDataSet(IntezmenyId, TanevId, IsFromSzervezet, SzervezetId);
|
||||
});
|
||||
}
|
||||
|
||||
public TeremCO GetTeremCo(int id)
|
||||
{
|
||||
return Dal.CustomConnection.Run(ConnectionType, h =>
|
||||
{
|
||||
var dal = h.Terem();
|
||||
var teremEntity = dal.Get(id);
|
||||
|
||||
return TeremCO.EntityToCo(teremEntity);
|
||||
});
|
||||
}
|
||||
|
||||
public int InsertTerem(TeremCO teremCo)
|
||||
{
|
||||
return Dal.CustomConnection.Run(ConnectionType, h =>
|
||||
{
|
||||
var teremDal = h.Terem();
|
||||
var teremEntity = TeremCO.CoToTeremEntity(teremDal.Get(), teremCo);
|
||||
|
||||
teremEntity.TanevId = TanevId;
|
||||
teremEntity.EgyediAzonosito = Guid.NewGuid();
|
||||
teremDal.Insert(teremEntity);
|
||||
|
||||
if (teremCo.Berbeadhato)
|
||||
{
|
||||
var kepId = InsertFeltoltottFajl(h, teremCo.KepNev, teremCo.KepUtvonal, teremCo.KepKiterjesztes);
|
||||
InsertTeremFeltoltottFajl(h, teremEntity.ID, kepId, false);
|
||||
|
||||
var dokumentumId = InsertFeltoltottFajl(h, teremCo.DokumentumNev, teremCo.DokumentumUtvonal, teremCo.DokumentumKiterjesztes);
|
||||
InsertTeremFeltoltottFajl(h, teremEntity.ID, dokumentumId, true);
|
||||
}
|
||||
|
||||
return teremEntity.ID;
|
||||
});
|
||||
}
|
||||
|
||||
private int InsertFeltoltottFajl(IDalHandler dalHandler, string fajlNev, string fajlUtvonal, string fajlKiterjesztes)
|
||||
{
|
||||
var feltoltottFajlDAL = dalHandler.FeltoltottFajlDAL();
|
||||
var feltoltottFajlEntity = feltoltottFajlDAL.Get();
|
||||
|
||||
feltoltottFajlEntity.Nev = fajlNev;
|
||||
feltoltottFajlEntity.Kiterjesztes = fajlKiterjesztes;
|
||||
feltoltottFajlEntity.Utvonal = fajlUtvonal;
|
||||
feltoltottFajlEntity.FeltoltesDatuma = DateTime.Now;
|
||||
|
||||
feltoltottFajlDAL.Insert(feltoltottFajlEntity);
|
||||
|
||||
return feltoltottFajlEntity.ID;
|
||||
}
|
||||
|
||||
private void InsertTeremFeltoltottFajl(IDalHandler dalHandler, int teremId, int fajlId, bool isDokumentum)
|
||||
{
|
||||
var teremFeltoltottFajlDal = dalHandler.TeremFeltoltottFajlDal();
|
||||
var teremFeltoltottFajlEntity = teremFeltoltottFajlDal.Get();
|
||||
|
||||
teremFeltoltottFajlEntity.TeremId = teremId;
|
||||
teremFeltoltottFajlEntity.IsDokumentum = isDokumentum;
|
||||
teremFeltoltottFajlEntity.FeltoltottFajlId = fajlId;
|
||||
|
||||
teremFeltoltottFajlDal.Insert(teremFeltoltottFajlEntity);
|
||||
}
|
||||
|
||||
public void InsertTeremElerhetoseg(TeremBerbeadasIdopontokCO teremBerbeadasIdopontokCoList, int teremId)
|
||||
{
|
||||
Dal.CustomConnection.Run(ConnectionType, h =>
|
||||
{
|
||||
var teremElerhetosegDal = h.TeremElerhetoseg();
|
||||
var teremelerhetosegEntity = TeremCO.CoToTeremElerhetosegEntity(teremElerhetosegDal.Get(), teremBerbeadasIdopontokCoList, teremId);
|
||||
teremelerhetosegEntity.TanevId = TanevId;
|
||||
teremElerhetosegDal.Insert(teremelerhetosegEntity);
|
||||
});
|
||||
}
|
||||
|
||||
public List<string> SaveTeremFiles(IFileService fileService, IEnumerable<string> contentArray)
|
||||
{
|
||||
var filePaths = new List<string>();
|
||||
|
||||
for (var i = 0; i < contentArray.Count(); i++)
|
||||
{
|
||||
filePaths.Add(fileService.WriteToFile(contentArray.ElementAt(i), Constants.FileServiceStorageName.Default));
|
||||
}
|
||||
|
||||
return filePaths;
|
||||
}
|
||||
|
||||
public void UpdateTerem(TeremCO teremCo)
|
||||
{
|
||||
Dal.CustomConnection.Run(ConnectionType, h =>
|
||||
{
|
||||
var teremDal = h.Terem();
|
||||
var teremEntity = teremDal.Get(teremCo.TeremId.Value);
|
||||
|
||||
teremEntity = TeremCO.CoToTeremEntity(teremEntity, teremCo);
|
||||
teremEntity.TanevId = TanevId;
|
||||
|
||||
if (teremCo.Berbeadhato)
|
||||
{
|
||||
if (!string.IsNullOrWhiteSpace(teremCo.KepUtvonal))
|
||||
{
|
||||
var kepId = teremEntity.FeltoltottFajl.Where(item => item.TeremId == teremCo.TeremId.Value && !item.IsDokumentum).Select(item => item.FeltoltottFajlId).FirstOrDefault();
|
||||
|
||||
if (kepId > 0)
|
||||
{
|
||||
UpdateFeltoltottFajl(h, kepId, teremCo.KepNev, teremCo.KepUtvonal, teremCo.KepKiterjesztes);
|
||||
}
|
||||
else
|
||||
{
|
||||
kepId = InsertFeltoltottFajl(h, teremCo.KepNev, teremCo.KepUtvonal, teremCo.KepKiterjesztes);
|
||||
InsertTeremFeltoltottFajl(h, teremEntity.ID, kepId, false);
|
||||
}
|
||||
}
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(teremCo.DokumentumUtvonal))
|
||||
{
|
||||
var dokumentumId = teremEntity.FeltoltottFajl.Where(item => item.TeremId == teremCo.TeremId.Value && item.IsDokumentum).Select(item => item.FeltoltottFajlId).FirstOrDefault();
|
||||
|
||||
if (dokumentumId > 0)
|
||||
{
|
||||
UpdateFeltoltottFajl(h, dokumentumId, teremCo.DokumentumNev, teremCo.DokumentumUtvonal, teremCo.DokumentumKiterjesztes);
|
||||
}
|
||||
else
|
||||
{
|
||||
dokumentumId = InsertFeltoltottFajl(h, teremCo.DokumentumNev, teremCo.DokumentumUtvonal, teremCo.DokumentumKiterjesztes);
|
||||
InsertTeremFeltoltottFajl(h, teremEntity.ID, dokumentumId, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
teremDal.FullUpdate(teremEntity);
|
||||
});
|
||||
}
|
||||
|
||||
private int UpdateFeltoltottFajl(IDalHandler dalHandler, int fajlId, string fajlNev, string fajlUtvonal, string fajlKiterjesztes)
|
||||
{
|
||||
var feltoltottFajlDAL = dalHandler.FeltoltottFajlDAL();
|
||||
var feltoltottFajlEntity = feltoltottFajlDAL.Get(fajlId);
|
||||
|
||||
feltoltottFajlEntity.Nev = fajlNev;
|
||||
feltoltottFajlEntity.Kiterjesztes = fajlKiterjesztes;
|
||||
feltoltottFajlEntity.Utvonal = fajlUtvonal;
|
||||
feltoltottFajlEntity.FeltoltesDatuma = DateTime.Now;
|
||||
|
||||
feltoltottFajlDAL.Update(feltoltottFajlEntity);
|
||||
|
||||
return feltoltottFajlEntity.ID;
|
||||
}
|
||||
|
||||
public void UpdateTeremElerhetoseg(TeremBerbeadasIdopontokCO teremBerbeadasIdopontokCo)
|
||||
{
|
||||
Dal.CustomConnection.Run(ConnectionType, h =>
|
||||
{
|
||||
var teremElerhetosegDal = h.TeremElerhetoseg();
|
||||
|
||||
var teremElerhetosegEntity = TeremCO.CoToTeremElerhetosegEntity(teremElerhetosegDal.Get(teremBerbeadasIdopontokCo.TeremElerhetosegId.Value), teremBerbeadasIdopontokCo);
|
||||
teremElerhetosegEntity.TanevId = TanevId;
|
||||
|
||||
teremElerhetosegDal.FullUpdate(teremElerhetosegEntity);
|
||||
});
|
||||
}
|
||||
|
||||
public void DeleteTerem(int id)
|
||||
{
|
||||
Dal.CustomConnection.Run(ConnectionType, h =>
|
||||
{
|
||||
var teremDal = h.Terem();
|
||||
var teremEntity = teremDal.Get(id);
|
||||
|
||||
var nemToroltEszkozok = teremEntity.Eszkoz.Where(x => x.Torolt == false).ToDictionary(x => x.ID, x => x.Nev);
|
||||
|
||||
if (nemToroltEszkozok.Any())
|
||||
{
|
||||
throw new CannotBeDeletedException(string.Format(ErrorResource.NemTorolhetoMertAzAlabbiEszkozokHozzaVannakRendelve, teremEntity.Nev, string.Join(", ", nemToroltEszkozok.Values)));
|
||||
}
|
||||
|
||||
DeleteTeremElerhetosegek(h, teremEntity.TeremElerhetoseg);
|
||||
DeleteFajlok(h, teremEntity.FeltoltottFajl);
|
||||
|
||||
teremDal.Delete(teremEntity);
|
||||
});
|
||||
}
|
||||
|
||||
private void DeleteTeremElerhetosegek(IDalHandler dalHandler, IReadOnlyList<ITeremElerhetoseg> teremElerhetosegEntities)
|
||||
{
|
||||
var teremElerhetosegDal = dalHandler.TeremElerhetoseg();
|
||||
|
||||
for (var i = 0; i < teremElerhetosegEntities.Count(x => !x.Torolt); i++)
|
||||
{
|
||||
teremElerhetosegDal.Delete(teremElerhetosegEntities[i].ID);
|
||||
}
|
||||
}
|
||||
|
||||
private void DeleteFajlok(IDalHandler dalHandler, IReadOnlyList<ITerem_FeltoltottFajl> teremFeltoltottFajlEntities)
|
||||
{
|
||||
var teremElerhetosegDal = dalHandler.TeremFeltoltottFajlDal();
|
||||
var feltoltottFajlDAL = dalHandler.FeltoltottFajlDAL();
|
||||
|
||||
for (var i = 0; i < teremFeltoltottFajlEntities.Count(x => !x.Torolt); i++)
|
||||
{
|
||||
teremElerhetosegDal.Delete(teremFeltoltottFajlEntities[i].ID);
|
||||
feltoltottFajlDAL.Delete(teremFeltoltottFajlEntities[i].FeltoltottFajlId);
|
||||
}
|
||||
}
|
||||
|
||||
public DataSet TeremKapacitasTullepesVizsgalat(string teremIdArrayString, int? tervezettKapacitas)
|
||||
{
|
||||
return Dal.CustomConnection.Run(ConnectionType, h =>
|
||||
{
|
||||
var dal = h.Terem();
|
||||
return dal.TeremKapacitasTullepesVizsgalat(teremIdArrayString, tervezettKapacitas);
|
||||
});
|
||||
}
|
||||
|
||||
public void TeremTobbesModify(TeremTobbesModCO teremTobbesModCo)
|
||||
{
|
||||
Dal.CustomConnection.Run(ConnectionType, h =>
|
||||
{
|
||||
if (!teremTobbesModCo.ID.HasValue)
|
||||
{
|
||||
throw new BlException(IntezmenyResource.NemLetezoTerem);
|
||||
}
|
||||
|
||||
var teremDal = h.Terem();
|
||||
var terem = teremDal.Get(teremTobbesModCo.ID.Value);
|
||||
|
||||
if (teremTobbesModCo.Jelleg.HasValue)
|
||||
{
|
||||
terem.Jelleg = teremTobbesModCo.Jelleg.Value;
|
||||
}
|
||||
|
||||
if (teremTobbesModCo.Terulet.HasValue)
|
||||
{
|
||||
terem.Terulet = teremTobbesModCo.Terulet.Value;
|
||||
}
|
||||
|
||||
if (teremTobbesModCo.Kapacitas.HasValue)
|
||||
{
|
||||
terem.Kapacitas = teremTobbesModCo.Kapacitas.Value;
|
||||
}
|
||||
|
||||
if (teremTobbesModCo.Vizsgakapacitas.HasValue)
|
||||
{
|
||||
terem.VizsgaKapacitas = teremTobbesModCo.Vizsgakapacitas.Value;
|
||||
}
|
||||
|
||||
if (teremTobbesModCo.MukodesiHelyID.HasValue)
|
||||
{
|
||||
terem.MukodesiHelyId = teremTobbesModCo.MukodesiHelyID.Value;
|
||||
}
|
||||
|
||||
if (teremTobbesModCo.Aktiv.HasValue)
|
||||
{
|
||||
terem.Aktiv = teremTobbesModCo.Aktiv.ToBool();
|
||||
}
|
||||
|
||||
if (teremTobbesModCo.TeremFelelosID.HasValue)
|
||||
{
|
||||
terem.TeremFelelosId = teremTobbesModCo.TeremFelelosID.Value;
|
||||
}
|
||||
|
||||
if (teremTobbesModCo.TobbOratLehetTartani.HasValue)
|
||||
{
|
||||
terem.TobbOratLehetTartani = teremTobbesModCo.TobbOratLehetTartani.ToBool();
|
||||
}
|
||||
|
||||
if (teremTobbesModCo.WifiLefedett.HasValue)
|
||||
{
|
||||
terem.WiFiLefedett = teremTobbesModCo.WifiLefedett.ToBool();
|
||||
}
|
||||
|
||||
if (teremTobbesModCo.IsInternetkapcsolatElerheto.HasValue)
|
||||
{
|
||||
terem.IsInternetKapcsolatElerheto = teremTobbesModCo.IsInternetkapcsolatElerheto.ToBool();
|
||||
}
|
||||
|
||||
if (teremTobbesModCo.TanulokSzamaraHozzaferhInternetesgep.HasValue)
|
||||
{
|
||||
terem.TanulokSzamaraHozzaferhInternetesGep = teremTobbesModCo.TanulokSzamaraHozzaferhInternetesgep;
|
||||
}
|
||||
|
||||
if (teremTobbesModCo.PedagogusHozzaferhInternetesgep.HasValue)
|
||||
{
|
||||
terem.PedagogusHozzaferhInternetesGep = teremTobbesModCo.PedagogusHozzaferhInternetesgep;
|
||||
}
|
||||
|
||||
if (teremTobbesModCo.OktCelraHasznaltSzamitogepekSzama.HasValue)
|
||||
{
|
||||
terem.OktCelraHasznaltSzamitogepekSzama = teremTobbesModCo.OktCelraHasznaltSzamitogepekSzama;
|
||||
}
|
||||
|
||||
if (teremTobbesModCo.IsInterakttablavalMunkaallomassalFelszerelt.HasValue)
|
||||
{
|
||||
terem.IsInteraktTablavalMunkaAllomassalFelszerelt = teremTobbesModCo.IsInterakttablavalMunkaallomassalFelszerelt.ToBool();
|
||||
}
|
||||
|
||||
if (teremTobbesModCo.SzervezetId.HasValue)
|
||||
{
|
||||
terem.SzervezetId = teremTobbesModCo.SzervezetId.Value;
|
||||
}
|
||||
|
||||
teremDal.FullUpdate(terem);
|
||||
});
|
||||
}
|
||||
|
||||
public string ValidateTeremBefogadokepesseg(int? tervezettKapacitas, string teremIdArrayString)
|
||||
{
|
||||
var kapacitastTullepettTermekFigyelmeztetoUzenet = new StringBuilder();
|
||||
const int hibaUzenetMaximalisSorokSzama = 5;
|
||||
|
||||
var kapacitastTullepettTermekLista = TeremKapacitasTullepesVizsgalat(teremIdArrayString, tervezettKapacitas).Tables[0];
|
||||
|
||||
for (var i = 0; i < hibaUzenetMaximalisSorokSzama && i < kapacitastTullepettTermekLista.Rows.Count; i++)
|
||||
{
|
||||
if (i == 0)
|
||||
{
|
||||
kapacitastTullepettTermekFigyelmeztetoUzenet.Append(IntezmenyResource.AModositandoTeremBefogadokepessegeGondotOkozhatAzOttTartandoOrakOsztalyCsoportLetszamaMiattSzeretneFolytatni);
|
||||
}
|
||||
kapacitastTullepettTermekFigyelmeztetoUzenet.AppendFormat(IntezmenyResource.Tanar0OsztalyCsoport1Targy2,
|
||||
kapacitastTullepettTermekLista.Rows[i].Field<string>("tanarNev"),
|
||||
kapacitastTullepettTermekLista.Rows[i].Field<string>("ocsopNev"),
|
||||
kapacitastTullepettTermekLista.Rows[i].Field<string>("TargyNev"),
|
||||
kapacitastTullepettTermekLista.Rows[i].Field<string>("teremNev"));
|
||||
}
|
||||
|
||||
var tovabbiKapacitastTullepettTermekSzama = kapacitastTullepettTermekLista.Rows.Count - hibaUzenetMaximalisSorokSzama;
|
||||
if (tovabbiKapacitastTullepettTermekSzama > 0)
|
||||
{
|
||||
kapacitastTullepettTermekFigyelmeztetoUzenet.AppendFormat(IntezmenyResource.EsTovabbi0ErintettEsetben, tovabbiKapacitastTullepettTermekSzama);
|
||||
}
|
||||
|
||||
return kapacitastTullepettTermekFigyelmeztetoUzenet.ToString();
|
||||
}
|
||||
|
||||
#region Export helpers
|
||||
|
||||
public MemoryStream GetTermekAdataiExcelExport(TeremSearchCO co, bool isSelectedTanev21_22OrLater)
|
||||
{
|
||||
return Dal.CustomConnection.Run(ConnectionType, (h) =>
|
||||
{
|
||||
var dal = h.Terem();
|
||||
|
||||
var dataSet = dal.GetTermekAdataiExcelExport(TanevId, TeremSearchCO.ConvertCOToPCO(co, isSelectedTanev21_22OrLater));
|
||||
var dataTable = dataSet.Tables[0];
|
||||
ExportLogic.TryCreateHeaderIfNotExist(dataTable);
|
||||
|
||||
var stream = new MemoryStream();
|
||||
|
||||
using (var excel = new ExcelPackage(stream))
|
||||
{
|
||||
var workSheet = excel.Workbook.Worksheets.Add(IntezmenyResource.TermekAdatai);
|
||||
|
||||
workSheet.Cells[1, 1].LoadFromDataTable(dataTable, true);
|
||||
|
||||
ExportLogic.SetHeaderStyles(workSheet.Cells[1, 1, 1, dataTable.Columns.Count]);
|
||||
|
||||
workSheet.Cells.AutoFitColumns();
|
||||
excel.Save();
|
||||
}
|
||||
|
||||
stream.Position = 0;
|
||||
|
||||
return stream;
|
||||
});
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
public DataSet GetTeremBerbeadasIdopontjai(int teremId)
|
||||
{
|
||||
return Dal.CustomConnection.Run(ConnectionType, h => h.TeremElerhetoseg().GetTeremBerbeadasIdopontjai(IntezmenyId, TanevId, teremId));
|
||||
}
|
||||
|
||||
public DataSet GetBerbeadhatoTermekMukodesiHelyeinekVarosai()
|
||||
{
|
||||
return Dal.CustomConnection.Run(ConnectionType, h =>
|
||||
{
|
||||
var dal = h.Terem();
|
||||
return dal.GetBerbeadhatoTermekMukodesiHelyeinekVarosai(TanevId);
|
||||
});
|
||||
}
|
||||
|
||||
public List<TeremItemCo> GetTeremCoList(TeremSearchCO co = null, bool isAdmin = false, int? felhasznaloSzervezetId = null, bool isImportValidation = false)
|
||||
{
|
||||
var isFromSzervezet = co?.IsFromSzervezet ?? false;
|
||||
var result = Dal.CustomConnection.Run(ConnectionType, h =>
|
||||
{
|
||||
var dataSet = h.Terem(GridParameters).GetTeremDataSet(IntezmenyId, TanevId, isFromSzervezet, co?.SzervezetId);
|
||||
|
||||
List<TeremItemCo> coList;
|
||||
if (isFromSzervezet)
|
||||
{
|
||||
var szervezetIds = !felhasznaloSzervezetId.IsEntityId() ? new List<int>() : h.SzervezetDal().GetLathatoSzervezetek(IntezmenyId, TanevId, felhasznaloSzervezetId, (int)SzervezetAdatokHalmazaEnum.SzervezetEsAlSzervezetek);
|
||||
var intezmenyiAdminIds = felhasznaloSzervezetId.IsEntityId() ? new List<int>() : h.Felhasznalo().GetAllIntezmenyiAdmin(TanevId);
|
||||
|
||||
coList = dataSet.Tables[0].AsEnumerable().Select(dataRow =>
|
||||
{
|
||||
var szervezetId = dataRow.Field<int?>("SzervezetId");
|
||||
var isSzerkesztheto = (felhasznaloSzervezetId.IsEntityId() && szervezetId.IsEntityId() && szervezetIds.Contains(szervezetId.Value)) ||
|
||||
(!felhasznaloSzervezetId.IsEntityId() && intezmenyiAdminIds.Contains(FelhasznaloId) && intezmenyiAdminIds.Contains(dataRow.Field<int?>("RogzitoId") ?? FelhasznaloId));
|
||||
|
||||
return new TeremItemCo(dataRow, isSzerkesztheto);
|
||||
}).ToList();
|
||||
}
|
||||
else
|
||||
{
|
||||
if (isImportValidation)
|
||||
{
|
||||
coList = dataSet.Tables[0].AsEnumerable().Select(x => new TeremItemCo(x, true)).ToList();
|
||||
}
|
||||
else
|
||||
{
|
||||
coList = dataSet.Tables[0].AsEnumerable().Where(x => !x.Field<int?>("SzervezetId").HasValue).Select(x => new TeremItemCo(x, true)).ToList();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if (co != null)
|
||||
{
|
||||
coList = FilterTeremItemCoList(coList, co, isAdmin);
|
||||
}
|
||||
|
||||
return coList;
|
||||
});
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
public List<TeremItemCo> GetTeremCoListBySzervezet(int? szervezetTipus = null, int? szervezetId = null)
|
||||
{
|
||||
var isFromSzervezet = szervezetId.IsEntityId() ? true : false;
|
||||
var result = Dal.CustomConnection.Run(ConnectionType, h =>
|
||||
{
|
||||
var dataSet = h.Terem(GridParameters).GetTeremDataSet(IntezmenyId, TanevId, isFromSzervezet, szervezetId);
|
||||
|
||||
List<TeremItemCo> coList;
|
||||
if (isFromSzervezet)
|
||||
{
|
||||
var szervezetIds = !szervezetId.IsEntityId() ? new List<int>() : h.SzervezetDal().GetLathatoSzervezetek(IntezmenyId, TanevId, szervezetId, (int)SzervezetAdatokHalmazaEnum.SzervezetEsAlSzervezetek);
|
||||
var intezmenyiAdminIds = szervezetId.IsEntityId() ? new List<int>() : h.Felhasznalo().GetAllIntezmenyiAdmin(TanevId);
|
||||
|
||||
coList = dataSet.Tables[0].AsEnumerable().Select(dataRow =>
|
||||
{
|
||||
var actSzervezetId = dataRow.Field<int?>("SzervezetId");
|
||||
var isSzerkesztheto = (szervezetId.IsEntityId() && actSzervezetId.IsEntityId() && szervezetIds.Contains(actSzervezetId.Value)) ||
|
||||
(!szervezetId.IsEntityId() && intezmenyiAdminIds.Contains(FelhasznaloId) && intezmenyiAdminIds.Contains(dataRow.Field<int?>("RogzitoId") ?? FelhasznaloId));
|
||||
|
||||
return new TeremItemCo(dataRow, isSzerkesztheto);
|
||||
}).ToList();
|
||||
}
|
||||
else
|
||||
{
|
||||
coList = dataSet.Tables[0].AsEnumerable().Select(x => new TeremItemCo(x, true)).ToList();
|
||||
coList = coList.Where(x => x.SzervezetId.Equals(null)).ToList();
|
||||
}
|
||||
|
||||
return coList;
|
||||
});
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
public List<string> GetTeremKapcsolodoOraTipusok(int? teremId)
|
||||
{
|
||||
return Dal.CustomConnection.Run(ConnectionType, h =>
|
||||
{
|
||||
var kapcsolodoOrak = new List<string>();
|
||||
if (teremId.HasValue)
|
||||
{
|
||||
var terem = h.Terem().Get(teremId.Value);
|
||||
if (terem.Fogadoora.Any(x => !x.Torolt))
|
||||
{
|
||||
kapcsolodoOrak.Add(CalendarOraTypeEnum.Fogadoora.GetDisplayName(TanevId).ToLower());
|
||||
}
|
||||
if (terem.OrarendiOra.Any(x => !x.Torolt))
|
||||
{
|
||||
kapcsolodoOrak.Add(CalendarOraTypeEnum.OrarendiOra.GetDisplayName(TanevId).ToLower());
|
||||
}
|
||||
if (terem.TanitasiOra.Any(x => !x.Torolt))
|
||||
{
|
||||
kapcsolodoOrak.Add(CalendarOraTypeEnum.TanitasiOra.GetDisplayName(TanevId).ToLower());
|
||||
}
|
||||
}
|
||||
return kapcsolodoOrak;
|
||||
});
|
||||
}
|
||||
|
||||
private List<TeremItemCo> FilterTeremItemCoList(List<TeremItemCo> coList, TeremSearchCO searchCo, bool isAdmin)
|
||||
{
|
||||
if (searchCo == null)
|
||||
{
|
||||
return coList;
|
||||
}
|
||||
|
||||
IEnumerable<TeremItemCo> result = coList;
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(searchCo.TeremNev))
|
||||
{
|
||||
result = result.Where(x => x.Nev.ToUpper().Contains(searchCo.TeremNev.ToUpper()));
|
||||
}
|
||||
|
||||
if (searchCo.TeremJellegId.HasValue)
|
||||
{
|
||||
result = result.Where(x => x.JellegId == searchCo.TeremJellegId.Value);
|
||||
}
|
||||
|
||||
if (searchCo.KeresesMukodesiHelyID.HasValue)
|
||||
{
|
||||
result = result.Where(x => x.MukodesiHelyId == searchCo.KeresesMukodesiHelyID.Value);
|
||||
}
|
||||
|
||||
if (searchCo.MinAlapterulet.HasValue && !searchCo.MaxAlapterulet.HasValue)
|
||||
{
|
||||
result = result.Where(x => x.Terulet >= searchCo.MinAlapterulet.Value);
|
||||
}
|
||||
|
||||
if (searchCo.MaxAlapterulet.HasValue && !searchCo.MinAlapterulet.HasValue)
|
||||
{
|
||||
result = result.Where(x => x.Terulet <= searchCo.MaxAlapterulet.Value);
|
||||
}
|
||||
|
||||
if (searchCo.MinAlapterulet.HasValue && searchCo.MaxAlapterulet.HasValue)
|
||||
{
|
||||
result = result.Where(x => x.Terulet >= searchCo.MinAlapterulet.Value && x.Terulet <= searchCo.MaxAlapterulet.Value);
|
||||
}
|
||||
|
||||
if (searchCo.MinKapacitas.HasValue && !searchCo.MaxKapacitas.HasValue)
|
||||
{
|
||||
result = result.Where(x => x.Kapacitas >= searchCo.MinKapacitas.Value);
|
||||
}
|
||||
|
||||
if (searchCo.MaxKapacitas.HasValue && !searchCo.MinKapacitas.HasValue)
|
||||
{
|
||||
result = result.Where(x => x.Kapacitas <= searchCo.MaxKapacitas.Value);
|
||||
}
|
||||
|
||||
if (searchCo.MinKapacitas.HasValue && searchCo.MaxKapacitas.HasValue)
|
||||
{
|
||||
result = result.Where(x => x.Kapacitas >= searchCo.MinKapacitas.Value && x.Kapacitas <= searchCo.MaxKapacitas.Value);
|
||||
}
|
||||
|
||||
if (searchCo.IsAktiv.HasValue)
|
||||
{
|
||||
result = result.Where(x => x.IsAktiv == searchCo.IsAktiv.ToBool());
|
||||
}
|
||||
|
||||
if (searchCo.TeremFelelosId.HasValue)
|
||||
{
|
||||
result = result.Where(x => x.TeremfelelosId == searchCo.TeremFelelosId.Value);
|
||||
}
|
||||
|
||||
if (searchCo.MinVizsgaKapacitas.HasValue && !searchCo.MaxVizsgaKapacitas.HasValue)
|
||||
{
|
||||
result = result.Where(x => x.VizsgaKapacitas >= searchCo.MinVizsgaKapacitas.Value);
|
||||
}
|
||||
|
||||
if (searchCo.MaxVizsgaKapacitas.HasValue && !searchCo.MinVizsgaKapacitas.HasValue)
|
||||
{
|
||||
result = result.Where(x => x.VizsgaKapacitas <= searchCo.MaxVizsgaKapacitas.Value);
|
||||
}
|
||||
|
||||
if (searchCo.MinVizsgaKapacitas.HasValue && searchCo.MaxVizsgaKapacitas.HasValue)
|
||||
{
|
||||
result = result.Where(x => x.VizsgaKapacitas >= searchCo.MinVizsgaKapacitas.Value && x.VizsgaKapacitas <= searchCo.MaxVizsgaKapacitas.Value);
|
||||
}
|
||||
|
||||
if (searchCo.IsTobbOraTarthato.HasValue)
|
||||
{
|
||||
result = result.Where(x => x.IsTobbOratLehetTartani == searchCo.IsTobbOraTarthato.ToBool());
|
||||
}
|
||||
|
||||
if (searchCo.IsWifiLefedett.HasValue)
|
||||
{
|
||||
result = result.Where(x => x.IsWifiLefedett == searchCo.IsWifiLefedett.ToBool());
|
||||
}
|
||||
|
||||
if (searchCo.IsInternetkapcsolatElerheto.HasValue)
|
||||
{
|
||||
result = result.Where(x => x.IsInternetkapcsolatElerheto == searchCo.IsInternetkapcsolatElerheto.ToBool());
|
||||
}
|
||||
|
||||
if (searchCo.MinOktCelraHasznaltSzamitogepekSzama.HasValue && !searchCo.MaxOktCelraHasznaltSzamitogepekSzama.HasValue)
|
||||
{
|
||||
result = result.Where(x => x.OktCelraHasznaltSzamitogepekSzama >= searchCo.MinOktCelraHasznaltSzamitogepekSzama.Value);
|
||||
}
|
||||
|
||||
if (searchCo.MaxOktCelraHasznaltSzamitogepekSzama.HasValue && !searchCo.MinOktCelraHasznaltSzamitogepekSzama.HasValue)
|
||||
{
|
||||
result = result.Where(x => x.OktCelraHasznaltSzamitogepekSzama <= searchCo.MaxOktCelraHasznaltSzamitogepekSzama.Value);
|
||||
}
|
||||
|
||||
if (searchCo.MinOktCelraHasznaltSzamitogepekSzama.HasValue && searchCo.MaxOktCelraHasznaltSzamitogepekSzama.HasValue)
|
||||
{
|
||||
result = result.Where(x => x.OktCelraHasznaltSzamitogepekSzama >= searchCo.MinOktCelraHasznaltSzamitogepekSzama.Value && x.OktCelraHasznaltSzamitogepekSzama <= searchCo.MaxOktCelraHasznaltSzamitogepekSzama.Value);
|
||||
}
|
||||
|
||||
if (searchCo.IsInterakttablavalMunkaallomassalFelszerelt.HasValue)
|
||||
{
|
||||
result = result.Where(x => x.IsInterakttablavalMunkaallomassalFelszerelt == searchCo.IsInterakttablavalMunkaallomassalFelszerelt.ToBool());
|
||||
}
|
||||
|
||||
if (searchCo.IsFromSzervezet)
|
||||
{
|
||||
if (!string.IsNullOrWhiteSpace(searchCo.SzervezetNev))
|
||||
{
|
||||
result = result.Where(x => x.SzervezetNeve.IndexOf(searchCo.SzervezetNev, StringComparison.OrdinalIgnoreCase) > -1);
|
||||
}
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(searchCo.SzervezetAzonosito))
|
||||
{
|
||||
result = result.Where(x => x.SzervezetAzonositoja.IndexOf(searchCo.SzervezetAzonosito, StringComparison.OrdinalIgnoreCase) > -1);
|
||||
}
|
||||
}
|
||||
|
||||
return result.ToList();
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue