예제 #1
0
 public ThreadWorker(StampaDto stampa, ThreadWorkerModel model)
 {
     this.stampa = stampa;
     this.model  = model;
     t           = new Thread(DoWork);
     t.Start();
 }
        public async Task <IHttpActionResult> SetInvioStampa(StampaDto stampa)
        {
            try
            {
                await _logic.SetInvioStampa(stampa);

                return(Ok());
            }
            catch (Exception e)
            {
                Log.Error("SetInvioStampa", e);
                return(ErrorHandler(e));
            }
        }
예제 #3
0
        public async Task SetInvioStampa(StampaDto stampa)
        {
            try
            {
                var stampaInDb = await _unitOfWork.Stampe.Get(stampa.UIDStampa);

                stampaInDb.Invio     = true;
                stampaInDb.DataInvio = DateTime.Now;

                await _unitOfWork.CompleteAsync();
            }
            catch (Exception e)
            {
                Log.Error("Logic - SetInvioStampa", e);
                throw;
            }
        }
예제 #4
0
        public async Task UpdateFileStampa(StampaDto stampa)
        {
            try
            {
                var stampaInDb = await _unitOfWork.Stampe.Get(stampa.UIDStampa);

                stampaInDb.DataFineEsecuzione = DateTime.Now;
                stampaInDb.PathFile           = stampa.PathFile;

                await _unitOfWork.CompleteAsync();
            }
            catch (Exception e)
            {
                Log.Error("Logic - UpdateFileStampa", e);
                throw;
            }
        }
 public static async Task JobSetInvioStampa(StampaDto stampa)
 {
     try
     {
         var requestUrl = $"{apiUrl}/job/stampe/inviato";
         var body       = JsonConvert.SerializeObject(stampa);
         await Put(requestUrl, body);
     }
     catch (UnauthorizedAccessException ex)
     {
         Log.Error("JobSetInvioStampa", ex);
         throw ex;
     }
     catch (Exception ex)
     {
         Log.Error("JobSetInvioStampa", ex);
         throw ex;
     }
 }
 public async Task JobUpdateFileStampa(StampaDto stampa)
 {
     try
     {
         var requestUrl = $"{apiUrl}/job/stampe";
         var body       = JsonConvert.SerializeObject(stampa);
         await Put(requestUrl, body, _token);
     }
     catch (UnauthorizedAccessException ex)
     {
         Log.Error("JobUpdateFileStampa", ex);
         throw ex;
     }
     catch (Exception ex)
     {
         Log.Error("JobUpdateFileStampa", ex);
         throw ex;
     }
 }
        public async Task ExecuteAsync(StampaDto stampa)
        {
            _stampa = stampa;
            var utenteRichiedente = await apiGateway.Persone.Get(_stampa.UIDUtenteRichiesta);

            try
            {
                await apiGateway.Stampe.AddInfo(_stampa.UIDStampa,
                                                $"Inizio lavorazione - Tentativo {_stampa.Tentativi} di {_model.NumMaxTentativi}");

                if (_stampa.Tentativi < Convert.ToInt16(_model.NumMaxTentativi))
                {
                    //GetFascicolo
                    var path = string.Empty;
                    GetFascicolo(ref path);
                    //

                    //GetListEM
                    var listaEMendamenti = await GetListaEM();

                    //

                    if (_stampa.NotificaDepositoEM)
                    {
                        await DepositoDifferito(listaEMendamenti, path, utenteRichiedente);
                    }
                    else
                    {
                        await Stampa(listaEMendamenti, path, utenteRichiedente);
                    }

                    PulisciCartellaLavoroTemporanea(path);
                }
                else
                {
                    try
                    {
                        await BaseGateway.SendMail(new MailModel
                        {
                            DA        = _model.EmailFrom,
                            A         = utenteRichiedente.email,
                            OGGETTO   = "Errore generazione stampa",
                            MESSAGGIO = $"ID stampa: [{_stampa.UIDStampa}], per l'atto: [{_stampa.UIDAtto}]"
                        },
                                                   _auth.jwt);
                    }
                    catch (Exception e)
                    {
                        Log.Debug($"[{_stampa.UIDStampa}] Invio mail EXCEPTION", e);
                        await apiGateway.Stampe.AddInfo(_stampa.UIDStampa, $"Invio mail EXCEPTION ERRORE. Motivo: {e.Message}");
                    }
                }

                OnWorkerFinish?.Invoke(this, true);
            }
            catch (Exception ex)
            {
                OnWorkerFinish?.Invoke(this, false);

                Log.Error($"[{_stampa.UIDStampa}] ERROR", ex);
                try
                {
                    await apiGateway.Stampe.JobErrorStampa(_stampa.UIDStampa, ex.Message);

                    await apiGateway.Stampe.JobUnLockStampa(_stampa.UIDStampa);
                }
                catch (Exception ex2)
                {
                    Log.Error($"[{_stampa.UIDStampa}] ERROR", ex2);
                    try
                    {
                        await BaseGateway.SendMail(new MailModel
                        {
                            DA        = _model.EmailFrom,
                            A         = utenteRichiedente.email,
                            OGGETTO   = "Errore generazione fascicolo",
                            MESSAGGIO = ex.Message
                        },
                                                   _auth.jwt);
                    }
                    catch (Exception exMail)
                    {
                        Log.Error($"[{_stampa.UIDStampa}] ERROR", exMail);
                        await apiGateway.Stampe.JobErrorStampa(_stampa.UIDStampa, exMail.Message);
                    }
                }
            }
        }