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

691 lines
28 KiB
C#

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();
}
}
}