219 lines
10 KiB
C#
219 lines
10 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Data;
|
|
using System.Linq;
|
|
using Kreta.BusinessLogic.Classes;
|
|
using Kreta.BusinessLogic.HelperClasses;
|
|
using Kreta.Client;
|
|
using Kreta.Client.Mdsz.Dto;
|
|
using Kreta.Core;
|
|
using Kreta.Core.ConnectionType;
|
|
using Kreta.Core.Exceptions;
|
|
using Kreta.DataAccess.Interfaces;
|
|
using Kreta.DataAccessManual;
|
|
using Kreta.DataAccessManual.Interfaces;
|
|
using Kreta.DataAccessManual.ParameterClasses;
|
|
using Kreta.DataAccessManual.Util;
|
|
using Kreta.Enums;
|
|
using Kreta.Enums.ManualEnums;
|
|
using Kreta.Framework;
|
|
using Kreta.Framework.Logging;
|
|
using Kreta.Resources;
|
|
|
|
namespace Kreta.BusinessLogic.Helpers
|
|
{
|
|
public class DiakolimpiaHelper : LogicBase
|
|
{
|
|
public DiakolimpiaHelper(IConnectionType connectionType) : base(connectionType) { }
|
|
|
|
public DataSet GetDiakolimpiaGrid(DiakolimpiaSearchCO searchCO)
|
|
{
|
|
return Dal.CustomConnection.Run(ConnectionType, (h) =>
|
|
{
|
|
var dal = h.DiakolimpiaDAL(GridParameters);
|
|
return dal.GetDiakolimpiaGrid(ConvertSearchCOToPCO(searchCO), TanevId);
|
|
});
|
|
}
|
|
|
|
public string GetFeladhelySorszam() //amit az mdsz feladatellátási hely sorszámnak hív, az nálunk a működési hely azonosítója
|
|
{
|
|
return Dal.CustomConnection.Run(ConnectionType, (h) =>
|
|
{
|
|
var mukodesiHelyhelper = new MukodesiHelyHelper(new DalHandlerConnectionType(ConnectionType, h));
|
|
var tanarHelper = new TanarHelper(new DalHandlerConnectionType(ConnectionType, h));
|
|
var feladHelyHelper = new FeladatEllatasiHelyHelper(new DalHandlerConnectionType(ConnectionType, h));
|
|
var tanar = tanarHelper.GetTanarAdatok(FelhasznaloId);
|
|
if (!tanar.FeladatellatasiHely.IsEntityId())
|
|
{
|
|
return "001";
|
|
}
|
|
var feladHely = feladHelyHelper.GetFeladatEllatasiHelyAdatok(tanar.FeladatellatasiHely.Value);
|
|
var sorszam = mukodesiHelyhelper.GetMukodesiHelyAdatok(feladHely.MukodesiHelyID).MukodesiHelyAzonosito;
|
|
|
|
return string.IsNullOrWhiteSpace(sorszam) ? "001" : sorszam;
|
|
});
|
|
}
|
|
|
|
public string GetFeladhelySorszambyId(int id)
|
|
{
|
|
return Dal.CustomConnection.Run(ConnectionType, (h) =>
|
|
{
|
|
var mukodesiHelyhelper = new MukodesiHelyHelper(new DalHandlerConnectionType(ConnectionType, h));
|
|
var feladHelyHelper = new FeladatEllatasiHelyHelper(new DalHandlerConnectionType(ConnectionType, h));
|
|
var feladHely = feladHelyHelper.GetFeladatEllatasiHelyAdatok(id);
|
|
var data = mukodesiHelyhelper.GetMukodesiHelyAdatok(feladHely.MukodesiHelyID);
|
|
return string.IsNullOrWhiteSpace(data.MukodesiHelyAzonosito) ? "001" : data.MukodesiHelyAzonosito;
|
|
});
|
|
}
|
|
|
|
public string GetDataForMdszInterface(List<int> tanuloIds, string feladhelySorszam)
|
|
{
|
|
var dto = new MdszDto();
|
|
var tanar = new TanarAdatCO();
|
|
var mukodesiHely = new MukodesiHelyCO();
|
|
var elkuldottTanulok = new List<string>();
|
|
|
|
Dal.CustomConnection.Run(ConnectionType, (h) =>
|
|
{
|
|
var intezmeny = h.IntezmenyDal().Get(IntezmenyId);
|
|
|
|
var helper = new TanarHelper(new DalHandlerConnectionType(ConnectionType, h));
|
|
tanar = helper.GetTanarAdatok(FelhasznaloId);
|
|
if (tanar.FeladatellatasiHely.IsEntityId())
|
|
{
|
|
var feladHelyId = tanar.FeladatellatasiHely;
|
|
var mukodesiHelyHelper = new MukodesiHelyHelper(new DalHandlerConnectionType(ConnectionType, h));
|
|
|
|
var feladHelyHelper = new FeladatEllatasiHelyHelper(new DalHandlerConnectionType(ConnectionType, h));
|
|
var feladHely = feladHelyHelper.GetFeladatEllatasiHelyAdatok(feladHelyId.Value);
|
|
mukodesiHely = mukodesiHelyHelper.GetMukodesiHelyAdatok(feladHely.MukodesiHelyID);
|
|
|
|
var intezmenyAdatok = intezmeny.IntezmenyAdatok.First(x => x.IntezmenyId == IntezmenyId && x.TanevId == TanevId && !x.Torolt);
|
|
var intezmenyJellemzoi = feladHelyHelper.GetOsztalyJellemzoi();
|
|
var intezmenyTip = intezmenyJellemzoi[OsztalyJellemzoEnum.IsSzakkepzeses] ? "2" : "1";
|
|
|
|
SetMdszCoAlapAdatok(dto, intezmenyAdatok, tanar, mukodesiHely, feladhelySorszam, intezmenyTip);
|
|
|
|
SetMdszDiakok(tanuloIds, dto, h, elkuldottTanulok);
|
|
}
|
|
});
|
|
|
|
var mdszClient = new MdszClient(ApplicationData.MdszUrl);
|
|
var responseMessage = mdszClient.SendData(dto, ApplicationData.MdszUserName, ApplicationData.MdszPassword);
|
|
|
|
if (!responseMessage.Equals(AdminisztracioResource.AKuldesSikeresVolt))
|
|
{
|
|
throw new BlException(responseMessage);
|
|
}
|
|
|
|
if (elkuldottTanulok.Count < 11)
|
|
{
|
|
responseMessage += $"{Core.Constants.General.Sortores}{AdminisztracioResource.ElkuldottTanulok} {string.Join(", ", elkuldottTanulok)}";
|
|
}
|
|
else
|
|
{
|
|
responseMessage += string.Format($"{Core.Constants.General.Sortores}{AdminisztracioResource.SikeresenNevezve0Tanulo}", elkuldottTanulok.Count);
|
|
}
|
|
|
|
SDAServer.Instance.Logger.CustomEvent(Events.DiakolimpiaCsomag, LogLevel.INFO, responseMessage);
|
|
SikeresAdatokMentese(dto);
|
|
|
|
return responseMessage;
|
|
}
|
|
|
|
private void SikeresAdatokMentese(MdszDto dto)
|
|
{
|
|
Dal.CustomConnection.Run(ConnectionType, h =>
|
|
{
|
|
var dal = h.DiakolimpiaDAL();
|
|
foreach (var diak in dto.Diakok)
|
|
{
|
|
var entity = dal.Get();
|
|
entity.Datum = DateTime.Now;
|
|
entity.TanuloId = diak.Id;
|
|
entity.TanarId = dto.Tanar.Id;
|
|
|
|
dal.Insert(entity);
|
|
}
|
|
});
|
|
}
|
|
|
|
private void SetMdszDiakok(List<int> tanuloIds, MdszDto dto, IDalHandler h, List<string> elkuldottTanulok)
|
|
{
|
|
dto.Diakok = new List<MdszDto.DiakDto>();
|
|
var tanuloDal = h.Tanulo();
|
|
foreach (var tanuloId in tanuloIds)
|
|
{
|
|
var tanulo = tanuloDal.Get(tanuloId);
|
|
var diak = new MdszDto.DiakDto();
|
|
diak.Om = tanulo.OktatasiAzonosito ?? string.Empty;
|
|
diak.Nev = tanulo.NyomtatasiNev ?? string.Empty;
|
|
diak.SzuletesiNev = tanulo.SzuletesiNev ?? string.Empty;
|
|
diak.SzuletesiHely = tanulo.SzuletesiHely ?? string.Empty;
|
|
diak.SzuletesiIdo = tanulo.SzuletesiDatum.ToString("yyyy.MM.dd");
|
|
diak.AnyjaNeve = tanulo.AnyjaNeve ?? string.Empty;
|
|
diak.Neme = tanulo.Neme == (int)NemEnum.Ferfi ? "F" : "L";
|
|
|
|
diak.Id = tanulo.ID;
|
|
|
|
dto.Diakok.Add(diak);
|
|
if (!string.IsNullOrWhiteSpace(diak.Nev))
|
|
elkuldottTanulok.Add(diak.Nev);
|
|
}
|
|
}
|
|
|
|
private void SetMdszCoAlapAdatok(MdszDto dto, IIntezmenyAdatok intezmenyAdatok, TanarAdatCO tanar, MukodesiHelyCO mukodesiHely, string feladhelySorszam, string intezmenyTip)
|
|
{
|
|
dto.Iskola = new MdszDto.IskolaDto();
|
|
dto.Iskola.Om = $"{intezmenyAdatok.OMKod}/{feladhelySorszam}";
|
|
dto.Iskola.Nev = mukodesiHely.Nev ?? string.Empty;
|
|
dto.Iskola.RovidNev = /*intezmenyAdatok.RovidNev ??*/ string.Empty;
|
|
dto.Iskola.Adoszam = string.Empty;
|
|
dto.Iskola.Url = /*intezmenyAdatok.IntezmenyHonlapja ??*/ string.Empty;
|
|
dto.Iskola.Telefon = mukodesiHely.Telefonszam ?? string.Empty;
|
|
dto.Iskola.Fax = mukodesiHely.Fax ?? string.Empty;
|
|
dto.Iskola.Email = mukodesiHely.Email ?? string.Empty;
|
|
dto.Iskola.VezetoNeve = mukodesiHely.VezetoNeve ?? string.Empty;
|
|
dto.Iskola.CimIrsz = mukodesiHely.Iranyitoszam ?? string.Empty;
|
|
dto.Iskola.CimVaros = mukodesiHely.Varos ?? string.Empty;
|
|
dto.Iskola.CimKozteruletNevJelleg = $"{mukodesiHely.Kozterulet} {mukodesiHely.KozteruletJellegeNev}";
|
|
dto.Iskola.CimHsz = mukodesiHely.Szam ?? string.Empty;
|
|
dto.Iskola.IntezmenyNev = intezmenyAdatok.Nev ?? string.Empty;
|
|
dto.Iskola.IntezmenyRovidNev = intezmenyAdatok.RovidNev ?? string.Empty;
|
|
dto.Iskola.IntezmenyAdoszam = string.Empty;
|
|
dto.Iskola.IntezmenyUrl = intezmenyAdatok.IntezmenyHonlapja ?? string.Empty;
|
|
dto.Iskola.IntezmenyTelefon = intezmenyAdatok.Telefonszam ?? string.Empty;
|
|
dto.Iskola.IntezmenyFax = mukodesiHely.Fax ?? string.Empty;
|
|
dto.Iskola.IntezmenyEmail = intezmenyAdatok.EmailCim ?? string.Empty;
|
|
dto.Iskola.IntezmenyVezetoNev = intezmenyAdatok.IgazgatoNeve ?? string.Empty;
|
|
dto.Iskola.IntezmenyCimIrsz = intezmenyAdatok.IranyitoSzam ?? string.Empty;
|
|
dto.Iskola.IntezmenyCimVaros = intezmenyAdatok.Varos ?? string.Empty;
|
|
dto.Iskola.IntezmenyCimKozteruletNevJelleg = $"{intezmenyAdatok.KozteruletNev} {intezmenyAdatok.KozteruletJellegeNev}";
|
|
dto.Iskola.IntezmenyCimHsz = intezmenyAdatok.Hazszam ?? string.Empty;
|
|
dto.Iskola.IntezmenyAzon = IntezmenyAzonosito;
|
|
dto.Iskola.IntezmenyTip = intezmenyTip;
|
|
|
|
dto.Tanar = new MdszDto.TanarDto();
|
|
dto.Tanar.Om = tanar.OktatasiAzonosito ?? string.Empty;
|
|
dto.Tanar.Nev = Extensions.NameExtensions.GetNevSorrendben("F", tanar.Elotag, tanar.MunkavallaloCsaladiNev, tanar.MunkavallaloUtonev);
|
|
dto.Tanar.Login = tanar.BelepesiNev ?? string.Empty;
|
|
dto.Tanar.Email = tanar.Email ?? string.Empty;
|
|
dto.Tanar.Telefon = tanar.Telefon ?? string.Empty;
|
|
|
|
dto.Tanar.Id = tanar.Id.Value;
|
|
}
|
|
|
|
private DiakolimpiaSearchPCO ConvertSearchCOToPCO(DiakolimpiaSearchCO searchCO)
|
|
{
|
|
return new DiakolimpiaSearchPCO
|
|
{
|
|
SearchNev = searchCO.SearchNev,
|
|
SearchSzuletesiDatumtol = searchCO.SearchSzuletesiDatumtol,
|
|
SearchSzuletesiDatumig = searchCO.SearchSzuletesiDatumig,
|
|
SearchAnyjaNeve = searchCO.SearchAnyjaNeve,
|
|
SearchOktatasiAzonosito = searchCO.SearchOktatasiAzonosito,
|
|
SearchOsztalya = searchCO.SearchOsztalya
|
|
};
|
|
}
|
|
}
|
|
}
|