250 lines
11 KiB
C#
250 lines
11 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Data;
|
|
using System.Linq;
|
|
using Kreta.BusinessLogic.HelperClasses;
|
|
using Kreta.BusinessLogic.Interfaces;
|
|
using Kreta.BusinessLogic.Utils;
|
|
using Kreta.Core;
|
|
using Kreta.Core.ConnectionType;
|
|
using Kreta.DataAccessManual;
|
|
using Kreta.DataAccessManual.ParameterClasses;
|
|
using Kreta.DataAccessManual.Util;
|
|
using Kreta.Enums;
|
|
|
|
namespace Kreta.BusinessLogic.Helpers
|
|
{
|
|
public class UjSzktSzakmajegyzekOsszerendelesHelper : LogicBase
|
|
{
|
|
#region Fields
|
|
|
|
private readonly IFileServiceHelper _fileServiceHelper;
|
|
|
|
#endregion Fields
|
|
|
|
public UjSzktSzakmajegyzekOsszerendelesHelper(IConnectionType connectionType) : base(connectionType) { }
|
|
|
|
public UjSzktSzakmajegyzekOsszerendelesHelper(IConnectionType connectionType, IFileServiceHelper fileServiceHelper) : base(connectionType)
|
|
{
|
|
_fileServiceHelper = fileServiceHelper ?? throw new ArgumentNullException(nameof(fileServiceHelper));
|
|
}
|
|
|
|
public UjSzktSzakmajegyzekOsszerendelesItemCo GetUjSzktSzakmajegyzekOsszerendelesCo(int id)
|
|
{
|
|
var result = GetUjSzktSzakmajegyzekOsszerendelesCoList(new List<int> { id })?.Single();
|
|
return result;
|
|
}
|
|
|
|
public List<UjSzktSzakmajegyzekOsszerendelesItemCo> GetUjSzktSzakmajegyzekOsszerendelesCoList(List<int> ids)
|
|
{
|
|
var idsJson = CommonUtils.GetEntitasIdJson(ids);
|
|
var result = GetUjSzktSzakmajegyzekOsszerendelesCoList(idsJson);
|
|
|
|
return result;
|
|
}
|
|
|
|
public List<UjSzktSzakmajegyzekOsszerendelesItemCo> GetUjSzktSzakmajegyzekOsszerendelesCoList(UjSzktSzakmajegyzekOsszerendelesSearchCo searchCo)
|
|
{
|
|
var coList = GetUjSzktSzakmajegyzekOsszerendelesCoList();
|
|
var result = FilterCoList(coList, searchCo);
|
|
return result;
|
|
}
|
|
|
|
public void SaveUjSzktSzakmajegyzekOsszerendelesCo(UjSzktSzakmajegyzekOsszerendelesItemCo co, bool isClearDataWhenPropertyNull = true, bool isFileModify = false)
|
|
{
|
|
SaveUjSzktSzakmajegyzekOsszerendelesCoList(new List<UjSzktSzakmajegyzekOsszerendelesItemCo> { co }, isClearDataWhenPropertyNull, isFileModify);
|
|
}
|
|
|
|
public void SaveUjSzktSzakmajegyzekOsszerendelesCoList(List<UjSzktSzakmajegyzekOsszerendelesItemCo> coList, bool isClearDataWhenPropertyNull = true, bool isFileModify = false)
|
|
{
|
|
Dal.CustomConnection.Run(ConnectionType, h =>
|
|
{
|
|
foreach (var co in coList)
|
|
{
|
|
var dal = h.UjSzktSzakmajegyzekOsszerendelesDal(GridParameters);
|
|
var entity = dal.Get(co.Id.Value);
|
|
if (co.KepzesreFogadhatoTanulokSzama.HasValue)
|
|
{
|
|
entity.KepzesreFogadhatoTanulokSzama = co.KepzesreFogadhatoTanulokSzama.Value;
|
|
}
|
|
else
|
|
{
|
|
if (isClearDataWhenPropertyNull)
|
|
{
|
|
entity.KepzesreFogadhatoTanulokSzama = 0;
|
|
}
|
|
}
|
|
|
|
if (!string.IsNullOrWhiteSpace(co.EszkozallomanyAvultsaga))
|
|
{
|
|
entity.EszkozallomanyAvultsaga = co.EszkozallomanyAvultsaga;
|
|
}
|
|
else
|
|
{
|
|
if (isClearDataWhenPropertyNull)
|
|
{
|
|
entity.EszkozallomanyAvultsaga = null;
|
|
}
|
|
}
|
|
|
|
if (!string.IsNullOrWhiteSpace(co.EszkozokDarabszama))
|
|
{
|
|
entity.EszkozokDarabszama = co.EszkozokDarabszama;
|
|
}
|
|
else
|
|
{
|
|
if (isClearDataWhenPropertyNull)
|
|
{
|
|
entity.EszkozokDarabszama = null;
|
|
}
|
|
}
|
|
|
|
if (!string.IsNullOrWhiteSpace(co.EgyebEszkozallomanyInformacio))
|
|
{
|
|
entity.EgyebEszkozallomanyInformacio = co.EgyebEszkozallomanyInformacio;
|
|
}
|
|
else
|
|
{
|
|
if (isClearDataWhenPropertyNull)
|
|
{
|
|
entity.EgyebEszkozallomanyInformacio = null;
|
|
}
|
|
}
|
|
|
|
if (!string.IsNullOrWhiteSpace(co.TanmuhelyekSzama))
|
|
{
|
|
entity.TanmuhelyekSzama = co.TanmuhelyekSzama;
|
|
}
|
|
else
|
|
{
|
|
if (isClearDataWhenPropertyNull)
|
|
{
|
|
entity.TanmuhelyekSzama = null;
|
|
}
|
|
}
|
|
|
|
if (isFileModify)
|
|
{
|
|
var fileHelper = new FileHelper(new DalHandlerConnectionType(ConnectionType, h), _fileServiceHelper);
|
|
var fileId = entity.FileId;
|
|
if ((entity.FileId.IsEntityId() && co.File != null) || (entity.FileId.IsEntityId() && !co.FileId.IsEntityId()))
|
|
{
|
|
fileHelper.DeleteFile(entity.FileId, true);
|
|
fileId = -1;
|
|
}
|
|
|
|
if (co.File != null)
|
|
{
|
|
var index = co.File.ContentAsBase64EncodedString.IndexOf(',');
|
|
var rawContentAsBase64EncodedString = co.File.ContentAsBase64EncodedString.Substring(index + 1);
|
|
var path = $"UjSzktSzakmajegyzekOsszerendelesFile/{IntezmenyAzonosito}/{TanevId}/{entity.ID}";
|
|
fileId = fileHelper.UploadFile(co.File.Name, Convert.FromBase64String(rawContentAsBase64EncodedString), co.File.Type, path) ?? -1;
|
|
}
|
|
|
|
if (entity.FileId != fileId)
|
|
{
|
|
entity.FileId = fileId;
|
|
}
|
|
}
|
|
|
|
dal.FullUpdate(entity);
|
|
}
|
|
});
|
|
}
|
|
|
|
public List<OktatottSzakmaTanuloItemCo> GetOktatottSzakmaTanuloCoList(UjSzktSzakmajegyzekOsszerendelesItemCo co)
|
|
{
|
|
var searchPco = new OktatottSzakmaTanulokSearchPco
|
|
{
|
|
OktatasiNevelesiFeladatId = co.OktatasiNevelesiFeladatId.Value,
|
|
AgazatUjSzktTipusId = co.AgazatUjSzktTipusId.Value,
|
|
SzakmaTipusId = co.SzakmaTipusId,
|
|
SzakmaIranyTipusId = co.SzakmaIranyTipusId
|
|
};
|
|
|
|
var dataSet = Dal.CustomConnection.Run(ConnectionType, dalHandler => dalHandler.UjSzktSzakmajegyzekOsszerendelesDal().GetOktatottSzakmaTanuloDataSet(TanevId, searchPco));
|
|
|
|
var result = new List<OktatottSzakmaTanuloItemCo>();
|
|
foreach (DataRow dataRow in dataSet.Tables[0].Rows)
|
|
{
|
|
var item = new OktatottSzakmaTanuloItemCo(dataRow);
|
|
result.Add(item);
|
|
}
|
|
|
|
return result;
|
|
}
|
|
|
|
public static string GetSzakkepesitesMegnevezese(int? szakmaIranyTipusId, string szakmaIranyTipusNev, string szakmaTipusNev)
|
|
{
|
|
// NOTE: A SzakkepesitesMegnevezese property-nek csak a szakma irány típus vagy szakma típus nevét kell átadni
|
|
// mindenféle évszám vagy azonosító nélkül, ezért, ha van ilyen, akkor levágjuk azokat.
|
|
if (!string.IsNullOrWhiteSpace(szakmaIranyTipusNev) && szakmaIranyTipusId != (int)SzakmairanyTipusEnum.na)
|
|
{
|
|
return szakmaIranyTipusNev.EndsWith("(2020)") ?
|
|
szakmaIranyTipusNev.Substring(0, szakmaIranyTipusNev.Length - 7) : // NOTE: Pl.: Vegyipar (2020)
|
|
szakmaIranyTipusNev;
|
|
}
|
|
|
|
if (szakmaTipusNev.EndsWith(")"))
|
|
{
|
|
return szakmaTipusNev.EndsWith("(2020)") ?
|
|
szakmaTipusNev.Substring(0, szakmaTipusNev.Length - 22) : // NOTE: Pl.: Műanyag-feldolgozó - 4 0722 24 04 (2020)
|
|
szakmaTipusNev.Substring(0, szakmaTipusNev.Length - 15); // NOTE: Pl.: Csecsemő- és gyermekápoló (5 0913 03 04)
|
|
}
|
|
|
|
return szakmaTipusNev;
|
|
}
|
|
|
|
private List<UjSzktSzakmajegyzekOsszerendelesItemCo> GetUjSzktSzakmajegyzekOsszerendelesCoList(string idsJson = null)
|
|
{
|
|
var dataSet = Dal.CustomConnection.Run(ConnectionType, dalHandler =>
|
|
dalHandler.UjSzktSzakmajegyzekOsszerendelesDal().GetUjSzktSzakmajegyzekOsszerendelesDataSet(TanevId, idsJson));
|
|
|
|
var result = new List<UjSzktSzakmajegyzekOsszerendelesItemCo>();
|
|
result.AddRange(dataSet.Tables[0].AsEnumerable().Select(x => new UjSzktSzakmajegyzekOsszerendelesItemCo(x)));
|
|
return result;
|
|
}
|
|
|
|
private static List<UjSzktSzakmajegyzekOsszerendelesItemCo> FilterCoList(List<UjSzktSzakmajegyzekOsszerendelesItemCo> coList, UjSzktSzakmajegyzekOsszerendelesSearchCo searchCo)
|
|
{
|
|
if (searchCo == null)
|
|
{
|
|
return coList;
|
|
}
|
|
|
|
IEnumerable<UjSzktSzakmajegyzekOsszerendelesItemCo> result = coList;
|
|
|
|
if (!string.IsNullOrWhiteSpace(searchCo.SzakkepesitesMegnevezese))
|
|
{
|
|
result = result.Where(x => x.SzakkepesitesMegnevezese.ToUpper().Contains(searchCo.SzakkepesitesMegnevezese.ToUpper()));
|
|
}
|
|
|
|
if (searchCo.AgazatiBesorolas.HasValue)
|
|
{
|
|
result = result.Where(x => x.AgazatiBesorolas == searchCo.AgazatiBesorolas);
|
|
}
|
|
|
|
if (!string.IsNullOrWhiteSpace(searchCo.SzakkepesitesAzonositoszam))
|
|
{
|
|
result = result.Where(x => x.SzakkepesitesAzonositoszam.ToUpper().Contains(searchCo.SzakkepesitesAzonositoszam.ToUpper()));
|
|
}
|
|
|
|
if (searchCo.JelenlegZajloKepzes.HasValue)
|
|
{
|
|
result = result.Where(x => x.JelenlegZajloKepzes == searchCo.JelenlegZajloKepzes);
|
|
}
|
|
|
|
if (searchCo.KepzesreFogadhatoTanulokSzama.HasValue)
|
|
{
|
|
result = result.Where(x => x.KepzesreFogadhatoTanulokSzama == searchCo.KepzesreFogadhatoTanulokSzama);
|
|
}
|
|
|
|
if (searchCo.JelenlegKepzettTanulokSzama.HasValue)
|
|
{
|
|
result = result.Where(x => x.JelenlegKepzettTanulokSzama == searchCo.JelenlegKepzettTanulokSzama);
|
|
}
|
|
|
|
return result.ToList();
|
|
}
|
|
}
|
|
}
|