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

141 lines
7.9 KiB
C#

using System;
using System.Collections.Generic;
using Hangfire;
using Kreta.BusinessLogic.HelperClasses;
using Kreta.BusinessLogic.Utils;
using Kreta.Core;
using Kreta.Core.ConnectionType;
using Kreta.DataAccessManual;
using Kreta.Job.Tasks.Core;
using Kreta.Job.Tasks.Core.Models;
using Kreta.Resources;
namespace Kreta.BusinessLogic.Helpers
{
public class UzenetekHelper : LogicBase
{
public UzenetekHelper(IConnectionType connectionType) : base(connectionType) { }
public bool Leiratkozas(Guid guid)
{
bool result = Dal.CustomConnection.Run(ConnectionType, dal => dal.Email().UpdateIsHibasanMegadvaFlag(TanevId, guid));
return result;
}
public void GondviseloJelszoEmail(string message, string emailcim, Guid emailGuid)
{
EmailKuldes(message, EmailResource.KretaBelepesiAdatok, emailcim, emailGuid);
}
/// INFO @DevKornel: Mobil használja
public void EmailKuldes(string message, string subject, string emailcim, Guid? emailGuid = null)
{
var emailModel = new EmailModel(IntezmenyAzonosito, emailGuid)
{
Message = message
+ string.Format(CommonResource.TevesCimzett, CommonUtils.GetIntezmenyFenntartoEmail(FelhasznaloId, IntezmenyAzonosito, IntezmenyId, TanevId))
+ Environment.NewLine
+ CommonUtils.GetIntezmenyLinkWithNevEsUrl(FelhasznaloId, IntezmenyAzonosito, IntezmenyId, TanevId),
Subject = subject,
TargetEmail = emailcim
};
if (!string.IsNullOrWhiteSpace(emailcim) && emailcim.IsValidEmail())
{
BackgroundJob.Enqueue<IEmailJob>(email => email.SendMailAsync(emailModel));
}
}
public void EmailekKuldese(List<FogadooraEmailModel> modelList)
{
string intezmenyFenntartoEmail = CommonUtils.GetIntezmenyFenntartoEmail(FelhasznaloId, IntezmenyAzonosito, IntezmenyId, TanevId);
string intezmenyNevEsUrl = CommonUtils.GetIntezmenyLinkWithNevEsUrl(FelhasznaloId, IntezmenyAzonosito, IntezmenyId, TanevId);
string tevesCimzett = string.Format(CommonResource.TevesCimzett, intezmenyFenntartoEmail);
List<EmailModel> emailJobList = new List<EmailModel>();
foreach (var model in modelList)
{
emailJobList.Add(new EmailModel(IntezmenyAzonosito, model.EmailGuid)
{
Message = model.Message
+ tevesCimzett
+ Environment.NewLine
+ intezmenyNevEsUrl,
Subject = model.Subject,
TargetEmail = model.EmailCim
});
}
BackgroundJob.Enqueue<IEmailJob>(email => email.SendMailMessages(emailJobList));
}
/// INFO @DevKornel: Mobil használja
public void HazifeladatEmail(string osztalyCsoportNev, string tantargyNev, DateTime oraDatum, string diakNev, string hazifeladatSzoveg, string tanarEmail, DateTime oraKezdete, DateTime oraVege, Guid emailGuid, int? oraszam = null)
{
var emailMsg = string.Empty;
if (oraszam.HasValue && oraszam.Value > 0)
emailMsg = string.Format(EmailResource.HazifeladatTanora, oraDatum.ToShortDateString(), tantargyNev, diakNev, hazifeladatSzoveg, osztalyCsoportNev, oraszam.ToString());
else
emailMsg = string.Format(EmailResource.HazifeladatNapirend, oraDatum.ToShortDateString(), tantargyNev, diakNev, hazifeladatSzoveg, osztalyCsoportNev, oraKezdete.ToString("hh:MM"), oraVege.ToString("hh:MM"));
var emailSubject = string.Format(EmailResource.HazifeladatSubject, osztalyCsoportNev, tantargyNev, oraDatum.ToShortDateString());
EmailKuldes(emailMsg, emailSubject, tanarEmail, emailGuid);
}
public SendEmailCo GetHelyettesitesSendEmailCo(int helyettesitesId)
{
var sendEmailCo = new SendEmailCo();
var intezmenyData = GetIntezmenyiAdatok();
var helyettesitesData = GetHelyettesitesAdatok(helyettesitesId);
sendEmailCo.EmailCim = helyettesitesData.HelyettesitoEmail;
sendEmailCo.EmailGuid = helyettesitesData.HelyettesitoEmailGuid;
sendEmailCo.Subject = !helyettesitesData.IsNapirend ?
string.Format(EmailResource.HelyettesitesTanoraSubject, helyettesitesData.OraDatuma, helyettesitesData.OraSzama, helyettesitesData.TantargyNev, helyettesitesData.OsztalyCsoportNev) :
string.Format(EmailResource.HelyettesitesNapirendSubject, helyettesitesData.OraDatuma, helyettesitesData.OraKezdete, helyettesitesData.OraVege, helyettesitesData.TantargyNev, helyettesitesData.OsztalyCsoportNev);
sendEmailCo.Message = !helyettesitesData.IsNapirend ?
string.Format(EmailResource.HelyettesitesTanoraMessage, helyettesitesData.HelyettesitoNev, intezmenyData.Nev, helyettesitesData.OraDatuma, helyettesitesData.OraSzama, helyettesitesData.TantargyNev, helyettesitesData.OsztalyCsoportNev, helyettesitesData.TeremNev, helyettesitesData.HelyettesitesTipusa, helyettesitesData.HelyettesitettNev) :
string.Format(EmailResource.HelyettesitesNapirendMessage, helyettesitesData.HelyettesitoNev, intezmenyData.Nev, helyettesitesData.OraDatuma, helyettesitesData.OraKezdete, helyettesitesData.OraVege, helyettesitesData.TantargyNev, helyettesitesData.OsztalyCsoportNev, helyettesitesData.TeremNev, helyettesitesData.HelyettesitettNev, helyettesitesData.HelyettesitesTipusa);
return sendEmailCo;
}
public SendEmailCo GetHelyettesitesTorlesSendEmailCo(int helyettesitesId)
{
var sendEmailCo = new SendEmailCo();
var intezmenyData = GetIntezmenyiAdatok();
var helyettesitesData = GetHelyettesitesAdatok(helyettesitesId);
sendEmailCo.EmailCim = helyettesitesData.HelyettesitoEmail;
sendEmailCo.EmailGuid = helyettesitesData.HelyettesitoEmailGuid;
sendEmailCo.Subject = !helyettesitesData.IsNapirend ?
string.Format(EmailResource.HelyettesitesTorolveTanoraSubject, helyettesitesData.OraDatuma, helyettesitesData.OraSzama, helyettesitesData.TantargyNev, helyettesitesData.OsztalyCsoportNev) :
string.Format(EmailResource.HelyettesitesTorolveNapirendSubject, helyettesitesData.OraDatuma, helyettesitesData.OraKezdete, helyettesitesData.OraVege, helyettesitesData.TantargyNev, helyettesitesData.OsztalyCsoportNev);
sendEmailCo.Message = !helyettesitesData.IsNapirend ?
string.Format(EmailResource.HelyettesitesTorolveTanoraMessage, helyettesitesData.HelyettesitoNev, intezmenyData.Nev, helyettesitesData.OraDatuma, helyettesitesData.OraSzama, helyettesitesData.TantargyNev, helyettesitesData.OsztalyCsoportNev, helyettesitesData.TeremNev, helyettesitesData.HelyettesitettNev, helyettesitesData.HelyettesitesTipusa) :
string.Format(EmailResource.HelyettesitesTorolveNapirendMessage, helyettesitesData.HelyettesitoNev, intezmenyData.Nev, helyettesitesData.OraDatuma, helyettesitesData.OraKezdete, helyettesitesData.OraVege, helyettesitesData.TantargyNev, helyettesitesData.OsztalyCsoportNev, helyettesitesData.TeremNev, helyettesitesData.HelyettesitesTipusa, helyettesitesData.HelyettesitettNev);
return sendEmailCo;
}
public void SendEmail(SendEmailCo sendEmailCo)
{
EmailKuldes(sendEmailCo.Message, sendEmailCo.Subject, sendEmailCo.EmailCim, sendEmailCo.EmailGuid);
}
private IntezmenyCO GetIntezmenyiAdatok()
{
return new IntezmenyHelper(ConnectionType).GetIntezmenyiAdatok();
}
private HelyettesitesCO GetHelyettesitesAdatok(int helyettesitesId)
{
return new HelyettesitesHelper(ConnectionType).GetHelyettesitesEmailDataById(helyettesitesId);
}
}
}