409 lines
19 KiB
C#
409 lines
19 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Data;
|
|
using System.Linq;
|
|
using Kreta.BusinessLogic.Classes;
|
|
using Kreta.BusinessLogic.HelperClasses;
|
|
using Kreta.BusinessLogic.Helpers.DokumentumHelpers;
|
|
using Kreta.BusinessLogic.Helpers.SystemSettings;
|
|
using Kreta.BusinessLogic.Logic;
|
|
using Kreta.BusinessLogic.Logic.TanuloErtekeles;
|
|
using Kreta.Core;
|
|
using Kreta.Core.ConnectionType;
|
|
using Kreta.DataAccess.Interfaces;
|
|
using Kreta.DataAccessManual;
|
|
using Kreta.DataAccessManual.Interfaces;
|
|
using Kreta.DataAccessManual.Util;
|
|
using Kreta.Enums;
|
|
using Kreta.Resources;
|
|
using Newtonsoft.Json;
|
|
|
|
namespace Kreta.BusinessLogic.Helpers
|
|
{
|
|
public class TanuloErtekelesMondatbankHelper : LogicBase
|
|
{
|
|
#region Fields
|
|
|
|
public const int MagatartasTantargyId = -2;
|
|
|
|
public const int SzorgalomTantargyId = -1;
|
|
|
|
#endregion
|
|
|
|
#region Constructors
|
|
|
|
public TanuloErtekelesMondatbankHelper(IConnectionType connectionType) : base(connectionType) { }
|
|
|
|
#endregion Constructors
|
|
|
|
public DataSet GetTanuloErtekelesMondatbankGrid(TanuloErtekelesMondatbankSearchCO tanuloErtekelesMondatbankSearchCO)
|
|
{
|
|
var evfolyamTipusIds = tanuloErtekelesMondatbankSearchCO.EvfolyamTipusIdList.Count > 0 ? string.Join(",", tanuloErtekelesMondatbankSearchCO.EvfolyamTipusIdList) : null;
|
|
var tanuloErtekelesTipusIds = tanuloErtekelesMondatbankSearchCO.TanuloErtekelesTipusIdList.Count > 0 ? string.Join(",", tanuloErtekelesMondatbankSearchCO.TanuloErtekelesTipusIdList) : null;
|
|
var tantargyTipusIdJSON = tanuloErtekelesMondatbankSearchCO.TantargyIdList.Count > 0 ? JsonConvert.SerializeObject(tanuloErtekelesMondatbankSearchCO.TantargyIdList) : null;
|
|
|
|
return Dal.CustomConnection.Run(ConnectionType, h =>
|
|
{
|
|
DataSet dataSet = h.TanuloErtekelesMondatbankDal(GridParameters).GetTanuloErtekelesMondatbankSzuresData(TanevId, evfolyamTipusIds, tanuloErtekelesTipusIds, tantargyTipusIdJSON, tanuloErtekelesMondatbankSearchCO.RovidNev, tanuloErtekelesMondatbankSearchCO.Szoveg);
|
|
foreach (DataRow dataRow in dataSet.Tables[0].Rows.Cast<DataRow>().ToList())
|
|
{
|
|
dataRow["Szoveg"] = RichTextLogic.CutHtmlTagsAndDecodeAndBR2Space(dataRow["Szoveg"].ToString());
|
|
}
|
|
return dataSet;
|
|
});
|
|
}
|
|
|
|
public DataSet GetMondatbankSelectListData(int tanuloErtekelesTipusId, int tipusId, int? tantargyId, int? evfolyamTipusId)
|
|
{
|
|
DataSet dataSet = new DataSet();
|
|
|
|
DataTable dataTable = new DataTable();
|
|
dataTable.Columns.Add(new DataColumn("MondatbankSelectPopupId", typeof(int)));
|
|
dataTable.Columns.Add(new DataColumn("MondatbankSelectPopupRovidNev", typeof(string)));
|
|
dataTable.Columns.Add(new DataColumn("MondatbankSelectPopupSzoveg", typeof(string)));
|
|
dataTable.Columns.Add(new DataColumn("MondatbankSelectPopupSzovegNemet", typeof(string)));
|
|
dataTable.Columns.Add(new DataColumn("MondatbankSelectPopupSzovegHorvat", typeof(string)));
|
|
dataTable.Columns.Add(new DataColumn("MondatbankSelectPopupSzovegRoman", typeof(string)));
|
|
dataTable.Columns.Add(new DataColumn("MondatbankSelectPopupSzovegSzerb", typeof(string)));
|
|
|
|
List<TanuloErtekelesMondatbankItemCo> tanuloErtekelesMondatbankItemCos = GetTanuloErtekelesMondatbankCoList(tanuloErtekelesTipusId, tipusId, tantargyId, evfolyamTipusId);
|
|
foreach (TanuloErtekelesMondatbankItemCo item in tanuloErtekelesMondatbankItemCos)
|
|
{
|
|
DataRow dataRow = dataTable.NewRow();
|
|
dataRow["MondatbankSelectPopupId"] = item.Id;
|
|
dataRow["MondatbankSelectPopupRovidNev"] = item.RovidNev;
|
|
dataRow["MondatbankSelectPopupSzoveg"] = item.Szoveg;
|
|
dataRow["MondatbankSelectPopupSzovegNemet"] = item.SzovegNemet;
|
|
dataRow["MondatbankSelectPopupSzovegHorvat"] = item.SzovegHorvat;
|
|
dataRow["MondatbankSelectPopupSzovegRoman"] = item.SzovegRoman;
|
|
dataRow["MondatbankSelectPopupSzovegSzerb"] = item.SzovegSzerb;
|
|
dataTable.Rows.Add(dataRow);
|
|
}
|
|
|
|
dataSet.Tables.Add(dataTable);
|
|
return dataSet;
|
|
}
|
|
|
|
public List<TanuloErtekelesMondatbankItemCo> GetTanuloErtekelesMondatbankCoList(int? tanuloErtekelesTipusId = null, int? tipusId = null, int? tantargyId = null, int? evfolyamTipusId = null)
|
|
{
|
|
DataSet dataSet = null;
|
|
List<int> nemzetiDokumentumNyelvek = null;
|
|
Dal.CustomConnection.Run(ConnectionType, dalHandler =>
|
|
{
|
|
dataSet = dalHandler.TanuloErtekelesMondatbankDal(GridParameters).GetTanuloErtekelesMondatbankData(TanevId, tanuloErtekelesTipusId, tipusId, tantargyId, evfolyamTipusId);
|
|
nemzetiDokumentumNyelvek = new SystemSettingsHelper(new DalHandlerConnectionType(ConnectionType, dalHandler)).GetSystemSettingValue<List<int>>(RendszerBeallitasTipusEnum.Nemzeti_Nyelvi_Dokumentum_Nyelvek);
|
|
});
|
|
|
|
var result = new List<TanuloErtekelesMondatbankItemCo>();
|
|
foreach (DataRow row in dataSet.Tables[0].Rows)
|
|
{
|
|
int id = SDAConvert.ToInt32(row["Id"]);
|
|
int? nyelvId = SDAConvert.ToNullableInt32(row["NyelvId"]);
|
|
string szovegNyelv = SDAConvert.ToString(row["SzovegNyelv"]).ReplaceMultipleSpacesAndTrim();
|
|
TanuloErtekelesMondatbankItemCo item = result.SingleOrDefault(x => x.Id == id);
|
|
if (item == null)
|
|
{
|
|
string rovidNev = SDAConvert.ToString(row["RovidNev"]).ReplaceMultipleSpacesAndTrim();
|
|
string szoveg = SDAConvert.ToString(row["Szoveg"]).ReplaceMultipleSpacesAndTrim();
|
|
string tanuloErtekelesTipusNev = !string.IsNullOrWhiteSpace(SDAConvert.ToString(row["TanuloErtekelesTipusId_DNAME"])) ? SDAConvert.ToString(row["TanuloErtekelesTipusId_DNAME"]) : CommonResource.Mind;
|
|
string tantargyNev = !string.IsNullOrWhiteSpace(SDAConvert.ToString(row["TantargyNev"]).ReplaceMultipleSpacesAndTrim()) ? SDAConvert.ToString(row["TantargyNev"]).ReplaceMultipleSpacesAndTrim() : CommonResource.Mind;
|
|
string evfolyamTipusNev = !string.IsNullOrWhiteSpace(SDAConvert.ToString(row["EvfolyamTipusId_DNAME"])) ? SDAConvert.ToString(row["EvfolyamTipusId_DNAME"]) : CommonResource.Mind;
|
|
|
|
item = new TanuloErtekelesMondatbankItemCo
|
|
{
|
|
Id = id,
|
|
RovidNev = rovidNev,
|
|
RovidNevComparableString = rovidNev?.ToComparableString(),
|
|
Szoveg = szoveg,
|
|
SzovegComparableString = szoveg?.ToComparableString(),
|
|
TanuloErtekelesTipusId = SDAConvert.ToNullableInt32(row["TanuloErtekelesTipusId"]) ?? 0,
|
|
TanuloErtekelesTipusNev = tanuloErtekelesTipusNev,
|
|
TanuloErtekelesTipusNevComparableString = tanuloErtekelesTipusNev?.ToComparableString(),
|
|
TipusId = SDAConvert.ToInt32(row["TipusId"]),
|
|
TipusNev = SDAConvert.ToString(row["TipusId_DNAME"]),
|
|
TantargyId = SDAConvert.ToNullableInt32(row["TantargyId"]) ?? 0,
|
|
TantargyNev = tantargyNev,
|
|
TantargyNevComparableString = tantargyNev?.ToComparableString(),
|
|
EvfolyamTipusId = SDAConvert.ToNullableInt32(row["EvfolyamTipusId"]) ?? 0,
|
|
EvfolyamTipusNev = evfolyamTipusNev,
|
|
EvfolyamTipusNevComparableString = evfolyamTipusNev?.ToComparableString(),
|
|
Importalt = SDAConvert.ToBooleanFromTF(row["Importalt"])
|
|
};
|
|
result.Add(item);
|
|
}
|
|
|
|
if (nemzetiDokumentumNyelvek.Any())
|
|
{
|
|
if (DokumentumNyelvesitesHelper.IsNemzetiDokumentumNyelvActive(nemzetiDokumentumNyelvek, AnyanyelvEnum.nemet) && nyelvId.IsEntityId() && nyelvId == (int)AnyanyelvEnum.nemet)
|
|
{
|
|
item.SzovegNemet = szovegNyelv;
|
|
}
|
|
|
|
if (DokumentumNyelvesitesHelper.IsNemzetiDokumentumNyelvActive(nemzetiDokumentumNyelvek, AnyanyelvEnum.horvat) && nyelvId.IsEntityId() && nyelvId == (int)AnyanyelvEnum.horvat)
|
|
{
|
|
item.SzovegHorvat = szovegNyelv;
|
|
}
|
|
|
|
if (DokumentumNyelvesitesHelper.IsNemzetiDokumentumNyelvActive(nemzetiDokumentumNyelvek, AnyanyelvEnum.roman) && nyelvId.IsEntityId() && nyelvId == (int)AnyanyelvEnum.roman)
|
|
{
|
|
item.SzovegRoman = szovegNyelv;
|
|
}
|
|
|
|
if (DokumentumNyelvesitesHelper.IsNemzetiDokumentumNyelvActive(nemzetiDokumentumNyelvek, AnyanyelvEnum.szerb) && nyelvId.IsEntityId() && nyelvId == (int)AnyanyelvEnum.szerb)
|
|
{
|
|
item.SzovegSzerb = szovegNyelv;
|
|
}
|
|
}
|
|
}
|
|
|
|
return result;
|
|
}
|
|
|
|
public TanuloErtekelesMondatbankItemCo GetTanuloErtekelesMondatbankItemById(int id)
|
|
{
|
|
IErtekelesMondatbank ertekelesMondatbank = null;
|
|
TanuloErtekelesMondatbankItemCo result = null;
|
|
|
|
List<int> nemzetiDokumentumNyelvek = null;
|
|
Dal.CustomConnection.Run(ConnectionType, dalHandler =>
|
|
{
|
|
ertekelesMondatbank = dalHandler.TanuloErtekelesMondatbankDal().Get(id);
|
|
nemzetiDokumentumNyelvek = new SystemSettingsHelper(new DalHandlerConnectionType(ConnectionType, dalHandler)).GetSystemSettingValue<List<int>>(RendszerBeallitasTipusEnum.Nemzeti_Nyelvi_Dokumentum_Nyelvek);
|
|
result = new TanuloErtekelesMondatbankItemCo(ertekelesMondatbank, nemzetiDokumentumNyelvek, TanevId);
|
|
});
|
|
|
|
return result;
|
|
}
|
|
|
|
public void SaveTanuloErtekelesMondatbankItem(TanuloErtekelesMondatbankItemCo co)
|
|
{
|
|
Dal.CustomConnection.Run(ConnectionType, h =>
|
|
{
|
|
ITanuloErtekelesMondatbankDal dal = h.TanuloErtekelesMondatbankDal();
|
|
|
|
bool isNew = !co.Id.IsEntityId();
|
|
var entity = isNew ? dal.Get() : dal.Get(co.Id.Value);
|
|
|
|
entity.RovidNev = co.RovidNev.ReplaceMultipleSpacesAndTrim();
|
|
string ertekelesSzovegFormazott = RichTextLogic.GetLegalHtmlString(co.Szoveg.Trim(), RichTextLogic.LegalFastReportHtmlTagList, true);
|
|
entity.Szoveg = ertekelesSzovegFormazott;
|
|
entity.ErtekelesTipusa = co.TanuloErtekelesTipusId;
|
|
entity.EvfolyamTipusa = co.EvfolyamTipusId;
|
|
if (co.TantargyId.IsEntityId())
|
|
{
|
|
entity.TantargyId = co.TantargyId.Value;
|
|
}
|
|
else if (entity.Tantargy != null)
|
|
{
|
|
entity.Tantargy = null;
|
|
}
|
|
|
|
entity.TipusId = co.TipusId;
|
|
|
|
if (isNew)
|
|
{
|
|
dal.Insert(entity);
|
|
}
|
|
else
|
|
{
|
|
dal.FullUpdate(entity);
|
|
}
|
|
|
|
List<int> nemzetiDokumentumNyelvek = new SystemSettingsHelper(new DalHandlerConnectionType(ConnectionType, h)).GetSystemSettingValue<List<int>>(RendszerBeallitasTipusEnum.Nemzeti_Nyelvi_Dokumentum_Nyelvek);
|
|
if (nemzetiDokumentumNyelvek.Any() && entity.ErtekelesTipusa.IsEntityId() && TanuloErtekelesLogicBase.NyelviesithetoTanuloErtekelesTipusIdList.Contains(entity.ErtekelesTipusa.Value))
|
|
{
|
|
if (DokumentumNyelvesitesHelper.IsNemzetiDokumentumNyelvActive(nemzetiDokumentumNyelvek, AnyanyelvEnum.nemet))
|
|
{
|
|
InsertOrUpdateMondatbankNyelv(dal, entity, AnyanyelvEnum.nemet, co.SzovegNemet);
|
|
}
|
|
|
|
if (DokumentumNyelvesitesHelper.IsNemzetiDokumentumNyelvActive(nemzetiDokumentumNyelvek, AnyanyelvEnum.horvat))
|
|
{
|
|
InsertOrUpdateMondatbankNyelv(dal, entity, AnyanyelvEnum.horvat, co.SzovegHorvat);
|
|
}
|
|
|
|
if (DokumentumNyelvesitesHelper.IsNemzetiDokumentumNyelvActive(nemzetiDokumentumNyelvek, AnyanyelvEnum.roman))
|
|
{
|
|
InsertOrUpdateMondatbankNyelv(dal, entity, AnyanyelvEnum.roman, co.SzovegRoman);
|
|
}
|
|
|
|
if (DokumentumNyelvesitesHelper.IsNemzetiDokumentumNyelvActive(nemzetiDokumentumNyelvek, AnyanyelvEnum.szerb))
|
|
{
|
|
InsertOrUpdateMondatbankNyelv(dal, entity, AnyanyelvEnum.szerb, co.SzovegSzerb);
|
|
}
|
|
}
|
|
});
|
|
}
|
|
|
|
private void InsertOrUpdateMondatbankNyelv(ITanuloErtekelesMondatbankDal dal, IErtekelesMondatbank entity, AnyanyelvEnum nyelvEnum, string szoveg)
|
|
{
|
|
IErtekelesMondatbankNyelv nyelvEntity = entity.ErtekelesMondatbankNyelv.FirstOrDefault(x => x.NyelvId == (int)nyelvEnum);
|
|
if (nyelvEntity != null)
|
|
{
|
|
nyelvEntity.Szoveg = szoveg;
|
|
if (string.IsNullOrWhiteSpace(nyelvEntity.Szoveg) && string.IsNullOrWhiteSpace(nyelvEntity.RovidNev))
|
|
{
|
|
dal.DeleteNyelv(nyelvEntity);
|
|
}
|
|
else
|
|
{
|
|
dal.FullUpdateNyelv(nyelvEntity);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (!string.IsNullOrWhiteSpace(szoveg))
|
|
{
|
|
nyelvEntity = dal.GetNyelv();
|
|
|
|
nyelvEntity.Szoveg = szoveg;
|
|
nyelvEntity.NyelvId = (int)nyelvEnum;
|
|
nyelvEntity.ErtekelesMondatbankId = entity.ID;
|
|
nyelvEntity.TanevId = entity.TanevId;
|
|
nyelvEntity.IntezmenyId = entity.IntezmenyId;
|
|
|
|
dal.InsertNyelv(nyelvEntity);
|
|
}
|
|
}
|
|
}
|
|
|
|
public (int count, string errorMessage) ModifyTanuloErtekelesMondatbankItems(TanuloErtekelesMondatbankTobbesItemCo tanuloErtekelesMondatbankTobbesItemCo)
|
|
{
|
|
string errorMsg = string.Empty;
|
|
var counter = 0;
|
|
|
|
return Dal.CustomConnection.Run(ConnectionType, h =>
|
|
{
|
|
ITanuloErtekelesMondatbankDal dal = h.TanuloErtekelesMondatbankDal();
|
|
|
|
foreach (var id in tanuloErtekelesMondatbankTobbesItemCo.SelectedIdList)
|
|
{
|
|
try
|
|
{
|
|
ModifyTanuloErtekelesMondatbankTobbesItem(dal, id, tanuloErtekelesMondatbankTobbesItemCo);
|
|
counter++;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
errorMsg += $"{ex.Message}{Environment.NewLine}";
|
|
continue;
|
|
}
|
|
}
|
|
|
|
if (string.IsNullOrWhiteSpace(errorMsg))
|
|
return (counter, string.Format(ErrorResource.NSorModositasSikeres, counter));
|
|
|
|
if (counter > 0)
|
|
{
|
|
errorMsg += Environment.NewLine + string.Format(ErrorResource.NSorModositasSikeres, counter);
|
|
}
|
|
return (counter, errorMsg);
|
|
});
|
|
}
|
|
|
|
private void ModifyTanuloErtekelesMondatbankTobbesItem(ITanuloErtekelesMondatbankDal dal, int id, TanuloErtekelesMondatbankTobbesItemCo co)
|
|
{
|
|
bool needUpdate = false;
|
|
|
|
var entity = dal.Get(id);
|
|
|
|
if (co.RovidNev != null)
|
|
{
|
|
entity.RovidNev = co.RovidNev.ReplaceMultipleSpacesAndTrim();
|
|
needUpdate = true;
|
|
}
|
|
if (co.Szoveg != null)
|
|
{
|
|
entity.Szoveg = co.Szoveg.Trim();
|
|
needUpdate = true;
|
|
}
|
|
|
|
if (co.TanuloErtekelesTipusId != null)
|
|
{
|
|
entity.ErtekelesTipusa = co.TanuloErtekelesTipusId != 0 ? co.TanuloErtekelesTipusId : null;
|
|
needUpdate = true;
|
|
}
|
|
|
|
if (co.EvfolyamTipusId != null)
|
|
{
|
|
entity.EvfolyamTipusa = co.EvfolyamTipusId != 0 ? co.EvfolyamTipusId : null;
|
|
needUpdate = true;
|
|
}
|
|
|
|
if (co.TantargyId != null)
|
|
{
|
|
if (co.TantargyId.IsEntityId())
|
|
{
|
|
entity.TantargyId = co.TantargyId.Value;
|
|
needUpdate = true;
|
|
}
|
|
else if (entity.Tantargy != null)
|
|
{
|
|
entity.Tantargy = null;
|
|
needUpdate = true;
|
|
}
|
|
}
|
|
|
|
if (entity.TipusId != co.TipusId)
|
|
{
|
|
entity.TipusId = co.TipusId;
|
|
needUpdate = true;
|
|
}
|
|
|
|
if (needUpdate)
|
|
{
|
|
dal.FullUpdate(entity);
|
|
}
|
|
}
|
|
|
|
private void DeleteTanuloErtekelesMondatbankItem(ITanuloErtekelesMondatbankDal dal, int id)
|
|
{
|
|
dal.Delete(id);
|
|
}
|
|
|
|
public (int count, string errorMessage) DeleteTanuloErtekelesMondatbankItems(List<int> idList)
|
|
{
|
|
string errorMsg = string.Empty;
|
|
var counter = 0;
|
|
return Dal.CustomConnection.Run(ConnectionType, h =>
|
|
{
|
|
ITanuloErtekelesMondatbankDal dal = h.TanuloErtekelesMondatbankDal();
|
|
|
|
foreach (var id in idList)
|
|
{
|
|
try
|
|
{
|
|
DeleteTanuloErtekelesMondatbankItem(dal, id);
|
|
counter++;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
errorMsg += $"{ex.Message}{Environment.NewLine}";
|
|
}
|
|
}
|
|
|
|
if (string.IsNullOrWhiteSpace(errorMsg))
|
|
return (counter, string.Format(ErrorResource.NSorTorlesSikeres, counter));
|
|
|
|
if (counter > 0)
|
|
{
|
|
errorMsg += Environment.NewLine + string.Format(ErrorResource.NSorTorlesSikeres, counter);
|
|
}
|
|
return (counter, errorMsg);
|
|
});
|
|
}
|
|
|
|
public static int GetTanuloErtekelesMondatbankTipusIdByTantargyId(int? tantargyId)
|
|
{
|
|
switch (tantargyId)
|
|
{
|
|
case MagatartasTantargyId:
|
|
return (int)ErtMondatbankTipusEnum.Magatartas;
|
|
case SzorgalomTantargyId:
|
|
return (int)ErtMondatbankTipusEnum.Szorgalom;
|
|
default:
|
|
return (int)ErtMondatbankTipusEnum.Tantargy;
|
|
}
|
|
}
|
|
}
|
|
}
|