61 lines
3.2 KiB
C#
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);
|
|
});
|
|
}
|
|
}
|
|
}
|