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); }); } } }