using System; using System.Collections.Generic; using System.Data; using System.IO; using System.Linq; using System.Web.Mvc; using Kreta.BusinessLogic.Classes; using Kreta.BusinessLogic.HelperClasses; using Kreta.BusinessLogic.Logic; using Kreta.BusinessLogic.Utils; using Kreta.Core; using Kreta.Core.ConnectionType; using Kreta.DataAccess.Interfaces; using Kreta.DataAccessManual; using Kreta.DataAccessManual.Interfaces; using Kreta.Enums; using Kreta.Enums.ManualEnums; using Kreta.Framework; using Kreta.Resources; using Kreta.Web.Helpers.Extension; using OfficeOpenXml; namespace Kreta.BusinessLogic.Helpers { public class TantargyHelper : LogicBase { public TantargyHelper(IConnectionType connectionType) : base(connectionType) { } public void UpdateAMITantargySablonId(int id, int amiSablonId) { Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.Tantargy(); var tantargy = dal.GetTantargy(id); tantargy.AMITantargySablonId = amiSablonId; dal.FullUpdate(tantargy); }); } public int CreateAMITantargy(int amiSablonId, string nev) { return Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.Tantargy(); var targyEnt = dal.GetTantargy(); targyEnt.Gyakorlati = false; targyEnt.Nev = nev; targyEnt.TargyKategoria = (int)TargyKategoriaTipusEnum.muveszetek; targyEnt.AltantargykentNyomtatvanyban = false; targyEnt.Fotargye = false; targyEnt.NevNyomtatvanyban = nev; targyEnt.FotargyId = -1; targyEnt.IsAmiTargy = true; targyEnt.TanevId = TanevId; targyEnt.AMITantargySablonId = amiSablonId; targyEnt.Sorszam = 0; targyEnt.IsTanulmanyiAtlagbaNemSzamit = false; targyEnt.IsOsztalyzattalErtekelheto = true; targyEnt.IsSzovegesenErtekelheto = true; targyEnt.IsSzazalekosanErtekelheto = true; targyEnt.IsOsztalynaplobaNemLatszik = false; targyEnt.IsOsztalyOrarendbeNemLatszik = false; targyEnt.EslTantargyKategoriaId = (int)ESLTantargykategoriaEnum.EgyebTantargy; dal.Insert(targyEnt); return targyEnt.ID; }); } public void SaveOrUpdateTantargy(TantargyCO co) { Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.Tantargy(); var targyEnt = dal.GetTantargy(); if (co.ID.IsEntityId()) { targyEnt = dal.GetTantargy(co.ID.Value); } targyEnt.Gyakorlati = co.GyakorlatiTargy; targyEnt.IsAmiTargy = co.IsAmiTargy; targyEnt.Nev = co.TantargyNev; targyEnt.IsKollegiumTargy = co.IsKollegiumiTargy; targyEnt.IsEgymiTargy = co.IsEgymiTargy; targyEnt.IsFelnottOktatasTargy = co.IsFelnottOktatasTargy; targyEnt.IsNincsBeloleOra = co.IsNincsBeloleOra; targyEnt.IsTanulmanyiAtlagbaNemSzamit = co.IsTanulmanyiAtlagbaNemSzamit; targyEnt.IsOsztalynaplobaNemLatszik = co.IsOsztalynaplobanNemJelenikMeg; targyEnt.IsOsztalyOrarendbeNemLatszik = !co.IsOsztalyokOrarendjebenMegjelenik; targyEnt.IsMszgTargy = co.IsMszgTargy; if (co.TargyKategoria != null) { targyEnt.TargyKategoria = (int)co.TargyKategoria; } if (co.ESLTantargykategoria != null) { targyEnt.EslTantargyKategoriaId = (int)co.ESLTantargykategoria; } targyEnt.AltantargykentNyomtatvanyban = co.AltantargyNyomtatvanyban; targyEnt.Fotargye = co.isFoTargy; targyEnt.NevNyomtatvanyban = string.IsNullOrWhiteSpace(co.NevNyomtatvanyban) ? co.TantargyNev : co.NevNyomtatvanyban; targyEnt.Rovidnev = co.TantargyRovidNev; targyEnt.AngolNev = co.TantargyAngolNev; targyEnt.NemetNev = co.TantargyNemetNev; targyEnt.Megjegyzes = co.Megjegyzes; targyEnt.Gyakorlatigenyesseg = co.Gyakorlatigenyesseg; if (co.FoTargyID.HasValue && co.FoTargyID > 0) { targyEnt.FotargyId = (int)co.FoTargyID; } else if (targyEnt.FotargyId > 0) { targyEnt.FotargyId = -1; } if (co.isFoTargy) { targyEnt.FotargyId = -1; } targyEnt.TanevId = TanevId; targyEnt.Sorszam = co.Sorszam; targyEnt.IsOsztalyzattalErtekelheto = co.IsOsztalyzattalErtekelheto; targyEnt.IsSzovegesenErtekelheto = co.IsSzovegesenErtekelheto; targyEnt.IsSzazalekosanErtekelheto = co.IsSzazalekosanErtekelheto; if (co.IsAmiTargy) { targyEnt.MufajTipusId = co.MufajTipusId; targyEnt.TanszakTipusId = co.TanszakTipusId; targyEnt.MuveszetiAgId = co.MuveszetiAgId; } else { targyEnt.MufajTipusId = null; targyEnt.TanszakTipusId = null; targyEnt.MuveszetiAgId = null; } if (co.ID.IsEntityId()) { dal.FullUpdate(targyEnt); if (!string.IsNullOrWhiteSpace(co.TantargyNemetNev)) { UpdateTantargyNyelv(dal, targyEnt, AnyanyelvEnum.nemet, co.TantargyNemetNev); } if (!string.IsNullOrWhiteSpace(co.TantargyHorvatNev)) { UpdateTantargyNyelv(dal, targyEnt, AnyanyelvEnum.horvat, co.TantargyHorvatNev); } if (!string.IsNullOrWhiteSpace(co.TantargyRomanNev)) { UpdateTantargyNyelv(dal, targyEnt, AnyanyelvEnum.roman, co.TantargyRomanNev); } if (!string.IsNullOrWhiteSpace(co.TantargySzerbNev)) { UpdateTantargyNyelv(dal, targyEnt, AnyanyelvEnum.szerb, co.TantargySzerbNev); } } else { dal.Insert(targyEnt); if (!string.IsNullOrWhiteSpace(co.TantargyNemetNev)) { InsertTantargyNyelv(dal, targyEnt, AnyanyelvEnum.nemet, co.TantargyNemetNev); } if (!string.IsNullOrWhiteSpace(co.TantargyHorvatNev)) { InsertTantargyNyelv(dal, targyEnt, AnyanyelvEnum.horvat, co.TantargyHorvatNev); } if (!string.IsNullOrWhiteSpace(co.TantargyRomanNev)) { InsertTantargyNyelv(dal, targyEnt, AnyanyelvEnum.roman, co.TantargyRomanNev); } if (!string.IsNullOrWhiteSpace(co.TantargySzerbNev)) { InsertTantargyNyelv(dal, targyEnt, AnyanyelvEnum.szerb, co.TantargySzerbNev); } } }); } public TantargyCO GetTantargyById(int targyId) { return Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.Tantargy(); var targy = dal.GetTantargy(targyId); var nyelvek = targy.TantargyNyelv.Where(x => !x.Torolt).ToList(); var nemet = nyelvek.FirstOrDefault(x => x.NyelvId == (int)AnyanyelvEnum.nemet); var horvat = nyelvek.FirstOrDefault(x => x.NyelvId == (int)AnyanyelvEnum.horvat); var roman = nyelvek.FirstOrDefault(x => x.NyelvId == (int)AnyanyelvEnum.roman); var szerb = nyelvek.FirstOrDefault(x => x.NyelvId == (int)AnyanyelvEnum.szerb); var co = new TantargyCO { ID = targy.ID, GyakorlatiTargy = targy.Gyakorlati, TantargyNev = targy.Nev, TantargyRovidNev = targy.Rovidnev, TargyKategoria = Convert.ToInt32(targy.TargyKategoria), TargyKategoriaNev = targy.TargyKategoria.GetDisplayName(TanevId), ESLTantargykategoria = Convert.ToInt32(targy.EslTantargyKategoriaId), ESLTantargykategoriaNev = targy.EslTantargyKategoriaId.GetDisplayName(TanevId), //Megbeszéltük AltantargyNyomtatvanyban = /*targy.Fotargy != null && targy.Fotargy.ID > 0 ? */targy.AltantargykentNyomtatvanyban, // : false; NevNyomtatvanyban = targy.NevNyomtatvanyban, isFoTargy = targy.Fotargye, TanevID = targy.TanevId, Tanev = targy.Tanev.Nev, TantargyAngolNev = targy.AngolNev, TantargyNemetNev = nemet?.Nev, TantargyHorvatNev = horvat?.Nev, TantargyRomanNev = roman?.Nev, TantargySzerbNev = szerb?.Nev, Sorszam = targy.Sorszam, Megjegyzes = targy.Megjegyzes, Gyakorlatigenyesseg = targy.Gyakorlatigenyesseg, IsAmiTargy = targy.IsAmiTargy, IsKollegiumiTargy = targy.IsKollegiumTargy, IsEgymiTargy = targy.IsEgymiTargy, IsFelnottOktatasTargy = targy.IsFelnottOktatasTargy, IsNincsBeloleOra = targy.IsNincsBeloleOra, IsOsztalyzattalErtekelheto = targy.IsOsztalyzattalErtekelheto, IsSzovegesenErtekelheto = targy.IsSzovegesenErtekelheto, IsSzazalekosanErtekelheto = targy.IsSzazalekosanErtekelheto, IsTanulmanyiAtlagbaNemSzamit = targy.IsTanulmanyiAtlagbaNemSzamit, IsOsztalynaplobanNemJelenikMeg = targy.IsOsztalynaplobaNemLatszik, IsOsztalyokOrarendjebenMegjelenik = !targy.IsOsztalyOrarendbeNemLatszik, IsMszgTargy = targy.IsMszgTargy, MufajTipusId = targy.MufajTipusId, TanszakTipusId = targy.TanszakTipusId, MuveszetiAgId = targy.MuveszetiAgId, }; if (targy.Fotargy != null && targy.Fotargy.ID > 0) { co.FoTargyID = targy.FotargyId; co.FoTargyNev = targy.Fotargy.Nev; } return co; }); } public void DeleteTantargyById(int targyId, bool updateTanoraEvesSorszam = true) { Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.Tantargy(); var tantargy = dal.GetTantargy(targyId); if ((tantargy.Nev == TantargyResource.DualisKepzes) || (tantargy.Nev == TantargyResource.ApaczaiKonzultacio)) { return; } dal.Delete(tantargy, IntezmenyId, TanevId, updateTanoraEvesSorszam); }); } public bool IsGyakorlatiTantargy(int tantargyId) { return Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.Tantargy(GridParameters); return dal.IsGyakorlatiTantargy(tantargyId); }); } public IDictionary GetTantargyakForDDL(int? tanarId = null, bool filterNincsBeloleOra = false, int? szervezetTipusEnumId = null, int? felhasznaloId = null, bool addMagatartasSzogalom = false, bool isSzakkepzo = false) { var dataSet = Dal.CustomConnection.Run(ConnectionType, h => h.Tantargy(GridParameters).GetTantargyDataSet(TanevId, tanarId, filterNincsBeloleOra)); if (szervezetTipusEnumId.IsEntityId() && felhasznaloId.IsEntityId()) { var szervezetHelper = new SzervezetHelper(ConnectionType); var alkalmazottSzervezetId = szervezetHelper.GetAlkalmazottSzervezetId(felhasznaloId.Value); var lathatoSzervezetIdList = szervezetHelper.GetLathatoSzervezetIdList(alkalmazottSzervezetId, SzervezetAdatokHalmazaEnum.SzervezetEsAlSzervezetek); var dualisKepzesTantargyId = new TantargyHelper(ConnectionType).GetDualisKepzesTantargyId(); dataSet.Tables[0].Rows.Cast().Where(dataRow => { var szervezetId = SDAConvert.ToNullableInt32(dataRow["SzervezetId"]); if (szervezetId.IsEntityId()) { return !lathatoSzervezetIdList.Contains(szervezetId.Value); } return SDAConvert.ToInt32(dataRow["ID"]) != dualisKepzesTantargyId; }).ToList().ForEach(r => r.Delete()); dataSet.AcceptChanges(); } var result = new Dictionary(); if (addMagatartasSzogalom) { result.Add("-1", EnumsResource.MagatartasSzorgalom); } var items = LogicUtil.CreateDropdownContent(dataSet, "ID", "TantargyNev"); foreach (var item in items) { result.Add(item.Key, item.Value); } if (!isSzakkepzo) { result.RemoveDictionaryItemByValue(TantargyResource.ApaczaiKonzultacio); } if (szervezetTipusEnumId != (int)SzervezetTipusEnum.Dualis) { result.RemoveDictionaryItemByValue(TantargyResource.DualisKepzes); } return result; } public List GetTantargyakForComboBox(int? tanarId = null, bool isSzakkepzo = false, bool isFromSzervezet = false) { return Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.Tantargy(GridParameters); var dataset = dal.GetTantargyDataSet(TanevId, tanarId); var result = dataset.CreateMvcGroupedSelectListItem("ID", "TantargyNev", "Targykategoria_DNAME"); if (!isSzakkepzo) { result.RemoveAll(_ => _.Text == TantargyResource.ApaczaiKonzultacio); } if (!isFromSzervezet) { result.RemoveAll(_ => _.Text == TantargyResource.DualisKepzes); } return result; }); } public IDictionary GetFotargyak(int kiveve = 0) { return Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.Tantargy(); var kiveveId = kiveve > 0 ? (int?)kiveve : null; return LogicUtil.CreateDropdownContent(h.Tantargy(GridParameters).GetFotargyak(kiveveId), "ID", "Nev"); }); } public IDictionary GetFotargyakByTanev() { return Dal.CustomConnection.Run(ConnectionType, h => { return LogicUtil.CreateDropdownContent(h.Tantargy(GridParameters).GetFotargyakByTanev(TanevId), "ID", "Nev"); }); } public List GetTanarTantargyaiByTanevCsoportositva(string egyebGroupName = null, bool filterNincsBeloleOra = false, bool isFromSzervezet = false, bool isSzakkepzo = false) { return Dal.CustomConnection.Run(ConnectionType, h => { /*Egyéb tantárgyak*/ if (string.IsNullOrWhiteSpace(egyebGroupName)) { egyebGroupName = StringResourcesUtil.GetString(3350); } var ds = h.Tantargy().GetTanarTantargyaiByTanevCsoportositva(TanevId, egyebGroupName, filterNincsBeloleOra); var result = ds.CreateMvcGroupedSelectListItem("ID", "TantargyNev", "GroupName"); if (!isSzakkepzo) { result.RemoveAll(s => s.Text == TantargyResource.ApaczaiKonzultacio); } if (!isFromSzervezet) { result.RemoveAll(s => s.Text == TantargyResource.DualisKepzes); } return !isFromSzervezet ? result : result.Where(x => x.Text == TantargyResource.DualisKepzes).ToList(); }); } public void TantargyTobbesModify(TantargyTobbesModositasCO co) { Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.Tantargy(); var tantargy = dal.GetTantargy(co.TantargyId); if ((tantargy.Nev == TantargyResource.DualisKepzes) || (tantargy.Nev == TantargyResource.ApaczaiKonzultacio)) { return; } if (co.TargyKategoria.HasValue) { tantargy.TargyKategoria = co.TargyKategoria.Value; } if (co.EslTargyKategoria.HasValue) { tantargy.EslTantargyKategoriaId = co.EslTargyKategoria.Value; } if (co.FoTargyId.HasValue) { tantargy.FotargyId = co.FoTargyId.Value; } if (co.FoTargy.HasValue) { tantargy.Fotargye = co.FoTargy.Value; if (co.FoTargy.Value) { tantargy.FotargyId = -1; } } if (co.GyakorlatiTargy.HasValue) { tantargy.Gyakorlati = co.GyakorlatiTargy.Value; } if (co.IsAmiTargy.HasValue) { tantargy.IsAmiTargy = co.IsAmiTargy.Value; } if (co.IsMszgTargy.HasValue) { tantargy.IsMszgTargy = co.IsMszgTargy.Value; } if (co.IsKollegiumiTargy.HasValue) { tantargy.IsKollegiumTargy = co.IsKollegiumiTargy.Value; } if (co.IsFelnottoktatasTargy.HasValue) { tantargy.IsFelnottOktatasTargy = co.IsFelnottoktatasTargy.Value; } if (co.IsNincsBeloleOra.HasValue) { tantargy.IsNincsBeloleOra = co.IsNincsBeloleOra.Value; } if (co.IsEgymiTargy.HasValue) { tantargy.IsEgymiTargy = co.IsEgymiTargy.Value; } if (co.AltantargykentNyomtatvanyban.HasValue) { tantargy.AltantargykentNyomtatvanyban = co.AltantargykentNyomtatvanyban.Value; } if (co.Sorszam.HasValue) { tantargy.Sorszam = co.Sorszam.Value; } dal.FullUpdate(tantargy); }); } public List GetFotargyhozTartozikAltargy(List tantargyIdList) { return Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.Tantargy(); var dataSet = dal.GetFotargyhozTartozoAltargyak(tantargyIdList); var tantargyakEnumerableList = dataSet.Tables[0].AsEnumerable(); var egyediFotargyak = tantargyakEnumerableList.GroupBy(x => x.Field(0)).Select(x => x.Key).ToList(); var errorList = new List(); foreach (var fotargy in egyediFotargyak) { var altargyList = tantargyakEnumerableList.Where(x => x.Field(0).Equals(fotargy)).Select(s => s.Field(1)).ToList(); if (altargyList.Any()) { errorList.Add($"{TantargyResource.Fotargy}: {fotargy} - {TantargyResource.Altantargy}: {string.Join(", ", altargyList)}"); } } return errorList; }); } #region Export public MemoryStream GetExportTantargyakMindenAdataExcelExport( string tantargyNev = null, int? tantargyKategoriaId = null, int? eslTargykategoriaTipusId = null, int? isErtekelesKorlatozva = null, int? isFotargy = null, int? fotargyId = null, int? isGyakorlati = null, string rovidNev = null, string bizonyitvanyNev = null, int? isAltantargykentBizonyitvanyban = null, int? isNincsBeloleOra = null, int? isOsztalyNaplobanNemJelenikMeg = null, int? isOsztalyokOrarendjebenMegjelenik = null, int? isTanulmanyiAtlagbaSzamit = null, int? isAmiTargy = null, int? isKollegiumTargy = null, int? isEgymiTargy = null, int? isFelnottoktatasTargy = null, int? isMszgTargy = null, string angolNev = null, string nemetNev = null, string horvatNev = null, string romanNev = null, string szerbNev = null, bool? nincsTantargykategoria = null, bool? isFromSzervezet = null, bool? isSzakkepzo = null) { return Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.Tantargy(); var dataSet = dal.GetExportTantargyakMindenAdataExcelExport(TanevId, tantargyNev, tantargyKategoriaId, eslTargykategoriaTipusId, isErtekelesKorlatozva, isFotargy, fotargyId, isGyakorlati, rovidNev, bizonyitvanyNev, isAltantargykentBizonyitvanyban, isNincsBeloleOra, isOsztalyNaplobanNemJelenikMeg, isOsztalyokOrarendjebenMegjelenik, isTanulmanyiAtlagbaSzamit, isAmiTargy, isKollegiumTargy, isEgymiTargy, isFelnottoktatasTargy, isMszgTargy, angolNev, nemetNev, horvatNev, romanNev, szerbNev, nincsTantargykategoria); var dataTable = dataSet.Tables[0]; dataTable.Columns.Remove("KategoriaOrder"); dataTable.Columns.Remove("NevOrder"); if (isSzakkepzo.HasValue && !isSzakkepzo.Value) { dataTable = RemoveTantargyRowsByColumnValue(dataTable, TantargyResource.ApaczaiKonzultacio); } if (isFromSzervezet.HasValue && !isFromSzervezet.Value) { dataTable = RemoveTantargyRowsByColumnValue(dataTable, TantargyResource.DualisKepzes); } ExportLogic.TryCreateHeaderIfNotExist(dataTable); var stream = new MemoryStream(); using (var excel = new ExcelPackage(stream)) { var workSheet = excel.Workbook.Worksheets.Add(TantargyResource.TantargyakMindenAdata); 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; }); } private DataTable RemoveTantargyRowsByColumnValue(DataTable dataTable, string value) { var columnIndex = dataTable.Columns.IndexOf($"{TantargyResource.TantargyNev}"); foreach (DataRow row in dataTable.Rows) { if (row[columnIndex].ToString() == value) row.Delete(); } dataTable.AcceptChanges(); return dataTable; } #endregion Export public List GetTantargyCoList(bool isRendezoOszlopokKell = false) { var dataSet = Dal.CustomConnection.Run(ConnectionType, dalHandler => dalHandler.Tantargy().GetTantargyDataSet(TanevId, isRendezoOszlopokKell)); var result = new List(); foreach (DataRow dataRow in dataSet.Tables[0].Rows) { var item = new TantargyItemCo(dataRow, isRendezoOszlopokKell); result.Add(item); } return result; } public List GetTantargyCoList(TantargySearchCo searchCo) { var ds = Dal.CustomConnection.Run(ConnectionType, h => h.Tantargy().GetTantargyDataSet(TanevId, false)); var result = new List(); foreach (var dataRow in ds.Tables[0].AsEnumerable()) { result.Add(new TantargyItemCo(dataRow, false)); } return FilterTantargyItemCoList(result, searchCo); } public (int?, int?, string) GetTantargyAMISablonhoz(int amiTantargySablonId) { int? tantargyId = null; int? amiTantargyId = null; var tantargyNev = string.Empty; return Dal.CustomConnection.Run(ConnectionType, h => { var ds = h.Tantargy().GetTantargyAMISablonhoz(TanevId, amiTantargySablonId); foreach (DataRow row in ds.Tables[0].Rows) { tantargyId = SDAConvert.ToNullableInt32(row["TantargyId"]); amiTantargyId = SDAConvert.ToNullableInt32(row["AMITantargyId"]); tantargyNev = SDAConvert.ToString(row["TantargyNev"]); break; } return (tantargyId, amiTantargyId, tantargyNev); }); } public DataSet GetTantargyakSablonokkal() { return Dal.CustomConnection.Run(ConnectionType, h => { return h.Tantargy().GetTantargyakSablonokkal(TanevId); }); } public List GetTantargyakEgyesErtekelessel(List tantargyIdList) { return Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.Tantargy(); var dataSet = dal.GetTantargyakEgyesErtekelessel(TanevId, IntezmenyId, tantargyIdList); var tantargyak = dataSet.Tables[0].AsEnumerable() .Select(r => r.Field(0)) .ToList(); return tantargyak; }); } public List GetTantargyakNincsBeloleOra() { return Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.Tantargy(); return dal.GetTantargyakNincsBeloleOra(TanevId).Tables[0].AsEnumerable() .Select(r => r.Field("TantargyNev")).ToList(); }); } private void InsertTantargyNyelv(ITantargyDal dal, ITantargy entity, AnyanyelvEnum nyelvEnum, string value) { var targyNyelv = dal.GetTantargyNyelv(); targyNyelv.Nev = value; targyNyelv.NyelvId = (int)nyelvEnum; targyNyelv.TantargyId = entity.ID; targyNyelv.TanevId = entity.TanevId; targyNyelv.IntezmenyId = entity.IntezmenyId; dal.InsertNyelv(targyNyelv); } private void UpdateTantargyNyelv(ITantargyDal dal, ITantargy entity, AnyanyelvEnum nyelvEnum, string value) { var nyelvEntity = entity.TantargyNyelv.Where(x => x.NyelvId == (int)nyelvEnum).FirstOrDefault(); if (nyelvEntity != null) { nyelvEntity.Nev = value; dal.FullUpdateNyelv(nyelvEntity); } else { InsertTantargyNyelv(dal, entity, nyelvEnum, value); } } private List FilterTantargyItemCoList(List coList, TantargySearchCo searchCo) { if (searchCo == null) { return coList; } IEnumerable result = coList; if (!string.IsNullOrWhiteSpace(searchCo.TantargyNev)) { result = result.Where(x => x.Nev.ToLower().RemoveDiacritics().Contains(searchCo.TantargyNev.ToLower().RemoveDiacritics())); } if (searchCo.TantargyKategoriaID.HasValue) { result = result.Where(x => x.TargykategoriaTipusId == searchCo.TantargyKategoriaID.Value); } if (searchCo.EslTargykategoriaTipusId.HasValue) { result = result.Where(x => x.EslTargykategoriaTipusId == searchCo.EslTargykategoriaTipusId.Value); } if (searchCo.IsErtekelesKorlatozva.HasValue) { result = result.Where(x => x.IsErtekelesKorlatozva == searchCo.IsErtekelesKorlatozva.ToBool()); } if (searchCo.IsFotargy.HasValue) { result = result.Where(x => x.IsFotargy == searchCo.IsFotargy.ToBool()); } if (searchCo.KeresesFotargyID.HasValue) { result = result.Where(x => x.FotargyId == searchCo.KeresesFotargyID.Value); } if (searchCo.IsGyakorlati.HasValue) { result = result.Where(x => x.IsGyakorlatiTargy == searchCo.IsGyakorlati.ToBool()); } if (searchCo.IsAltantargykentBizonyitvanyban.HasValue) { result = result.Where(x => x.IsAltantargykentBizonyitvanyban == searchCo.IsAltantargykentBizonyitvanyban.ToBool()); } if (searchCo.IsNincsBeloleOra.HasValue) { result = result.Where(x => x.IsNincsBeloleOra == searchCo.IsNincsBeloleOra.ToBool()); } if (searchCo.IsOsztalyNaplobanNemJelenikMeg.HasValue) { result = result.Where(x => x.IsOsztalyNaplobanNemJelenikMeg == searchCo.IsOsztalyNaplobanNemJelenikMeg.ToBool()); } if (searchCo.IsOsztalyokOrarendjebenMegjelenik.HasValue) { result = result.Where(x => x.IsOsztalyokOrarendjebenMegjelenik == searchCo.IsOsztalyokOrarendjebenMegjelenik.ToBool()); } if (searchCo.IsTanulmanyiAtlagbaSzamit.HasValue) { result = result.Where(x => x.IsTanulmanyiAtlagbaSzamit == searchCo.IsTanulmanyiAtlagbaSzamit.ToBool()); } if (searchCo.IsAmiTargy.HasValue) { result = result.Where(x => x.IsAmiTargy == searchCo.IsAmiTargy.ToBool()); } if (searchCo.IsKollegiumTargy.HasValue) { result = result.Where(x => x.IsKollegiumTargy == searchCo.IsKollegiumTargy.ToBool()); } if (searchCo.IsEgymiTargy.HasValue) { result = result.Where(x => x.IsEgymiTargy == searchCo.IsEgymiTargy.ToBool()); } if (searchCo.IsFelnottoktatasTargy.HasValue) { result = result.Where(x => x.IsFelnottoktatasTargy == searchCo.IsFelnottoktatasTargy.ToBool()); } if (searchCo.IsMszgTargy.HasValue) { result = result.Where(x => x.IsMszgTargy == searchCo.IsMszgTargy.ToBool()); } if (!string.IsNullOrWhiteSpace(searchCo.AngolNev)) { result = result.Where(x => x.AngolNev?.ToLower().Contains(searchCo.AngolNev.ToLower()) ?? false); } if (!string.IsNullOrWhiteSpace(searchCo.NemetNev)) { result = result.Where(x => x.NemetNev?.ToLower().Contains(searchCo.NemetNev.ToLower()) ?? false); } if (!string.IsNullOrWhiteSpace(searchCo.HorvatNev)) { result = result.Where(x => x.HorvatNev?.ToLower().Contains(searchCo.HorvatNev.ToLower()) ?? false); } if (!string.IsNullOrWhiteSpace(searchCo.RomanNev)) { result = result.Where(x => x.RomanNev?.ToLower().Contains(searchCo.RomanNev.ToLower()) ?? false); } if (!string.IsNullOrWhiteSpace(searchCo.SzerbNev)) { result = result.Where(x => x.SzerbNev?.ToLower().Contains(searchCo.SzerbNev.ToLower()) ?? false); } if (!string.IsNullOrWhiteSpace(searchCo.RovidNev)) { result = result.Where(x => x.RovidNev.Contains(searchCo.RovidNev)); } if (!string.IsNullOrWhiteSpace(searchCo.BizonyitvanyNev)) { result = result.Where(x => x.BizonyitvanyNev.Contains(searchCo.BizonyitvanyNev)); } if (searchCo.nincsTantargykategoria.HasValue && searchCo.nincsTantargykategoria.Value) { result = result.Where(x => x.TargykategoriaTipusId == (int)TargyKategoriaTipusEnum.na); } if (!searchCo.IsFromSzervezet) { result = result.Where(x => !x.Nev.Equals(TantargyResource.DualisKepzes, StringComparison.OrdinalIgnoreCase)); } if (!searchCo.IsSzakkepzo) { result = result.Where(x => !x.Nev.Equals(TantargyResource.ApaczaiKonzultacio, StringComparison.OrdinalIgnoreCase)); } return result.ToList(); } public (bool isOsztalyzattalErtekelheto, bool isSzovegesenErtekelheto, bool isSzazalekosanErtekelheto) GetErtekelesKorlatozasok(int tantargyId) { return Dal.CustomConnection.Run(ConnectionType, (h) => { var dal = h.Tantargy(); return dal.GetErtekelesKorlatozasok(tantargyId); }); } public int? GetDualisKepzesTantargyId() { return Dal.CustomConnection.Run(ConnectionType, h => { return h.Tantargy().GetDualisKepzesTantargyId(IntezmenyId, TanevId); }); } } }