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

902 lines
35 KiB
C#

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<TargyKategoriaTipusEnum>(TanevId),
ESLTantargykategoria = Convert.ToInt32(targy.EslTantargyKategoriaId),
ESLTantargykategoriaNev = targy.EslTantargyKategoriaId.GetDisplayName<ESLTantargykategoriaEnum>(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<string, string> 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<DataRow>().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<string, string>();
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<SelectListItem> 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<string, string> 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<string, string> GetFotargyakByTanev()
{
return Dal.CustomConnection.Run(ConnectionType, h =>
{
return LogicUtil.CreateDropdownContent(h.Tantargy(GridParameters).GetFotargyakByTanev(TanevId), "ID", "Nev");
});
}
public List<SelectListItem> 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<string> GetFotargyhozTartozikAltargy(List<int> 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<string>(0)).Select(x => x.Key).ToList();
var errorList = new List<string>();
foreach (var fotargy in egyediFotargyak)
{
var altargyList = tantargyakEnumerableList.Where(x => x.Field<string>(0).Equals(fotargy)).Select(s => s.Field<string>(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<TantargyItemCo> GetTantargyCoList(bool isRendezoOszlopokKell = false)
{
var dataSet = Dal.CustomConnection.Run(ConnectionType, dalHandler => dalHandler.Tantargy().GetTantargyDataSet(TanevId, isRendezoOszlopokKell));
var result = new List<TantargyItemCo>();
foreach (DataRow dataRow in dataSet.Tables[0].Rows)
{
var item = new TantargyItemCo(dataRow, isRendezoOszlopokKell);
result.Add(item);
}
return result;
}
public List<TantargyItemCo> GetTantargyCoList(TantargySearchCo searchCo)
{
var ds = Dal.CustomConnection.Run(ConnectionType, h => h.Tantargy().GetTantargyDataSet(TanevId, false));
var result = new List<TantargyItemCo>();
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<string> GetTantargyakEgyesErtekelessel(List<int> 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<string>(0))
.ToList();
return tantargyak;
});
}
public List<string> GetTantargyakNincsBeloleOra()
{
return Dal.CustomConnection.Run(ConnectionType, h =>
{
var dal = h.Tantargy();
return dal.GetTantargyakNincsBeloleOra(TanevId).Tables[0].AsEnumerable()
.Select(r => r.Field<string>("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<TantargyItemCo> FilterTantargyItemCoList(List<TantargyItemCo> coList, TantargySearchCo searchCo)
{
if (searchCo == null)
{
return coList;
}
IEnumerable<TantargyItemCo> 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);
});
}
}
}