public IList<InfoSpedizioneMessaggioDTO> GetInfoMessaggio(IList<int> messaggi, TipoMessaggio tipo, UserInfo userinfo) { var windsorRep = new WindsorConfigRepository(); try { windsorRep.BeginTransaction(userinfo); var rep = new MessaggioRepository(userinfo, windsorRep); var item = rep.GetInfoMessaggio(messaggi, tipo, userinfo.Azienda); windsorRep.Commit(); return item; } catch (Exception ex) { _log.ErrorFormat("Errore insaspettato durante la lettura delle informazioni di invio dei messaggi - {0} - messaggi:{1} - azienda:{2}", ex, Utility.GetMethodDescription(), messaggi.Aggregate(string.Empty, (current, id) => current + (id + ", ")), userinfo.Azienda); windsorRep.Rollback(); throw; } }
public string RetryInvioMessaggio(int idMessaggio, UserInfo userinfo) { var windsorRep = new WindsorConfigRepository(); try { windsorRep.BeginTransaction(userinfo); var rep = new MessaggioRepository(userinfo, windsorRep); var item = rep.RetryInvioMessaggio(idMessaggio); windsorRep.Commit(); return item; } catch (Exception ex) { _log.ErrorFormat("Retry invio messaggio - {0} - messaggio:{1} - azienda:{2}", ex, Utility.GetMethodDescription(), idMessaggio, userinfo.Azienda); windsorRep.Rollback(); throw; } }
public IList<DocumentoDTO> GetMessaggioAllegati(int idStoricoMessaggio, UserInfo userinfo) { var windsorRep = new WindsorConfigRepository(); try { windsorRep.BeginTransaction(userinfo); var rep = new MessaggioRepository(userinfo, windsorRep); var item = rep.GetAllegatiByMessaggio(idStoricoMessaggio); windsorRep.Commit(); return item; } catch (Exception ex) { _log.ErrorFormat("Errore durante la lettura degli allegati di un messaggio - {0} - messaggio:{1} - idAzienda:{2}", ex, Utility.GetMethodDescription(), idStoricoMessaggio, userinfo.Azienda); windsorRep.Rollback(); throw; } }
public IList<StoricoMessaggioDTO> GetMessaggiByPersona(int idPersona, UserInfo userinfo) { var windsorRep = new WindsorConfigRepository(); try { windsorRep.BeginTransaction(userinfo); var rep = new MessaggioRepository(userinfo, windsorRep); var item = rep.GetByPersona(idPersona); windsorRep.Commit(); return item; } catch (Exception ex) { _log.ErrorFormat("Errore durante la lettura dei messaggi - {0} - persona:{1} - idAzienda:{2}", ex, Utility.GetMethodDescription(), idPersona, userinfo.Azienda); windsorRep.Rollback(); throw; } }
public string SetMessaggiInviati(IList<int> idMessaggiInviati, UserInfo userinfo) { var windsorRep = new WindsorConfigRepository(); try { windsorRep.BeginTransaction(userinfo); var rep = new MessaggioRepository(userinfo, windsorRep); var item = rep.SetMessaggiInviati(idMessaggiInviati); windsorRep.Commit(); return item; } catch (Exception ex) { _log.ErrorFormat("Errore inaspettato durante il set dei messaggi come inviati - {0} - azienda:{1} - idMessaggiDaInviati:{2}", ex, Utility.GetMethodDescription(), userinfo.Azienda, idMessaggiInviati.Aggregate(string.Empty, (current, mess) => current + (mess + ", "))); throw; } }
public IList<MessaggioInvioDTO> GetMessaggiDaInviare(MessaggioInvioFilter filter, UserInfo userinfo) { var windsorRep = new WindsorConfigRepository(); try { filter.IdAzienda = userinfo.Azienda; windsorRep.BeginTransaction(userinfo); var rep = new MessaggioRepository(userinfo, windsorRep); var item = rep.GetMessaggiDaInviare(filter); windsorRep.Commit(); return item; } catch (Exception ex) { _log.ErrorFormat("Errore inaspettato durante la lettura dei messaggi da inviare - {0} - azienda:{1} - stato:{2} - dataIniziale:{3} - dataFinale:{4} - descrizione:{5}", ex, Utility.GetMethodDescription(), filter.IdAzienda, filter.Stato, filter.DataIniziale, filter.DataFinale, filter.Descrizione); throw; } }
public RisultatoInvioMessaggioAllegati InvioMessaggioPersonalizzato(MotivoMessaggio motivoMessaggio, IList<PersonaMessaggioDTO> persone, string mittente, string emailRapportino, IList<int> allegati, IList<DocumentInfo> allegatiNuovi, TipoMessaggio tipo, int? idModello, ParametriStampaUnione parametri, ParametriInvioLettera parametriInvioLettera, bool aggiornaContatti, int? idCondominio, UserInfo userinfo) { var windsorRep = new WindsorConfigRepository(); try { windsorRep.BeginTransaction(userinfo); var rep = new MessaggioRepository(userinfo, windsorRep); var item = rep.InvioMessaggioPersonalizzatoPersone(motivoMessaggio, persone, mittente, emailRapportino, allegati, allegatiNuovi, tipo, idModello, parametri, parametriInvioLettera, aggiornaContatti, idCondominio, userinfo.Azienda); windsorRep.Commit(); return item; } catch (Exception ex) { _log.Error("Errore durante l'invio del messaggio - " + Utility.GetMethodDescription() + " - idAzienda:" + userinfo.Azienda, ex); windsorRep.Rollback(); throw; } }
public RisultatoInvioMessaggioAllegati InvioMessaggioPersone(MotivoMessaggio motivoMessaggio, string oggetto, string messaggio, IList<PersonaMessaggioDTO> persone, Dictionary<int, BindingList<ContattoDTO>> contatti, string mittente, string emailRapportino, IList<DocumentoMessaggioDTO> allegati, IList<DocumentInfo> allegatiNuovi, TipoMessaggio tipo, int? idModello, ParametriStampaUnione parametri, ParametriInvioLettera parametriInvioLettera, bool aggiornaContatti, int? idCondominio, UserInfo userinfo) { var retryCount = 5; var success = false; var windsorRep = new WindsorConfigRepository(); var item = new RisultatoInvioMessaggioAllegati(); while (retryCount >= 0 && !success) { try { windsorRep.BeginTransaction(userinfo); var rep = new MessaggioRepository(userinfo, windsorRep); item = rep.InvioMessaggioPersone(motivoMessaggio, oggetto, messaggio, persone, contatti, mittente, emailRapportino, allegati, allegatiNuovi, tipo, idModello, parametri, parametriInvioLettera, aggiornaContatti, idCondominio, userinfo.Azienda); if (parametriInvioLettera.Aggregazione == AggregazioneDocumentiEnum.DocumentoUnico) { item.Allegati = null; item.RisultatoInvio = new List<RisultatoInvioMessaggio> {new RisultatoInvioMessaggio(null, null, true, "Il documento è stato correttamente generato", new DocumentInfo())}; } windsorRep.Commit(); success = true; } catch (Exception ex) { _log.ErrorFormat("Errore durante l'invio del messaggio - TENTATIVO:{0} - {1} - oggetto:{2} - motivo:{3} - azienda:{4}", ex, (6 - retryCount), Utility.GetMethodDescription(), oggetto, motivoMessaggio, userinfo.Azienda); windsorRep.Rollback(); if (!isRetryException(ex)) throw; // Add delay here if you wish. System.Threading.Thread.Sleep(1000 * (6 - retryCount)); retryCount--; _log.InfoFormat("Invio del messaggio - INIZIO TENTATIVO:{0} - {1} - oggetto:{2} - motivo:{3} - azienda:{3}", ex, (6 - retryCount), Utility.GetMethodDescription(), oggetto, motivoMessaggio, userinfo.Azienda); } } if (!success) windsorRep.Rollback(); return item; }
public RisultatoInvioMessaggioAllegati NotificaAIncaricato(int idAttivita, MotivoMessaggio motivoMessaggio, IList<PersonaMessaggioDTO> persone, string oggettoMessaggio, string testoMessaggio, string mittente, string emailRapportino, IList<DocumentoMessaggioDTO> allegati, IList<DocumentInfo> allegatiNuovi, TipoMessaggio tipo, int? idModello, ParametriStampaUnione parametri, ParametriInvioLettera parametriInvioLettera, bool aggiornaContatti, int? idCondominio) { try { // Invio i messaggi var messaggioRepository = new MessaggioRepository(_info, _windsorRepository); var contatti = persone.ToDictionary(personaMessaggioDTO => personaMessaggioDTO.ID, personaMessaggioDTO => new BindingList<ContattoDTO>(personaMessaggioDTO.Contatti)); var risultatoInvio = messaggioRepository.InvioMessaggioPersone(motivoMessaggio, oggettoMessaggio, testoMessaggio, persone, contatti, mittente, emailRapportino, allegati, allegatiNuovi, tipo, idModello, parametri, parametriInvioLettera, aggiornaContatti, idCondominio, _info.Azienda); // Associo i messaggi avviati con l'attività var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda); var attivita = daoFactory.GetAttivitaDao().Find(idAttivita, false); if (attivita != null) { foreach (var risultatoInvioMessaggio in risultatoInvio.RisultatoInvio) { if (risultatoInvioMessaggio.InvioRiuscito && risultatoInvioMessaggio.IdMessaggio > 0) { var attivitaMessaggio = new AttivitaMessaggio(attivita, daoFactory.GetStoricoMessaggioDao().GetById(risultatoInvioMessaggio.IdMessaggio, false)); daoFactory.GetAttivitaMessaggioDao().SaveOrUpdate(attivitaMessaggio); } } // Salvo tutti i documenti legandoli alla attività foreach (var documentInfo in risultatoInvio.Allegati) { var documento = new Documento(documentInfo.FileId, documentInfo.FileName, documentInfo.FileExtension, "Attivita", false, daoFactory.GetAziendaDao().GetById(attivita.PraticaRiferimento.AziendaID.GetValueOrDefault(), false)) { Descrizione = documentInfo.BodyText, AttivitaRiferimento = attivita }; daoFactory.GetDocumentoDao().SaveOrUpdate(documento); } // Documenti generati dall'invio manuale del messaggio foreach (var itemResult in risultatoInvio.RisultatoInvio) { if (itemResult.Messaggio.Body != null) { var documentoLettera = new Documento(itemResult.Messaggio.FileId, itemResult.Messaggio.FileName, itemResult.Messaggio.FileExtension, "Attivita", false, daoFactory.GetAziendaDao().GetById(attivita.PraticaRiferimento.AziendaID.GetValueOrDefault(), false)) { Descrizione = itemResult.Messaggio.BodyText, AttivitaRiferimento = attivita }; daoFactory.GetDocumentoDao().SaveOrUpdate(documentoLettera); } } } return risultatoInvio; } catch (Exception ex) { _log.ErrorFormat("Errore durante l'invio del messaggio - {0} - azienda:{1}", ex, Utility.GetMethodDescription(), _info.Azienda); throw; } }