902 lines
35 KiB
C#
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);
|
|
});
|
|
}
|
|
}
|
|
}
|