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 { id })?.Single(); return result; } public List GetUjSzktSzakmajegyzekOsszerendelesCoList(List ids) { var idsJson = CommonUtils.GetEntitasIdJson(ids); var result = GetUjSzktSzakmajegyzekOsszerendelesCoList(idsJson); return result; } public List 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 { co }, isClearDataWhenPropertyNull, isFileModify); } public void SaveUjSzktSzakmajegyzekOsszerendelesCoList(List 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 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(); 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 GetUjSzktSzakmajegyzekOsszerendelesCoList(string idsJson = null) { var dataSet = Dal.CustomConnection.Run(ConnectionType, dalHandler => dalHandler.UjSzktSzakmajegyzekOsszerendelesDal().GetUjSzktSzakmajegyzekOsszerendelesDataSet(TanevId, idsJson)); var result = new List(); result.AddRange(dataSet.Tables[0].AsEnumerable().Select(x => new UjSzktSzakmajegyzekOsszerendelesItemCo(x))); return result; } private static List FilterCoList(List coList, UjSzktSzakmajegyzekOsszerendelesSearchCo searchCo) { if (searchCo == null) { return coList; } IEnumerable 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(); } } }