This commit is contained in:
skidoodle 2024-03-13 00:33:46 +01:00
commit e124a47765
19374 changed files with 9806149 additions and 0 deletions

View file

@ -0,0 +1,103 @@
using System;
using System.Data;
using System.Linq;
using System.Xml;
using Hangfire;
using Kreta.Core;
using Kreta.DataAccessManual;
using Kreta.DataAccessManual.Interfaces;
using Kreta.Framework;
using Kreta.Job.Tasks.Core;
using Kreta.Job.Tasks.Core.Models;
using Kreta.Resources;
namespace Kreta.Job.Tasks.Helpers.Email
{
internal static class KozelgoFogadooraMailHelper
{
internal static void SendKozelgoFogadooraMail(string connectionString)
{
Dal.ServiceSystemConnection.Run(connectionString, h =>
{
var fogadooraDal = h.Fogadoora();
try
{
var kozelgoFogadoorak = fogadooraDal.GetKozelgoFogadoorak().Tables[0].AsEnumerable().Select(f => new
{
FogadooraKezdete = f.Field<DateTime>("FogadooraKezdete"),
FogadooraVege = f.Field<DateTime>("FogadooraVege"),
NyomtatasiNev = f.Field<string>("NyomtatasiNev"),
EmailCim = f.Field<string>("EmailCim"),
EmailGuid = f.Field<Guid?>("EmailGuid"),
TeremNev = f.Field<string>("TeremNev"),
IntezmenyNev = f.Field<string>("IntezmenyNev"),
IntezmenyCim = f.Field<string>("IntezmenyCim"),
IntezmenyFenntartoEmail = f.Field<string>("IntezmenyFenntartoEmail"),
IntezmenyUrl = string.Format(CommonResource.IntezmenyUrl, f.Field<string>("IntezmenyAzon")),
IntezmenyAzon = f.Field<string>("IntezmenyAzon"),
UserId = f.Field<int>("UserId"),
OsztalyCsoportNev = f.Field<string>("OsztalyCsoportNev")
});
foreach (var kozelgoFogadoora in kozelgoFogadoorak.Where(f => f.EmailCim.IsValidEmail()))
{
if (GetProfileData(h, kozelgoFogadoora.UserId, "FogadooraEmlekeztetoEmailJelentkezes"))
{
var datum = kozelgoFogadoora.FogadooraKezdete.ToString(Kreta.Core.Constants.ToStringPattern.HungarianDate);
var idopont = string.Format("{0} - {1}",
kozelgoFogadoora.FogadooraKezdete.ToString(Kreta.Core.Constants.ToStringPattern.HungarianDateTimeWithoutSeconds),
kozelgoFogadoora.FogadooraVege.ToString(Kreta.Core.Constants.ToStringPattern.HungarianDateTimeWithoutSeconds));
var subject = string.Format(EmailResource.KozelgoFogadooraTargy, datum, kozelgoFogadoora.OsztalyCsoportNev, kozelgoFogadoora.NyomtatasiNev);
var message = string.Format(EmailResource.KozelgoFogadooraTartalom,
kozelgoFogadoora.NyomtatasiNev,
idopont,
kozelgoFogadoora.TeremNev,
kozelgoFogadoora.NyomtatasiNev,
kozelgoFogadoora.IntezmenyUrl,
kozelgoFogadoora.IntezmenyNev,
kozelgoFogadoora.IntezmenyCim,
kozelgoFogadoora.OsztalyCsoportNev
);
var emailModel = new EmailModel(kozelgoFogadoora.IntezmenyAzon, kozelgoFogadoora.EmailGuid)
{
TargetEmail = kozelgoFogadoora.EmailCim,
Subject = subject,
Message = message
+ string.Format(CommonResource.TevesCimzett, kozelgoFogadoora.IntezmenyFenntartoEmail)
+ Environment.NewLine
+ string.Format(CommonResource.IntezmenyNevEsUrlLink, kozelgoFogadoora.IntezmenyNev, kozelgoFogadoora.IntezmenyUrl)
};
BackgroundJob.Enqueue<IEmailJob>((email) => email.SendMailAsync(emailModel));
}
}
}
catch (Exception ex)
{
SDAServer.Instance.Logger.ExceptionThrown(ex);
}
});
}
private static bool GetProfileData(IDalHandler h, int felhasznaloId, string profileTipus)
{
var dal = h.Fogadoora(null);
var profileXml = dal.GetProfileData(felhasznaloId);
if (string.IsNullOrWhiteSpace(profileXml))
{
return true;
}
XmlDocument xDoc = new XmlDocument();
xDoc.LoadXml(profileXml);
XmlNode node = xDoc.SelectSingleNode("UserProfile/" + profileTipus);
if (node == null)
return true;
return (bool.TryParse(node.InnerText, out bool result)) && result;
}
}
}