kreta/Kreta.BusinessLogic/Helpers/JelszoModositasLinkHelper.cs
2024-03-13 00:33:46 +01:00

210 lines
10 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using Kreta.BusinessLogic.Exceptions;
using Kreta.BusinessLogic.HelperClasses;
using Kreta.BusinessLogic.Utils;
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.Framework.Entities;
using Kreta.Resources;
namespace Kreta.BusinessLogic.Helpers
{
public class JelszoModositasLinkHelper : LogicBase
{
public JelszoModositasLinkHelper(IConnectionType connectionType) : base(connectionType) { }
public void BeazonositottGondvilseoLinkGeneralasEsKuldes(int felhasznaloId, int? gondviseloId, string emailCim, string message, Guid? emailGuid)
{
Dal.CustomConnection.Run(ConnectionType, h => LinkGeneralasEsKuldes(h, felhasznaloId, gondviseloId, emailCim, true, message, emailGuid));
}
public void UjCsokkentettGondviseloLinkGeneralasEsKuldes(GondviseloJelszoIgenyloCo co, int tanuloId, int tanevId, int intezmenyId, IntezmenyNevCimCo intezmenyCo)
{
Dal.CustomConnection.Run(ConnectionType, h =>
{
var gondviseloDal = h.Gondviselo();
var cimDal = h.Cim();
var emailDal = h.Email();
var gondviselo = gondviseloDal.Get();
gondviselo.Nev = co.GondviseloNev;
gondviselo.RokonsagFoka = co.RokonsagiFok.Value;
gondviselo.TanuloId = tanuloId;
gondviselo.IsCsokkentettGondviselo = true;
gondviselo.IntezmenyId = intezmenyId;
gondviselo.TanevId = tanevId;
gondviseloDal.Insert(gondviselo);
var cim = cimDal.Get();
cim.FelhasznaloId = tanuloId;
cim.GondviseloId = gondviselo.ID;
cim.Ajto = co.Ajto;
cim.CimTipusa = co.CimTipus ?? (int)CimTipusEnum.allando_lakcim;
cim.Emelet = co.Emelet;
cim.Hazszam = co.Hazszam;
cim.IranyitoSzam = co.Iranyitoszam;
cim.Kozterulet = co.KozteruletNev;
cim.KozteruletJellegeNev = co.KozteruletTipusNev;
cim.Orszag = co.Orszag.Value;
cim.Varos = co.HelysegNev;
cim.IntezmenyId = intezmenyId;
cim.TanevId = tanevId;
cimDal.Insert(cim);
var email = emailDal.Get();
email.FelhasznaloId = tanuloId;
email.GondviseloId = gondviselo.ID;
email.EmailCim = co.GondviseloEmail;
email.EmailTipusa = co.EmailTipusId ?? -1;
email.IntezmenyId = intezmenyId;
email.TanevId = tanevId;
email.Alapertelmezett = true;
Guid emailGuid = emailDal.Insert(email).Guid;
var message = string.Format(EmailResource.GondviseloCsokkentettBelepesiAdatoErtesitesEmail, co.GondviseloNev, CommonUtils.GetIntezmenyUrl(intezmenyCo.IntezmenyAzonosito), intezmenyCo.Nev, intezmenyCo.IntezmenyCim, "{0}");
LinkGeneralasEsKuldes(h, tanuloId, gondviselo.ID, co.GondviseloEmail, true, message, emailGuid);
});
}
public void FelhasznaloBelepesLinkGeneralasEsKuldes(int felhasznaloId, int? gondviseloId, string emailCim, string message, Guid emailGuid)
{
Dal.CustomConnection.Run(ConnectionType, h => LinkGeneralasEsKuldes(h, felhasznaloId, gondviseloId, emailCim, true, message, emailGuid));
}
//nincs hasznlava jelenleg!
public string JelszoValtoztatoLinkGeneralas(int felhasznaloId, int? gondviseloId)
{
return Dal.CustomConnection.Run(ConnectionType, h => LinkGeneralasEsKuldes(h, felhasznaloId, gondviseloId, null, false, null, null));
}
public void JelszoValtoztatoLinkGeneralasEsKuldes(string felhasznaloNev, string emailCim)
{
felhasznaloNev = felhasznaloNev.Trim().ToLower();
emailCim = emailCim.Trim().ToLower();
Dal.CustomConnection.Run(ConnectionType, h =>
{
var felhasznaloBelepesCo = new FelhasznaloBelepesHelper(new DalHandlerConnectionType(ConnectionType, h)).Get(felhasznaloNev);
if (felhasznaloBelepesCo != null)
{
if (felhasznaloBelepesCo.GondviseloId.IsEntityId())
{
var gondviselo = h.Gondviselo().Get(felhasznaloBelepesCo.GondviseloId.Value);
IEmail email = gondviselo?.Email?.SingleOrDefault(x => !x.Torolt && !x.IsHibasanMegadva);
var gondviseloEmailCim = email?.EmailCim;
Guid? gondviseloEmailGuid = email?.Guid;
if (!string.IsNullOrWhiteSpace(gondviseloEmailCim) && gondviseloEmailCim.ToLower().Equals(emailCim))
{
var intezmenyCo = new IntezmenyHelper(new DalHandlerConnectionType(ConnectionType, h)).GetAktivIntezmenyNevCim();
var message = string.Format(EmailResource.ElfejeltettJelszoLinkEmail, EmailResource.Tisztelt, gondviselo.Nev, CommonUtils.GetIntezmenyUrl(intezmenyCo.IntezmenyAzonosito), intezmenyCo.Nev, intezmenyCo.IntezmenyCim, "{0}");
LinkGeneralasEsKuldes(h, felhasznaloBelepesCo.FelhasznaloId, felhasznaloBelepesCo.GondviseloId, gondviseloEmailCim, false, message, gondviseloEmailGuid);
}
else
{
throw new KretaJelszoModositasException(ErrorResource.AMegadottFelhasznalonevhezNincsRogzitveEmailCimVagyRosszEmailCimetAdottMeg);
}
}
else
{
IEnumerable<IEmail> email = null;
ITanulo tanulo = null;
try
{
tanulo = h.Tanulo().Get(felhasznaloBelepesCo.FelhasznaloId);
}
catch (EntityNotFoundException)
{
if (h.Alkalmazott().IsAlkalmazott(felhasznaloBelepesCo.FelhasznaloId, TanevId))
{
throw new KretaJelszoModositasException(ErrorResource.AJelszoEmlekeztetoPedagogusokSzamaraNemElerhetoKerjukKeresseFelAKretaRendszerAdminisztratorat);
}
}
email = tanulo?.Email?.Where(x => !x.Torolt && !x.IsHibasanMegadva);
var tanuloEmailCim = string.Empty;
Guid? tanuloEmailGuid = null;
if (email != null)
{
foreach (var item in email)
{
if (!string.IsNullOrWhiteSpace(item.EmailCim) && item.EmailCim.ToLower().Equals(emailCim))
{
tanuloEmailCim = item.EmailCim;
tanuloEmailGuid = item.Guid;
break;
}
}
}
if (!string.IsNullOrWhiteSpace(tanuloEmailCim))
{
var intezmenyCo = new IntezmenyHelper(new DalHandlerConnectionType(ConnectionType, h)).GetAktivIntezmenyNevCim();
var message = string.Format(EmailResource.ElfejeltettJelszoLinkEmail, EmailResource.Kedves, tanulo.NyomtatasiNev, CommonUtils.GetIntezmenyUrl(intezmenyCo.IntezmenyAzonosito), intezmenyCo.Nev, intezmenyCo.IntezmenyCim, "{0}");
LinkGeneralasEsKuldes(h, felhasznaloBelepesCo.FelhasznaloId, null, tanuloEmailCim, false, message, tanuloEmailGuid);
}
else
{
throw new KretaJelszoModositasException(ErrorResource.AMegadottFelhasznalonevhezNincsRogzitveEmailCimVagyRosszEmailCimetAdottMeg);
}
}
}
else
{
throw new KretaJelszoModositasException(ErrorResource.AMegadottFelhasznalonevNemSzerepelAKRETARendszerben);
}
});
}
private string LinkGeneralasEsKuldes(IDalHandler h, int felhasznaloId, int? gondviseloId, string emailCim, bool isSzuletesiDatumValidacio, string message, Guid? emailGuid = null)
{
var isTanulo = new TanuloHelper(new DalHandlerConnectionType(ConnectionType, h)).IsTanulo(felhasznaloId);
if (!isTanulo)
{
throw new KretaJelszoModositasException(string.Empty);
}
var dal = h.JelszoModositasLinkDal();
dal.DeleteIfExists(felhasznaloId, gondviseloId);
var entity = dal.Get();
entity.Azonosito = Guid.NewGuid().ToString();
entity.FelhasznaloId = felhasznaloId;
if (gondviseloId.HasValue)
{
entity.GondviseloId = gondviseloId.Value;
}
entity.IntezmenyId = CommonUtils.GetIntezmenyId(felhasznaloId);
entity.IsSzuletesiDatumValidacio = isSzuletesiDatumValidacio;
entity.LetrehozasDatuma = DateTime.Now;
entity.ProbalkozasokSzama = 0;
entity.TanevId = TanevId;
dal.Insert(entity);
var link = string.Format(AdminisztracioResource.Link, IntezmenyAzonosito, entity.Azonosito);
if (!string.IsNullOrWhiteSpace(emailCim))
{
new UzenetekHelper(new DalHandlerConnectionType(ConnectionType, h)).EmailKuldes(string.Format(message, link), CommonResource.Ertesites, emailCim, emailGuid.HasValue ? emailGuid : null);
}
return link;
}
}
}