using System; using System.Collections.Generic; using System.Data; using System.Drawing; using System.IO; using System.Linq; using System.Web; using System.Web.Mvc; using System.Xml; using Kreta.BusinessLogic.Classes; using Kreta.BusinessLogic.HelperClasses; using Kreta.BusinessLogic.HelperClasses.ImportCo; using Kreta.BusinessLogic.Helpers.ImportExport; using Kreta.BusinessLogic.Helpers.SystemSettings; using Kreta.Core; using Kreta.Core.ConnectionType; using Kreta.Core.Domain; using Kreta.Core.Exceptions; using Kreta.DataAccess.Interfaces; using Kreta.DataAccessManual; using Kreta.DataAccessManual.Interfaces; using Kreta.DataAccessManual.Util; using Kreta.Enums; using Kreta.Enums.ManualEnums; using Kreta.Framework; using Kreta.Resources; namespace Kreta.BusinessLogic.Helpers { public class FelhasznaloHelper : LogicBase { public FelhasznaloHelper(IConnectionType connectionType) : base(connectionType) { } public static readonly IEnumerable SzervezetiPermissions = new List { SzerepkorTipusEnum.Dualis_Admin }; public void UpdateLastLogin(string userName) { Dal.CustomConnection.Run(ConnectionType, h => { int? belepesId = h.Felhasznalo().GetAktualisFelhasznaloBelepesID(userName); h.FelhasznaloBelepes().UpdateLastLogin(belepesId.Value, DateTime.Now); }); } public XmlDocument GetUserProfileDocument() { return Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.Felhasznalo(); string profile = dal.GetUserProfile(); var xmlDocument = new XmlDocument(); //akkor üres ha törölve lett if (!string.IsNullOrWhiteSpace(profile)) { //adatok betöltése xmlDocument.LoadXml(profile); //Ha nem { var dal = h.Felhasznalo(); return dal.IsCsokkentettGondviselo(gondviseloId, IntezmenyId, TanevId); }); } public Dictionary GetFelhasznaloiSzerepkorok(string intezmenyiDictionaryEnvironmentName) { return Dal.CustomConnection.Run(ConnectionType, h => { var roles = h.RolesDAL().GetUserRoles(FelhasznaloId).AsEnumerable().Select(a => a["SZEREPKOR"].ToString()); var list = new List>(); foreach (var userrole in roles) { var roleType = (SzerepkorTipusEnum)Enum.Parse(typeof(SzerepkorTipusEnum), userrole); if (SzervezetiPermissions.Contains(roleType)) { list.Insert(0, new KeyValuePair(roleType, GetFelhasznaloiJogosultsagSzoveg(roleType, intezmenyiDictionaryEnvironmentName))); } else { list.Add(new KeyValuePair(roleType, GetFelhasznaloiJogosultsagSzoveg(roleType, intezmenyiDictionaryEnvironmentName))); } } var result = list.ToDictionary(x => x.Key, x => x.Value); return result; }); } public List GetFelhasznaloiJogosultsagok(int felhasznaloId, int szerepkorId) { return Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.RolesDAL(); return dal.GetFelhasznaloJogosultsag(felhasznaloId, szerepkorId).AsEnumerable().Select(a => a["JOG"].ToString()).ToList(); }); } public string GetFelhasznaloiJogosultsagSzoveg(SzerepkorTipusEnum roleType, string intezmenyiDictionaryEnvironmentName) { switch (roleType) { case SzerepkorTipusEnum.Adminisztrator: return JogosultsagResource.AdminisztraciosRendszer; case SzerepkorTipusEnum.Ellenorzo: return JogosultsagResource.ElektronikusEllenorzokonyv; case SzerepkorTipusEnum.Naplo: return JogosultsagResource.ElektronikusNaplo; case SzerepkorTipusEnum.Alairo: return JogosultsagResource.Alairo; case SzerepkorTipusEnum.eUgyintezo: return JogosultsagResource.eUgyintezo; case SzerepkorTipusEnum.Penztaros: return JogosultsagResource.Penztaros; case SzerepkorTipusEnum.PenzugyiAdmin: return JogosultsagResource.PenzugyiAdmin; case SzerepkorTipusEnum.GazdasagiUgyintezo: return JogosultsagResource.GazdasagiUgyintezo; case SzerepkorTipusEnum.TeremberletJelenletEllenorzo: return JogosultsagResource.TeremberletJelenletEllenorzo; case SzerepkorTipusEnum.alkalmazott: return JogosultsagResource.Alkalmazott; case SzerepkorTipusEnum.EtkezesiAdmin: return JogosultsagResource.EtkezesiAdmin; case SzerepkorTipusEnum.EtkezesiEllenorzo: return JogosultsagResource.EtkezesiEllenorzo; case SzerepkorTipusEnum.FokuszMonitoring: return JogosultsagResource.FokuszMonitoring; case SzerepkorTipusEnum.IskolaEgeszsegugyiKoordinator: return JogosultsagResource.IskolaEgeszsegugyiKoordinator; case SzerepkorTipusEnum.Vedono: return JogosultsagResource.Vedono; case SzerepkorTipusEnum.Iskolaorvos: return JogosultsagResource.Iskolaorvos; case SzerepkorTipusEnum.IskolaEgeszsegugyiAsszisztens: return JogosultsagResource.IskolaEgeszsegugyiAsszisztens; case SzerepkorTipusEnum.IskolaEgeszsegugyiLekerdezo: return JogosultsagResource.IskolaEgeszsegugyiLekerdezo; case SzerepkorTipusEnum.BelepokartyaAdmin: return JogosultsagResource.BelepokartyaAdmin; case SzerepkorTipusEnum.LeltarConcerned: return JogosultsagResource.LeltarConcerned; case SzerepkorTipusEnum.Konyvtaros: return JogosultsagResource.Konyvtaros; case SzerepkorTipusEnum.FELTAR_EsetKezelo: return intezmenyiDictionaryEnvironmentName == IntezmenyResource.EnvironmentNszfh ? JogosultsagResource.FELTAR_EsetKezelo : JogosultsagResource.TESZEK_EsetKezelo; case SzerepkorTipusEnum.FELTAR_EszkozMenedzser: return intezmenyiDictionaryEnvironmentName == IntezmenyResource.EnvironmentNszfh ? JogosultsagResource.FELTAR_EszkozMenedzser : JogosultsagResource.TESZEK_EszkozMenedzser; case SzerepkorTipusEnum.KerdoivKitolto_KerdoivKezelo: return JogosultsagResource.KerdoivKitolto_KerdoivKezelo; case SzerepkorTipusEnum.Dualis_Admin: return JogosultsagResource.DualisAdmin; case SzerepkorTipusEnum.FELTAR_EsetJovahagyo: return intezmenyiDictionaryEnvironmentName == IntezmenyResource.EnvironmentNszfh ? JogosultsagResource.FELTAR_EsetJovahagyo : JogosultsagResource.TESZEK_EsetJovahagyo; case SzerepkorTipusEnum.FELTAR_EsetKozremukodo: return intezmenyiDictionaryEnvironmentName == IntezmenyResource.EnvironmentNszfh ? JogosultsagResource.FELTAR_EsetKozremukodo : JogosultsagResource.TESZEK_EsetKozremukodo; case SzerepkorTipusEnum.FELTAR_Munkavegzo: return intezmenyiDictionaryEnvironmentName == IntezmenyResource.EnvironmentNszfh ? JogosultsagResource.FELTAR_Munkavegzo : JogosultsagResource.TESZEK_Munkavegzo; case SzerepkorTipusEnum.FELTAR_SzerzodesMenedzser: return intezmenyiDictionaryEnvironmentName == IntezmenyResource.EnvironmentNszfh ? JogosultsagResource.FELTAR_SzerzodesMenedzser : JogosultsagResource.TESZEK_SzerzodesMenedzser; } return null; } public string GetFirstEmailAddressForCurrentUser(int id) { return Dal.CustomConnection.Run(ConnectionType, h => { var felhasznalo = h.Felhasznalo().Get(id); if (felhasznalo.Email.Count == 0) { return string.Empty; } if (felhasznalo.Email[0].EmailCim == null) { return string.Empty; } if (felhasznalo.Email.All(x => x.Torolt)) { return string.Empty; } return felhasznalo.Email[0].EmailCim; }); } public List Check4TFelhOktAzonValidation( List tanevIds, int pCheckValidationType, string pSzuletesiNevSorrend, string pSzuletesiNevElotag, string pSzuletesiCsaladiNev, string pSzuletesiUtonev, string pAnyjaNevSorrend, string pAnyjaElotag, string pAnyjaCsaladiNev, string pAnyjaUtonev, string pSzuletesiHely, DateTime? pSzuletesiDatum, string pOktatasiAzonosito, string pBejelentkezesiNev, int? pFelvetelStatuszaFelveve = null, int? pFelvetelStatuszaNemFelveve = null) { var list = new List(); DataSet ds = Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.Felhasznalo(); return dal.Check4TFelhOktAzonValidation(tanevIds, pCheckValidationType, pSzuletesiNevSorrend, pSzuletesiNevElotag, pSzuletesiCsaladiNev, pSzuletesiUtonev, pAnyjaNevSorrend, pAnyjaElotag, pAnyjaCsaladiNev, pAnyjaUtonev, pSzuletesiHely, pSzuletesiDatum, pOktatasiAzonosito, pBejelentkezesiNev, pFelvetelStatuszaFelveve, pFelvetelStatuszaNemFelveve); }); if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0) { foreach (DataRow row in ds.Tables[0].Rows) { if (pCheckValidationType == (int)Validation4TEnum.Nebulo) { list.Add(new Felh4TOktAzonValidationCo() { ID = row.Field("ID"), ValidationType = row.Field("ValidationType") }); } else { list.Add(new Felh4TOktAzonValidationCo(row)); } } } return list; } public void Check4TFelhOktAzonValidation(int validationType, int entityId, int anotherTanevEntityId) { Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.Felhasznalo(); dal.OktAzon4TAlapjanFollowUp(validationType, entityId, anotherTanevEntityId); }); } public DataSet GetCimData(int id, bool isGondviselo) { return Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.Felhasznalo(GridParameters); return dal.GetSajatAdatlapCim(id, isGondviselo); }); } public DataSet GetTelefonData(int id) { return Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.Felhasznalo(GridParameters); return dal.GetUserTelefon(id); }); } public DataSet GetEmailData(int id) { return Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.Felhasznalo(GridParameters); return dal.GetUserEmailCim(id); }); } public List GetAlkalmazottakByOktatasiAzonosito(string oktatasiAzonosito) { return Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.Felhasznalo(); var ds = dal.GetAlkalmazottakByOktatasiAzonosito(oktatasiAzonosito, TanevId); return ds.Tables[0].AsEnumerable().Select(dataRow => SDAConvert.ToString(dataRow["Nev"])).ToList(); }); } public List GetTanulokByOktatasiAzonosito(string oktatasiAzonosito) { return Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.Felhasznalo(); var ds = dal.GetTanulokByOktatasiAzonosito(oktatasiAzonosito, TanevId); return ds.Tables[0].AsEnumerable().Select(dataRow => SDAConvert.ToString(dataRow["Nev"])).ToList(); }); } public string GetFelhasznaloOktatasiAzonosito(int id) { return Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.Felhasznalo(); return dal.GetFelhasznaloOktatasiAzonosito(id, TanevId); }); } public string GetGondviseloFelhasznaloBelepesiNeve(int userId) { return Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.Felhasznalo(); return dal.GetGondviseloFelhasznaloBelepesiNeve(userId, IntezmenyId, TanevId); }); } public string GetTanuloFelhasznaloBelepesiNeve(int userId) { return Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.Felhasznalo(); return dal.GetTanuloFelhasznaloBelepesiNeve(userId, IntezmenyId, TanevId); }); } public DateTime GetTanuloFelhasznaloSzuletesiDatum(int userId) { return Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.Felhasznalo(); return dal.GetTanuloFelhasznaloSzuletesiDatum(userId, IntezmenyId, TanevId); }); } public string GetNyomtatasiNev(int userId) { return Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.Felhasznalo(); return dal.Get(userId).NyomtatasiNev; }); } public DateTime GetTanuloSzuletesiDatumByGondviseloId(int userId) { return Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.Felhasznalo(); return dal.GetTanuloSzuletesiDatumByGondviseloId(userId, IntezmenyId, TanevId); }); } public bool GetVegzosEvfolyamTanulojaByUserId(int userId) { return Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.Felhasznalo(); return dal.GetVegzosEvfolyamTanulojaByUserId(userId); }); } public DataSet FelhasznaloKereses(FelhasznalokCO co, bool isHRModulEngedelyezett) { return Dal.CustomConnection.Run(ConnectionType, (h) => { var dal = h.Felhasznalo(GridParameters); return dal.GetFelhasznalok(IntezmenyId, TanevId, FelhasznalokCO.ConvertCOToPCO(co), isHRModulEngedelyezett, new SystemSettingsHelper(new DalHandlerConnectionType(ConnectionType, h)).GetSystemSettingValue(RendszerBeallitasTipusEnum.Lazar_Ervin_Program_kezelese)); }); } public List GetFelhasznaloList(FelhasznalokCO co, bool isHRModulEngedelyezett) { var ds = FelhasznaloKereses(co, isHRModulEngedelyezett); var result = new List(); foreach (DataRow dataRow in ds.Tables[0].Rows) { var item = new FelhasznaloGridItemCo(dataRow); result.Add(item); } return result; } private DataSet GetFelhasznalokOnlyAlkalmazottSzerepkor(IDalHandler h) { var dal = h.Felhasznalo(); return dal.GetFelhasznalokOnlyAlkalmazottSzerepkor(TanevId); } public List GetFelhasznaloIdsOnlyAlkalmazottSzerepkor() { return Dal.CustomConnection.Run(ConnectionType, (h) => { var felhasznalokOnlyAlkalmazottSzerepkor = GetFelhasznalokOnlyAlkalmazottSzerepkor(h).Tables[0].Rows; return felhasznalokOnlyAlkalmazottSzerepkor != null ? felhasznalokOnlyAlkalmazottSzerepkor.Cast().Select(row => row.Field("ID")).ToList() : new List(); }); } public List GetAdminFelhasznalok() { return Dal.CustomConnection.Run(ConnectionType, (h) => { var dal = h.Felhasznalo(); DataSet ds = h.Felhasznalo().GetAdminFelhasznalok(IntezmenyAzonosito); var result = new List(); foreach (DataRow row in ds.Tables[0].Rows) { result.Add(dal.Get(row.Field("ID"))); } return result; }); } public DataSet GetTanuloAdatForGondviselo(int gondviseloId) { return Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.Felhasznalo(GridParameters); return dal.GetTanuloAdatForGondviselo(gondviseloId); }); } public void FelhasznaloCimMentese(FelhasznaloElerhetosegCimCO adat, int? kovTanevId, bool isKirSzinkron = false) { Dal.CustomConnection.Run(ConnectionType, h => { var cimDal = h.Cim(); var felhasznaloDal = h.Felhasznalo(); IFelhasznalo felhasznalo = felhasznaloDal.Get(adat.FelhasznaloId); ICim FelhasznaloCim; if (adat.ID.IsEntityId()) { FelhasznaloCim = cimDal.Get(adat.ID.Value); } else { FelhasznaloCim = cimDal.Get(); FelhasznaloCim.TanevId = TanevId; } adat.CimTipus = adat.CimTipus.IsEntityId() ? adat.CimTipus : (int)CimTipusEnum.allando_lakcim; adat.Orszag = adat.Orszag.IsEntityId() ? adat.Orszag : (int)OrszagTipusEnum.Magyarorszag; SetFelhasznaloCimtDataForUpdate(FelhasznaloCim, adat, isKirSzinkron); if (adat.FelhasznaloId.IsEntityId()) { FelhasznaloCim.FelhasznaloId = adat.FelhasznaloId; if (adat.ID.IsEntityId()) { var letezoAzonosTipusuCimekSzama = felhasznalo.Cim.Count(x => !x.Torolt && x.CimTipusa == adat.CimTipus && x.ID != FelhasznaloCim.ID && x.GondviseloId == 0); if (letezoAzonosTipusuCimekSzama == 0) { cimDal.Update(FelhasznaloCim); UpdateCimKovTanev(h, kovTanevId, adat.FelhasznaloId); } else { throw new BlException(ErrorResource.AKivalsztottTipusuCimMarFellettveve); } } else { var azonosTipusuCimekSzama = felhasznalo.Cim.Count(x => !x.Torolt && x.CimTipusa == adat.CimTipus && x.GondviseloId == 0); if (azonosTipusuCimekSzama == 0) { cimDal.Insert(FelhasznaloCim); UpdateCimKovTanev(h, kovTanevId, adat.FelhasznaloId); } else { throw new BlException(ErrorResource.AKivalsztottTipusuCimMarFellettveve); } } } else { cimDal.Insert(FelhasznaloCim); cimDal.AddFelhasznaloCim(felhasznalo, FelhasznaloCim); } }); } private void SetFelhasznaloCimtDataForUpdate(ICim alkalmazottCim, FelhasznaloElerhetosegCimCO adat, bool isKirSzinkron) { if (isKirSzinkron) { alkalmazottCim.IranyitoSzam = adat.Iranyitoszam ?? alkalmazottCim.IranyitoSzam; alkalmazottCim.Varos = adat.HelysegNev ?? alkalmazottCim.Varos; alkalmazottCim.Kozterulet = adat.KozteruletNev ?? alkalmazottCim.Kozterulet; alkalmazottCim.KozteruletJellegeNev = adat.KozteruletTipusNev ?? alkalmazottCim.KozteruletJellegeNev; alkalmazottCim.Hazszam = adat.Hazszam ?? alkalmazottCim.Hazszam; alkalmazottCim.Emelet = adat.Emelet ?? alkalmazottCim.Emelet; alkalmazottCim.Ajto = adat.Ajto ?? alkalmazottCim.Ajto; alkalmazottCim.CimTipusa = adat.CimTipus.Value; alkalmazottCim.Orszag = adat.Orszag.Value; alkalmazottCim.Alapertelmezett = adat.Alapertelmezett; } else { alkalmazottCim.IranyitoSzam = adat.Iranyitoszam; alkalmazottCim.Varos = adat.HelysegNev; alkalmazottCim.Kozterulet = adat.KozteruletNev; alkalmazottCim.KozteruletJellegeNev = adat.KozteruletTipusNev; alkalmazottCim.Hazszam = adat.Hazszam; alkalmazottCim.Emelet = adat.Emelet; alkalmazottCim.Ajto = adat.Ajto; alkalmazottCim.CimTipusa = adat.CimTipus.Value; alkalmazottCim.Orszag = adat.Orszag.Value; alkalmazottCim.Alapertelmezett = adat.Alapertelmezett; } } public bool GetFirstCimByTipus(CimTipusEnum cimTipusEnum, int felhasznaloId, out int cimId) { int outCimId = 0; bool hasCim = Dal.CustomConnection.Run(ConnectionType, h => { var felhasznaloDal = h.Felhasznalo(); IFelhasznalo felhasznalo = felhasznaloDal.Get(felhasznaloId); IReadOnlyList cimLista = felhasznalo.Cim; if (cimLista.Any(x => !x.Torolt && x.CimTipusa == (int)cimTipusEnum)) { outCimId = cimLista.Where(x => !x.Torolt && x.CimTipusa == (int)cimTipusEnum).Select(x => x.ID).First(); return true; } outCimId = 0; return false; }); cimId = outCimId; return true; } public void FelhasznaloElerhetosegEmailMentese(FelhasznaloElerhetosegEmailCO adat, int? kovTanevId) { Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.Email(); if (adat.Alapertelmezett) { dal.SetAlapertelmezett(adat.FelhasznaloId, FelhasznaloId, TanevId); } IEmail dto; if (adat.ID.HasValue && adat.ID.Value > 0) { dto = dal.Get(adat.ID.Value); } else { dto = dal.Get(); dto.TanevId = TanevId; } dto.EmailCim = adat.EmailCim; dto.EmailTipusa = adat.EmailTipusa; dto.Alapertelmezett = adat.Alapertelmezett; dto.FelhasznaloId = adat.FelhasznaloId; if (adat.ID.HasValue && adat.ID.Value > 0) { dal.Update(dto); } else { dal.Insert(dto); } //entityhandler-ben lenne a helye, de a mentés folyamatában a sorrendezés miatt, nem kerülhet még oda if (kovTanevId.HasValue && kovTanevId != TanevId) { h.Felhasznalo().FollowUpFelhasznaloEmail(IntezmenyId, TanevId, kovTanevId.Value, adat.FelhasznaloId); } }); } private void UpdateCimKovTanev(IDalHandler h, int? kovTanevId, int felhasznaloId) { //entityhandler-ben lenne a helye, de a mentés folyamatában a sorrendezés miatt, nem kerülhet még oda if (felhasznaloId > 0 && kovTanevId.HasValue && kovTanevId != TanevId) { h.Felhasznalo().FollowUpCim(IntezmenyId, TanevId, kovTanevId.Value, felhasznaloId); } } public void FelhasznaloElerhetosegTelMentese(FelhasznaloElerhetosegTelCO adat, int? kovTanevId) { Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.Telefon(); if (adat.Alapertelmezett) { dal.SetTelefonAlapertelmezett(adat.FelhasznaloId, FelhasznaloId, TanevId); } ITelefon dto; if (adat.ID.HasValue && adat.ID.Value > 0) { dto = dal.Get(adat.ID.Value); } else { dto = dal.Get(); } dto.TelefonSzam = adat.Telefonszam; dto.TelefonTipusa = adat.TelefonTipusa; dto.Leiras = adat.Leiras; dto.FelhasznaloId = adat.FelhasznaloId; dto.TanevId = TanevId; dto.Alapertelmezett = adat.Alapertelmezett; if (adat.ID.HasValue && adat.ID.Value > 0) { dal.Update(dto); } else { dal.Insert(dto); } //entityhandler-ben lenne a helye, de a mentés folyamatában a sorrendezés miatt, nem kerülhet még oda if (kovTanevId.HasValue && kovTanevId != TanevId) { h.Felhasznalo().FollowUpTelefon(IntezmenyId, TanevId, kovTanevId.Value, adat.FelhasznaloId); } }); } public bool HasFelhasznaloAlapertelmezettTelefon(int felhasznaloId) { return Dal.CustomConnection.Run(ConnectionType, h => { var felhasznaloEntity = h.Felhasznalo().Get(felhasznaloId); return felhasznaloEntity.Telefon.Any(x => x.Alapertelmezett); }); } public bool HasFelhasznaloAlapertelmezettEmail(int felhasznaloId) { return Dal.CustomConnection.Run(ConnectionType, h => { var felhasznaloEntity = h.Alkalmazott().Get(felhasznaloId); return felhasznaloEntity.Email.Any(x => x.Alapertelmezett); }); } public KirFelhasznaloElerhetosegek GetFelhasznaloElerhetoseg(int felhasznaloId, bool isTanulo) { return Dal.CustomConnection.Run(ConnectionType, h => { IFelhasznaloDal dal = h.Felhasznalo(); return dal.GetFelhasznaloElerhetoseg(felhasznaloId, TanevId, isTanulo); }); } public string GetFelhasznaloEgyediAzonosito(int felhasznaloId) { return Dal.CustomConnection.Run(ConnectionType, h => { IFelhasznaloDal dal = h.Felhasznalo(); return dal.GetFelhasznaloEgyediAzonosito(IntezmenyId, felhasznaloId); }); } public (string EgyediAzonosito, string Nev) GetGondviseloAdat(int gondviseloId) { return Dal.CustomConnection.Run(ConnectionType, h => { var gondviselo = h.Gondviselo().Get(gondviseloId); return (gondviselo.EgyediAzonosito, gondviselo.Nev); }); } public void DeleteFelhasznaloBelepes(int felhasznaloId, bool isGondviselo) { Dal.CustomConnection.Run(ConnectionType, h => { if (!isGondviselo) { var felhDal = h.Felhasznalo(); var belepesId = felhDal.Get(felhasznaloId).FelhasznaloBelepes.Where(x => x.Gondviselo == null && x.Torolt == false).FirstOrDefault().ID; var belepesDal = h.FelhasznaloBelepes(); belepesDal.Delete(belepesId); } else { var gvDal = h.Gondviselo(); var belepesId = gvDal.Get(felhasznaloId).FelhasznaloBelepes.Where(x => x.Torolt == false).FirstOrDefault().ID; var belepesDal = h.FelhasznaloBelepes(); belepesDal.Delete(belepesId); } }); } public ElerhetosegekModCO GetElerhetosegek(int felhasznaloId) { return Dal.CustomConnection.Run(ConnectionType, h => { var felhasznalo = h.Felhasznalo().Get(felhasznaloId); var telefonszamok = felhasznalo.Telefon.Where(t => t.Torolt == false && t.Gondviselo == null).Select(t => new TelefonElerhetosegCo { Alapertelmezett = t.Alapertelmezett, Telefonszam = t.TelefonSzam, Tipus = t.TelefonTipusa, IsPublic = t.IsPublic, Id = t.ID, Status = ElerhetosegStatusEnum.Saved }).ToList(); var emailCimek = felhasznalo.Email.Where(e => e.Torolt == false && e.Gondviselo == null).Select(e => new EmailElerhetosegCo { Alapertelmezett = e.Alapertelmezett, EmailCim = e.EmailCim, Tipus = e.EmailTipusa, IsPublic = e.IsPublic, Id = e.ID, Status = ElerhetosegStatusEnum.Saved }).ToList(); var elerhetosegek = new ElerhetosegekModCO { Telefon = telefonszamok, Email = emailCimek }; return elerhetosegek; }); } public ElerhetosegekModCO SaveElerhetosegek(ElerhetosegekModCO co, int felhasznaloId) { var newDbElerhetosegek = new ElerhetosegekModCO(); Dal.CustomConnection.Run(ConnectionType, h => { var felhasznaloDal = h.Felhasznalo(); var emailDal = h.Email(); var telefonDal = h.Telefon(); var felhasznalo = felhasznaloDal.Get(felhasznaloId); foreach (var deletedEmailCo in co.Email.Where(e => e.Status == ElerhetosegStatusEnum.Deleted && e.Id != null)) { var deletedEmail = felhasznalo.Email.Single(e => e.ID == deletedEmailCo.Id.Value); emailDal.Delete(deletedEmail); } foreach (var updatedEmailCo in co.Email.Where(e => e.Status == ElerhetosegStatusEnum.Saved).OrderBy(x => x.Alapertelmezett)) { var updatedEmail = felhasznalo.Email.Single(e => e.ID == updatedEmailCo.Id.Value); updatedEmail.EmailCim = updatedEmailCo.EmailCim; updatedEmail.Alapertelmezett = updatedEmailCo.Alapertelmezett; emailDal.Update(updatedEmail); } foreach (var newEmailCo in co.Email.Where(e => e.Status == ElerhetosegStatusEnum.New)) { var newEmail = emailDal.Get(); newEmail.EmailCim = newEmailCo.EmailCim; newEmail.EmailTipusa = newEmailCo.Tipus; newEmail.TanevId = TanevId; newEmail.Alapertelmezett = newEmailCo.Alapertelmezett; newEmail.IsPublic = newEmailCo.IsPublic; newEmail.FelhasznaloId = felhasznalo.ID; emailDal.Insert(newEmail); emailDal.AddFelhasznaloEmail(felhasznalo, newEmail); newDbElerhetosegek.Email.Add(new EmailElerhetosegCo { Id = newEmail.ID, TextBoxId = newEmailCo.TextBoxId }); } foreach (var deletedTelefonCo in co.Telefon.Where(t => t.Status == ElerhetosegStatusEnum.Deleted && t.Id != null)) { var deletedtelefon = felhasznalo.Telefon.Single(t => t.ID == deletedTelefonCo.Id.Value); telefonDal.Delete(deletedtelefon); } foreach (var updatedTelefonCo in co.Telefon.Where(t => t.Status == ElerhetosegStatusEnum.Saved).OrderBy(x => x.Alapertelmezett)) { var updatedTelefon = felhasznalo.Telefon.Single(t => t.ID == updatedTelefonCo.Id.Value); updatedTelefon.TelefonSzam = updatedTelefonCo.Telefonszam; updatedTelefon.Alapertelmezett = updatedTelefonCo.Alapertelmezett; telefonDal.Update(updatedTelefon); } foreach (var newTelefonCo in co.Telefon.Where(t => t.Status == ElerhetosegStatusEnum.New)) { var newTelefon = telefonDal.Get(); newTelefon.TelefonSzam = newTelefonCo.Telefonszam; newTelefon.TelefonTipusa = newTelefonCo.Tipus; newTelefon.TanevId = TanevId; newTelefon.Alapertelmezett = newTelefonCo.Alapertelmezett; newTelefon.IsPublic = newTelefonCo.IsPublic; newTelefon.FelhasznaloId = felhasznalo.ID; telefonDal.Insert(newTelefon); telefonDal.AddFelhasznaloTelefon(felhasznalo, newTelefon); newDbElerhetosegek.Telefon.Add(new TelefonElerhetosegCo { Id = newTelefon.ID, TextBoxId = newTelefonCo.TextBoxId }); } felhasznaloDal.Update(felhasznalo); }); return newDbElerhetosegek; } public (string szuletesiNev, string oktatasiAzonosito, string emailCim) GetUserDetailsForElearning(int felhasznaloId, int? gondviseloId, bool isGondviselo, bool isTanulo) { return Dal.CustomConnection.Run(ConnectionType, (h) => { if (isGondviselo && gondviseloId.HasValue) { var oGondviselo = h.Gondviselo().Get(gondviseloId.Value); var emailGondviselo = oGondviselo.Email.SingleOrDefault(x => !x.Torolt && !x.IsHibasanMegadva && x.Alapertelmezett)?.EmailCim; if (emailGondviselo != null) { return (string.Empty, string.Empty, emailGondviselo); } return (string.Empty, string.Empty, string.Empty); } if (isTanulo) { var oTanulo = h.Felhasznalo().Get(felhasznaloId); var emailListTanulo = oTanulo.Email.Where(x => !x.Torolt && !x.IsHibasanMegadva); if (emailListTanulo.Any(x => x.Alapertelmezett)) { return (oTanulo.SzuletesiNev, oTanulo.OktatasiAzonosito, emailListTanulo.First(x => x.Alapertelmezett).EmailCim); } if (emailListTanulo.Any()) { return (oTanulo.SzuletesiNev, oTanulo.OktatasiAzonosito, emailListTanulo.First().EmailCim); } return (oTanulo.SzuletesiNev, oTanulo.OktatasiAzonosito, string.Empty); } var oFelhasznalo = h.Felhasznalo().Get(felhasznaloId); var emailListFelhasznalo = oFelhasznalo.Email.Where(x => !x.Torolt && !x.IsHibasanMegadva); if (emailListFelhasznalo.Any(x => x.IsPublic)) { return (oFelhasznalo.SzuletesiNev, oFelhasznalo.OktatasiAzonosito, emailListFelhasznalo.First(x => x.IsPublic).EmailCim); } if (emailListFelhasznalo.Any(x => x.EmailTipusa == (int)EmailTipusEnum.Hivatalos)) { return (oFelhasznalo.SzuletesiNev, oFelhasznalo.OktatasiAzonosito, emailListFelhasznalo.First(x => x.EmailTipusa == (int)EmailTipusEnum.Hivatalos).EmailCim); } return (oFelhasznalo.SzuletesiNev, oFelhasznalo.OktatasiAzonosito, string.Empty); }); } public (string oktatasiAzonosito, string emailCim, string elotag, string vezeteknev, string utonev) GetUserDetailsForKotVall() { return Dal.CustomConnection.Run(ConnectionType, (h) => { var oFelhasznalo = h.Felhasznalo().Get(FelhasznaloId); var emailListFelhasznalo = oFelhasznalo.Email.Where(x => !x.Torolt && !x.IsHibasanMegadva); var emailCim = string.Empty; if (emailListFelhasznalo.Any(x => x.Alapertelmezett)) { emailCim = emailListFelhasznalo.First(x => x.Alapertelmezett).EmailCim; } else if (emailListFelhasznalo.Any(x => x.IsPublic)) { emailCim = emailListFelhasznalo.First(x => x.IsPublic).EmailCim; } else if (emailListFelhasznalo.Any(x => x.EmailTipusa == (int)EmailTipusEnum.Hivatalos)) { emailCim = emailListFelhasznalo.First(x => x.EmailTipusa == (int)EmailTipusEnum.Hivatalos).EmailCim; } return (oFelhasznalo.OktatasiAzonosito, emailCim, oFelhasznalo.Elotag, oFelhasznalo.Vezeteknev, oFelhasznalo.Utonev); }); } public string GetFunkcioTeruletSAPKod(int felhasznaloId) { return Dal.CustomConnection.Run(ConnectionType, h => { IFelhasznaloDal dal = h.Felhasznalo(); return dal.GetFunkcioTeruletSAPKod(felhasznaloId, TanevId); }); } public void SetProfile(string profileXml) { var request = new XmlDocument(); request.LoadXml(profileXml); Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.Felhasznalo(); var user = dal.Get(UserContext.Instance.FelhasznaloId); dal.UpdateProfile(user, profileXml); }); } public byte[] ProfilkepMentese(byte[] foto) { if (foto == null || foto.Length == 0) { throw new Exception("Nincs feltöltve fénykép!"); } // Kép méretének csökkentése úgy, hogy beleférjen egy XYxXYpx-es négyzetbe, de a képarány ne módosuljon using (MemoryStream myMemStream = new MemoryStream(foto)) using (Image fullsizeImage = Image.FromStream(myMemStream)) { int sizeLimit = 150; //pixel int width = fullsizeImage.Width; int height = fullsizeImage.Height; if ((width >= height ? width : height) > sizeLimit) { double scaleFactor = 1; int newWidth = 0; int newHeight = 0; if (width >= height) { scaleFactor = (double)(sizeLimit) / width; } else { scaleFactor = (double)(sizeLimit) / height; } newWidth = (int)Math.Round(width * scaleFactor, 0); newHeight = (int)Math.Round(height * scaleFactor, 0); using (Image newImage = fullsizeImage.GetThumbnailImage(newWidth, newHeight, null, IntPtr.Zero)) using (MemoryStream myResult = new MemoryStream()) { newImage.Save(myResult, System.Drawing.Imaging.ImageFormat.Jpeg); //Or whatever format you want. foto = myResult.ToArray(); } } } Dal.CustomConnection.Run(ConnectionType, (h) => { var dal = h.Felhasznalo(); var felhasznalo = dal.Get(FelhasznaloId); felhasznalo.ProfilKep = foto; dal.Update(felhasznalo, true); }); return foto; } public byte[] ProfilKepBajtTomb() { return Dal.CustomConnection.Run(ConnectionType, (h) => { var felhasznalo = h.Felhasznalo().Get(FelhasznaloId); return felhasznalo.ProfilKep; }); } /// /// Visszaadja a kép elérését (src) /// /// Ha van feltöltve képe akkor Base64 stringként, egyébként az alapértelmezett kép elérési útját /// /// public string ProfileKep() { return ProfileKep(null); } /// /// Visszaadja az alapértelmezett profilkép elérési útvonalát /// /// /// public string AlapertelmezettProfileKep() { var urlHelper = new UrlHelper(HttpContext.Current.Request.RequestContext); return urlHelper.Content("~/App_Themes/New_Common_Images/noprofilepic.png"); } /// /// Visszaadja a kép elérését (src) /// /// Ha null tömb van átadva és van feltöltve képe akkor Base64 stringként /// Ha a tömb nem null és nagyobb mint 0 akkor abból csinál base64 stringet /// Egyébként az alapértelmezett kép elérési útját /// /// Már meglévő bytetömb, hogy ne Adatbázisból kelljen kikérni /// public string ProfileKep(byte[] marMegvanAKep) { try { byte[] bytes; if (marMegvanAKep == null) { bytes = ProfilKepBajtTomb(); } else { bytes = marMegvanAKep; } return bytes != null && bytes.Length > 0 ? "data:image/jpeg;base64," + Convert.ToBase64String(bytes, 0, bytes.Length) : AlapertelmezettProfileKep(); } catch { return AlapertelmezettProfileKep(); } } public List GetGondviseloBelepesItemCoList(FelhasznalokCO searchCo) { var result = new List(); var ds = FelhasznaloKereses(searchCo, false); foreach (var row in ds.Tables[0].AsEnumerable()) { result.Add(new FelhasznaloBelepesImportItemCo(TanevId) { NeveImportData = SDAConvert.ToString(row["Tanulo"]).ReplaceMultipleSpacesAndTrim(), OktatasiAzonositoImportData = SDAConvert.ToString(row["TanuloOktatasiAzonosito"]).ReplaceMultipleSpacesAndTrim(), SzuletesiDatumaImportData = SDAConvert.ToDateTime(row["TanuloSzuletesiDatum"])?.ToString(Constants.ToStringPattern.HungarianDate), GondviseloNeveImportData = SDAConvert.ToString(row["FelhasznaloNyomtatasiNeve"]).ReplaceMultipleSpacesAndTrim(), GondviseloRokonsagiFokaImportData = SDAConvert.ToInt32(row["GondviseloRokonsagiFokId"]).GetDisplayName(TanevId), FelhasznaloNeveImportData = SDAConvert.ToString(row["FelhasznaloNev"]).ReplaceMultipleSpacesAndTrim(), TipusEnum = Enums.ManualEnums.FelhasznaloBelepesExportImportTipusEnum.Gondviselo, }); } return result.Where(x => x.TipusEnum == Enums.ManualEnums.FelhasznaloBelepesExportImportTipusEnum.Gondviselo) .OrderBy(x => x.NeveImportData) .ToList(); } public Dictionary> GetGondviseloBelepesiAdatokNelkulDropDownColumnSourceDictionary() { var dropDownColumnSourceDictionary = new Dictionary>(); Dal.CustomConnection.Run(ConnectionType, dalHandler => { var connectionType = new DalHandlerConnectionType(ConnectionType, dalHandler); var helper = new ImportExportHelper(connectionType); dropDownColumnSourceDictionary.Add(ImportExportFelhasznaloBelepesResource.ImportHeaderNameTanuloNeve, helper.GetTanuloList()); dropDownColumnSourceDictionary.Add(ImportExportFelhasznaloBelepesResource.ImportHeaderNameGondviseloNeve, helper.GetGondviseloList()); dropDownColumnSourceDictionary.Add(ImportExportFelhasznaloBelepesResource.ImportHeaderNameGondviseloRokonsagiFoka, EnumExtensions.GetAdatszotarElemekForTipus(TanevId, GeneratedAdatszotarTipusEnum.RokonsagiFok)); }); return dropDownColumnSourceDictionary; } public EgyhaztartasbanElokCo GetEgyhaztartasbanElokData(int felhasznaloId) { return Dal.CustomConnection.Run(ConnectionType, h => { var rows = new List(); var felhasznalo = h.Felhasznalo().Get(felhasznaloId); rows = felhasznalo.EgyHaztartasbanElok.Where(e => e.Torolt == false).Select(e => new EgyhaztartasbanElokRowCo { ID = e.ID, Nev = e.Nev, AnyjaNev = e.AnyjaNeve, SzuletesiIdo = e.SzuletesiIdo, SzuletesiHely = e.SzuletesiHely, Taj = e.TajSzam, RokonsagiFok = e.RokonsagiFokId, Email = e.Email, Telefon = e.Telefon }).ToList(); var co = new EgyhaztartasbanElokCo { Sorok = rows }; return co; }); } public void SaveEgyhaztartasbanElokData(EgyhaztartasbanElokCo co, int felhasznaloId, int? gondviseloId) { Dal.CustomConnection.Run(ConnectionType, h => { foreach (var item in co.Sorok) { var dal = h.Felhasznalo(); if (item.ID.HasValue && item.isDeleted) { dal.DeleteEgyhaztartasbanElok(item.ID.Value); } else if (!item.ID.HasValue && !item.isDeleted) { var data = dal.GetEgyhaztartasbanElok(); data.Nev = item.Nev; data.AnyjaNeve = item.AnyjaNev; data.SzuletesiIdo = item.SzuletesiIdo.Value; data.SzuletesiHely = item.SzuletesiHely; data.TajSzam = item.Taj; data.RokonsagiFokId = item.RokonsagiFok.Value; data.Email = item.Email; data.Telefon = item.Telefon; data.RogzitoFelhasznaloId = felhasznaloId; if (gondviseloId.HasValue) { data.RogzitoGondviseloId = gondviseloId.Value; } dal.InsertEgyhaztartasbanElok(data); } else { var data = dal.GetEgyhaztartasbanElok(item.ID.Value); data.Nev = item.Nev; data.AnyjaNeve = item.AnyjaNev; data.SzuletesiIdo = item.SzuletesiIdo.Value; data.SzuletesiHely = item.SzuletesiHely; data.TajSzam = item.Taj; data.RokonsagiFokId = item.RokonsagiFok.Value; data.Email = item.Email; data.Telefon = item.Telefon; dal.FullUpdateEgyhaztartasbanElok(data); } } }); } public ProjektFelhasznaloCo GetProjektFelhasznaloData() { return Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.Felhasznalo(); var userData = dal.Get(FelhasznaloId); return new ProjektFelhasznaloCo() { NyomtatasiNev = userData.NyomtatasiNev, OktatasiAzonosito = userData.OktatasiAzonosito, IdpEgyediAzonosito = userData.IdpEgyediAzonosito.ToString() }; }); } public (string NyomtatasiNev, string OktatasiAzonosito) GetFelhasznaloNevOktAzonById(int felhasznaloId) { return Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.Felhasznalo(); var felhasznalo = dal.Get(felhasznaloId); return (felhasznalo.NyomtatasiNev, felhasznalo.OktatasiAzonosito); }); } public XmlDocument GetUserProfileDocument(int userId) { return Dal.CustomConnection.Run(ConnectionType, h => { var userProfile = h.Felhasznalo().GetUserProfile(userId); var xmlDocument = new XmlDocument(); if (!string.IsNullOrWhiteSpace(userProfile)) { xmlDocument.LoadXml(userProfile); if (!xmlDocument.InnerXml.Trim().StartsWith(" { var dal = h.Felhasznalo(); var user = dal.Get(userId); dal.UpdateProfile(user, xml); }); } } public bool GetProfilTipus(int userId, string profilTipus) { var xmlDocument = GetUserProfileDocument(userId); var node = xmlDocument.SelectSingleNode("UserProfile/" + profilTipus); if (node == null) { return false; } return bool.TryParse(node.InnerText, out var result) && result; } public void SetProfilTipus(int userId, string profilTipus, bool ertek) { var xmlDocument = GetUserProfileDocument(userId); if (xmlDocument.SelectSingleNode("UserProfile") == null) { var el = xmlDocument.CreateElement("UserProfile"); xmlDocument.AppendChild(el); } if (xmlDocument.SelectSingleNode("UserProfile/" + profilTipus) == null) { xmlDocument.SelectSingleNode("UserProfile").AppendChild(xmlDocument.CreateNode(XmlNodeType.Element, profilTipus, string.Empty)); } var node = xmlDocument.SelectSingleNode("UserProfile/" + profilTipus); node.InnerXml = ertek.ToString(); SaveUserProfileDocument(xmlDocument, userId); } public string GetBankszamlaVezetoBankNeve(string bankszamlaSzam) { return Dal.CustomConnection.Run(ConnectionType, (h) => { return h.Felhasznalo().GetBankszamlaVezetoBankNeve(IntezmenyAzonosito, bankszamlaSzam); }); } } }