kreta/Kreta.Job.Tasks/FeltoltesJob.cs
2024-03-13 00:33:46 +01:00

61 lines
3.2 KiB
C#

using System;
using Kreta.Core.Iktato.Poszeidon.Factory.Interface;
using Kreta.Core.Iktato.Poszeidon.Infrastructure.Interface;
using Kreta.DataAccessManual;
using Kreta.Framework;
using Kreta.Job.Tasks.Core;
namespace Kreta.Job.Tasks
{
public class FeltoltesJob : IktatasJobBase, IFeltoltesJob
{
public FeltoltesJob(IIktatoRepositoryFactory iktatoRepositoryFactory, IWcfServiceContext wcfServiceContext, Kreta.Core.IktatoServiceConfiguration iktatoServiceConfiguration) : base(iktatoRepositoryFactory, wcfServiceContext, iktatoServiceConfiguration)
{
}
[Hangfire.AutomaticRetry(Attempts = 2)]
[JobStateWatcher(typeof(FeltoltesJob), nameof(WriteFailedJobId))]
public void FeltoltesUjVerzioDal(int iktatottDokumentumId, string intezmenyAzonosito, int intezmenyId, int tanevId)
{
DataAccessManual.Dal.OrganizationConnection.Run(intezmenyAzonosito, (h) =>
{
var intezmeny = h.IntezmenyDal().Get(intezmenyId);
var iktatottDokumentum = h.IktatottDokumentumDal().Get(iktatottDokumentumId);
var iktatoRepositoryConfiguration = GetIktatoRepositoryConfiguration(intezmeny.IktatoSzervezetAzonosito, intezmeny.PoszeidonBejelentkezesiNev);
IktatoRepositoryFactory.GetIktatoRepository(iktatoRepositoryConfiguration).FeltoltesUjVerzio(iktatottDokumentum.FajlNev, System.IO.Path.GetExtension(iktatottDokumentum.FajlNev).Substring(1), iktatottDokumentum.Dokumentum.Tartalom, iktatottDokumentum.ElektronikusPeldanyId.Value.ToString());
iktatottDokumentum.DokumentumStatusz = (int)Enums.DokumentumStatuszEnum.Iktatva;
iktatottDokumentum.ElektronikusPeldanyFeltoltesDatuma = DateTime.Now;
iktatottDokumentum.FailedJobId = null;
iktatottDokumentum.EnqueuedJobId = null;
var nyomtatvanyokDal = h.NyomtatvanyokDal();
var dokumentum = nyomtatvanyokDal.Get(iktatottDokumentum.GeneraltDokumentumId.Value);
nyomtatvanyokDal.Delete(dokumentum);
iktatottDokumentum.GeneraltDokumentumId = null;
nyomtatvanyokDal.Update(iktatottDokumentum);
});
}
public static void WriteFailedJobId(string jobId)
{
var jobDetails = Hangfire.JobStorage.Current.GetMonitoringApi().JobDetails(jobId);
var iktatottDokumentumId = (int)jobDetails.Job.Args[0];
var intezmenyAzonosito = (string)jobDetails.Job.Args[1];
var intezmenyId = (int)jobDetails.Job.Args[2];
var tanevId = (int)jobDetails.Job.Args[3];
Dal.OrganizationConnection.Run(intezmenyAzonosito, (h) =>
{
UserContext.Instance.SetIntezmenyEsTanev(intezmenyId, tanevId, tanevId);
var iktatottDokumentum = h.IktatottDokumentumDal().Get(iktatottDokumentumId);
iktatottDokumentum.FailedJobId = int.Parse(jobId);
iktatottDokumentum.DokumentumStatusz = (int)Enums.DokumentumStatuszEnum.Hibas;
iktatottDokumentum.ElektronikusPeldanyFeltoltesDatuma = DateTime.Now;
var dal = h.NyomtatvanyokDal();
dal.Update(iktatottDokumentum);
});
}
}
}