init
This commit is contained in:
commit
e124a47765
19374 changed files with 9806149 additions and 0 deletions
103
Kreta.Job.Tasks/Helpers/Email/KozelgoFogadooraMailHelper.cs
Normal file
103
Kreta.Job.Tasks/Helpers/Email/KozelgoFogadooraMailHelper.cs
Normal 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;
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue