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, int azienda) { try { var result = new List<RisultatoInvioMessaggio>(); var allegatiResult = new List<DocumentInfo>(); var messaggioInviato = new DocumentInfo(); if (persone.Count > 0) { var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda); var archiviazioneService = _windsorRepository.GetContainer(_info.Azienda).Resolve<IArchiviazioneOtticaService>(); var converter = _windsorRepository.GetContainer(_info.Azienda).Resolve<IConverter>(); Condominio condominio = null; if (idCondominio > 0) condominio = daoFactory.GetCondominioDao().Find(idCondominio.GetValueOrDefault(), false); IMessageService service = null; switch (tipo) { case TipoMessaggio.Fax: service = _windsorRepository.GetContainer(_info.Azienda).Resolve<IMessageService>("messageservice.fax"); break; case TipoMessaggio.Email: service = _windsorRepository.GetContainer(_info.Azienda).Resolve<IMessageService>("messageservice.email"); break; case TipoMessaggio.Sms: service = _windsorRepository.GetContainer(_info.Azienda).Resolve<IMessageService>("messageservice.sms"); break; case TipoMessaggio.Lettera: service = _windsorRepository.GetContainer(_info.Azienda).Resolve<IMessageService>("messageservice.lettera"); break; case TipoMessaggio.Manuale: service = _windsorRepository.GetContainer(_info.Azienda).Resolve<IMessageService>("messageservice.manuale"); break; } var personaService = _windsorRepository.GetContainer(_info.Azienda).Resolve<IPersonaService>(); ModelloLettera modello = null; if (idModello != null) modello = daoFactory.GetModelloLetteraDao().GetById(idModello.Value, false); // ========================================================================================= // Allegati // ========================================================================================= var allegatiMessaggio = new List<DocumentInfo>(allegati.Count() + 1); var documentoRepository = new DocumentoRepository(_info, _windsorRepository); foreach (var idDocumento in allegati) { Documento documento = null; if(idDocumento.Id != null) documento = daoFactory.GetDocumentoDao().Find(idDocumento.Id.Value, false); if (documento != null) { var tipoDocumento = TipoDocumentoArchiviazione.Contratto; if (documento.SpesaRiferimento != null) tipoDocumento = TipoDocumentoArchiviazione.FatturaPassiva; var docInfo = documentoRepository.GetDocumentInfo(idDocumento.Id.Value, tipoDocumento); if (docInfo.Body != null) { allegatiMessaggio.Add(docInfo); allegatiResult.Add(docInfo); } else _log.ErrorFormat("Tentativo di allegare documento vuoto - {0} - documento:{1}", Utility.GetMethodDescription(), documento.ID); } else if(documento == null && idDocumento.IdSpesa != null) { var spesa = daoFactory.GetSpesaDao().Find(idDocumento.IdSpesa.Value, false); var identificativoArchiviazione = archiviazioneService.GetIdentificativoArchiviazione(spesa, false); var docInfo = documentoRepository.GetDocumentBody(identificativoArchiviazione, TipoDocumentoArchiviazione.FatturaPassiva); if (docInfo.Body != null) allegatiMessaggio.Add(docInfo); else _log.ErrorFormat("Tentativo di allegare documento vuoto - {0} - spesa:{1}", Utility.GetMethodDescription(), idDocumento.IdSpesa); } } // ========================================================================================= // Allegati Nuovi // ========================================================================================= var allegatiNuoviAry = allegatiNuovi.ToArray(); for (var i = 0; i < allegatiNuoviAry.Length; i++) { if (string.IsNullOrEmpty(allegatiNuoviAry[i].BodyText)) { var allegatiElaborati = elaboraAllegato(allegatiNuoviAry[i], null, parametri, tipo, converter, azienda); if (allegatiElaborati != null) { allegatiMessaggio.Add(allegatiElaborati.Value.AllegatoDaInviare); allegatiResult.Add(allegatiElaborati.Value.AllegatoResult); } } } // ========================================================================================= // Non è presente nessuna stampa unione // ========================================================================================= if ((modello == null || !modello.StampaUnione) && !isStampaUnione(oggetto, messaggio)) { if (modello != null && (tipo == TipoMessaggio.Fax || tipo == TipoMessaggio.Lettera || tipo == TipoMessaggio.Manuale || tipo == TipoMessaggio.Email)) { var modelloLetteraService = _windsorRepository.GetContainer(_info.Azienda).Resolve<IModelloLetteraService>(); var documento = modelloLetteraService.GetLettera(idModello.Value); documento.FileName = "Documento Allegato"; if (tipo != TipoMessaggio.Manuale) { var doc = new Document(new MemoryStream(documento.Body)); var pdfStream = new MemoryStream(); doc.Save(pdfStream, SaveFormat.Pdf); documento.Body = pdfStream.ToArray(); documento.FileExtension = ".pdf"; } allegatiMessaggio.Insert(0, documento); allegatiResult.Add(documento); } IList<PersonaMessaggioDTO> personeMessaggio = new List<PersonaMessaggioDTO>(); foreach (var personaMessaggio in persone) { IList<ContattoDTO> contattiPersona = new List<ContattoDTO>(); if (contatti.ContainsKey(personaMessaggio.ID)) contattiPersona = contatti[personaMessaggio.ID]; personaMessaggio.Contatti = contattiPersona; personeMessaggio.Add(personaMessaggio); } var destinatari = personaService.GetContattiSelezionatiByTipo(personeMessaggio, tipo); if (destinatari.Count > 0) { if (service != null) { var risultatoInvio = service.InvioMessaggio(azienda, null, null, parametri.IdUnitaImmobiliare, parametri.IdFornitore, parametri.IdResponsabile, parametri.IdIncaricatoAttivita, motivoMessaggio, oggetto, messaggio, destinatari, mittente, emailRapportino, allegatiMessaggio, parametriInvioLettera).ToArray(); // In questo caso lo storico deve essere creato ora per ogni persona foreach (var personaMessaggio in persone) { var persona = daoFactory.GetPersonaDao().Find(personaMessaggio.ID, false); if (persona != null) { var storicoMessaggio = getMessaggisticaService().StoricizzaMessaggio(persona, condominio, risultatoInvio[0], motivoMessaggio, oggetto, messaggio, destinatari, mittente, emailRapportino, allegatiMessaggio, tipo); if (storicoMessaggio != null) { for (var i = 0; i < risultatoInvio.Length; i++) risultatoInvio[i].IdMessaggio = storicoMessaggio.ID; } } } if (parametriInvioLettera.AccodaMessaggio || parametriInvioLettera.ApriFileGenerato) { var zipFile = service.FinalizzaMessaggio(oggetto, parametriInvioLettera.AccodaMessaggio, azienda); if (parametriInvioLettera.ApriFileGenerato) messaggioInviato = zipFile; } result.AddRange(risultatoInvio); } } else result.Add(new RisultatoInvioMessaggio(string.Empty, null, false, "Non è presente nessun destinatario", new DocumentInfo())); } // ========================================================================================= // E' presente stampa unione con modello oppure direttamente nel testo // ========================================================================================= else { Delivery delivery = null; foreach (var personaMessaggio in persone) { var allegatiInvio = allegatiMessaggio.ToList(); var persona = daoFactory.GetPersonaDao().Find(personaMessaggio.ID, false); if (persona != null) { var modelloLetteraService = _windsorRepository.GetContainer(_info.Azienda).Resolve<IModelloLetteraService>(); parametri.IdPersonaAttiva = personaMessaggio.ID; parametri.Importo = personaMessaggio.Importo; parametri.IdUnitaImmobiliare = personaMessaggio.IdUnitaImmobiliare; if (idCondominio != null) parametri.IdCondominio = idCondominio.Value; var faxDestinatario = string.Empty; if (tipo == TipoMessaggio.Fax && contatti.ContainsKey(persona.ID) && contatti[persona.ID].Count > 0) faxDestinatario = contatti[persona.ID].FirstOrDefault().Valore; if (string.IsNullOrEmpty(faxDestinatario)) { var contattiCollection = new ContattoCollection(persona.Contatti); var contattoFax = contattiCollection.GetFirstContatto<Fax>(); if (contattoFax != null) faxDestinatario = contattoFax.Valore; } parametri.FaxDestinatario = faxDestinatario; // Se è definita una persona da contattare nella stampa unione deve essere usata quest'ultima var idPersonaStampaUnione = persona.ID; if (parametri.IdPersonaRichiedente != null) idPersonaStampaUnione = parametri.IdPersonaRichiedente.GetValueOrDefault(); var parametriStampaUnione = new ParametriStampaUnione(idPersonaStampaUnione, parametri.IdUnitaImmobiliare, parametri.IdResponsabile, parametri.IdIncaricatoAttivita, parametri.IdFornitore, idCondominio, null, personaMessaggio.TipoIndirizzo, personaMessaggio.Importo, null, null, null, parametri.TelefonoDaContattare, null, null, null, null, null, parametri.IdPersonaRichiedente, null, null, parametri.Descrizione, null, null, null, null, null, null) { IdAssemblea = parametri.IdAssemblea }; var messaggioPrincipale = getMessaggisticaService().ApplicaStampaUnione(messaggio, parametriStampaUnione, _info.Azienda); var oggettoPrincipale = getMessaggisticaService().ApplicaStampaUnione(oggetto, parametriStampaUnione, _info.Azienda); parametri.Oggetto = oggettoPrincipale; parametri.TipoIndirizzo = personaMessaggio.TipoIndirizzo; // ------------------------------------------------------------------------ //allegatiInvio //devo processare gli allegati nuovi che hanno bodytext non nullo //questi doc possono avere tag di stampa unione per persona // ========================================================================================= // Allegati Nuovi // ========================================================================================= allegatiNuoviAry = allegatiNuovi.ToArray(); for (var i = 0; i < allegatiNuoviAry.Length; i++) { if (!string.IsNullOrEmpty(allegatiNuoviAry[i].BodyText)) { var allegatiElaborati = elaboraAllegato(allegatiNuoviAry[i], persona, parametri, tipo, converter, azienda); if (allegatiElaborati != null) { allegatiInvio.Insert(0, allegatiElaborati.Value.AllegatoDaInviare); allegatiResult.Add(allegatiElaborati.Value.AllegatoResult); } } } // ------------------------------------------------------------------------ // ------------------------------------------------------------------------ // Modello allegato presente // ------------------------------------------------------------------------ if (idModello != null) { var documentoStampaUnione = modelloLetteraService.GetLetteraCompilata(idModello.Value, parametri); switch (tipo) { case TipoMessaggio.Fax: case TipoMessaggio.Lettera: case TipoMessaggio.Email: case TipoMessaggio.Manuale: // Se l'invio è manuale con generazione creazione un unico file PDF non deve essere creato un nuovo documento con il modello selezionato var checkSumDocumento = string.Empty; if(tipo != TipoMessaggio.Manuale || parametriInvioLettera.Aggregazione == AggregazioneDocumentiEnum.DocumentiSeparati) { var documentMessage = getDocumentService().SaveDocument(documentoStampaUnione.Body, documentoStampaUnione.FileName, ".rtf", null, _info.Azienda); if(documentMessage.Documento != null) checkSumDocumento = documentMessage.Documento.Checksum; } else if (documentoStampaUnione.Body != null) checkSumDocumento = Utility.GetFileChecksum(documentoStampaUnione.Body); if (!string.IsNullOrEmpty(checkSumDocumento)) { var body = documentoStampaUnione.Body; var fileExtension = documentoStampaUnione.FileExtension; if (tipo != TipoMessaggio.Manuale) { var doc = new Document(new MemoryStream(documentoStampaUnione.Body)); var pdfStream = new MemoryStream(); doc.Save(pdfStream, SaveFormat.Pdf); body = pdfStream.ToArray(); fileExtension = ".pdf"; } var documento = new DocumentInfo { Body = body, FileId = checkSumDocumento, FileName = checkSumDocumento, FileExtension = fileExtension }; allegatiInvio.Insert(0, documento); if (tipo != TipoMessaggio.Manuale || !parametriInvioLettera.ApriFileGenerato) allegatiResult.Add(documento); } break; } } IList<ContattoDTO> contattiPersona = new List<ContattoDTO>(); if (contatti.ContainsKey(personaMessaggio.ID)) contattiPersona = contatti[personaMessaggio.ID]; var personeMessaggio = new List<PersonaMessaggioDTO>(1) { new PersonaMessaggioDTO { ID = personaMessaggio.ID, Contatti = contattiPersona, } }; var destinatari = personaService.GetContattiSelezionatiByTipo(personeMessaggio, tipo); if (service != null) { int? idDelivery = null; if (delivery != null) idDelivery = delivery.Id; var resultMessage = service.InvioMessaggio(azienda, new PersonaMessaggioDTO {ID = persona.ID, IdDelivery = idDelivery}, condominio, parametri.IdUnitaImmobiliare, parametri.IdFornitore, parametri.IdResponsabile, parametri.IdIncaricatoAttivita, motivoMessaggio, oggettoPrincipale, messaggioPrincipale, destinatari, mittente, emailRapportino, allegatiInvio, parametriInvioLettera); if (resultMessage.Count > 0) { delivery = daoFactory.GetDeliveryPoDao().Find(resultMessage[0].IdDelivery, false); result.AddRange(resultMessage); } } } } if (parametriInvioLettera.AccodaMessaggio || parametriInvioLettera.ApriFileGenerato) { var zipFile = service.FinalizzaMessaggio(oggetto, parametriInvioLettera.AccodaMessaggio, azienda); if (parametriInvioLettera.ApriFileGenerato) messaggioInviato = zipFile; } } } else result.Add(new RisultatoInvioMessaggio(string.Empty, null, false, "Non è presente nessun destinatario", new DocumentInfo())); // ======================================== // Aggiorno i contatti // ======================================== if(aggiornaContatti) { var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda); foreach (var kvp in contatti) { var persona = daoFactory.GetPersonaDao().Find(kvp.Key, false); if(persona != null) { var contattoRepository = new ContattoRepository(persona, _info, _windsorRepository); foreach (var contattoDTO in kvp.Value) { var contatto = persona.Contatti.FirstOrDefault(item => item.Valore == contattoDTO.Valore); if (contatto != null) contattoDTO.ID = contatto.ID; contattoDTO.Stato = "U"; contattoRepository.ManageDomainEntity(contattoDTO, true); } } } } return new RisultatoInvioMessaggioAllegati(result, allegatiResult, messaggioInviato); } catch (Exception ex) { _log.ErrorFormat("Errore durante l'invio del messaggio - {0} - idAzienda:{1} - oggetto:{2}", ex, Utility.GetMethodDescription(), azienda, oggetto); throw; } }
private ContattoRepository getContattoRepository(Persona persona) { if (_contattoRepository == null) _contattoRepository = new ContattoRepository(persona, _info, _windsorRepository); else _contattoRepository.Persona = persona; return _contattoRepository; }
public RisultatoInvioMessaggioAllegati InvioMessaggioPersonalizzatoPersone(MotivoMessaggio motivoMessaggio, IList<PersonaMessaggioDTO> persone, string mittente, string emailRapportino, IList<int> documentiAllegati, IList<DocumentInfo> allegatiNuovi, TipoMessaggio tipo, int? idModello, ParametriStampaUnione parametri, ParametriInvioLettera parametriInvioLettera, bool aggiornaContatti, int? idCondominio, int azienda) { try { var result = new List<RisultatoInvioMessaggio>(); var messaggioInviato = new DocumentInfo(); if (persone.Count > 0) { IMessageService service = null; var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda); Condominio condominio = null; if (idCondominio > 0) condominio = daoFactory.GetCondominioDao().Find(idCondominio.GetValueOrDefault(), false); switch (tipo) { case TipoMessaggio.Fax: service = _windsorRepository.GetContainer(_info.Azienda).Resolve<IMessageService>("messageservice.fax"); break; case TipoMessaggio.Email: service = _windsorRepository.GetContainer(_info.Azienda).Resolve<IMessageService>("messageservice.email"); break; case TipoMessaggio.Sms: service = _windsorRepository.GetContainer(_info.Azienda).Resolve<IMessageService>("messageservice.sms"); break; case TipoMessaggio.Lettera: service = _windsorRepository.GetContainer(_info.Azienda).Resolve<IMessageService>("messageservice.lettera"); break; case TipoMessaggio.Manuale: service = _windsorRepository.GetContainer(_info.Azienda).Resolve<IMessageService>("messageservice.manuale"); break; } // Recupero l'eventuale modello di lettera (solo per Fax, Email o Lettera tradizionale) ModelloLettera modello = null; if (idModello != null) modello = daoFactory.GetModelloLetteraDao().GetById(idModello.Value, false); var personaService = _windsorRepository.GetContainer(_info.Azienda).Resolve<IPersonaService>(); var modelloLetteraService = _windsorRepository.GetContainer(_info.Azienda).Resolve<IModelloLetteraService>(); // ========================================================================================= // Allegati // ========================================================================================= var allegatiMessaggio = new List<DocumentInfo>(); var documentoRepository = new DocumentoRepository(_info, _windsorRepository); foreach (var idDocumento in documentiAllegati) { var documento = daoFactory.GetDocumentoDao().Find(idDocumento, false); if (documento != null) { var tipoDocumento = TipoDocumentoArchiviazione.Contratto; if (documento.SpesaRiferimento != null) tipoDocumento = TipoDocumentoArchiviazione.FatturaPassiva; var docInfo = documentoRepository.GetDocumentInfo(idDocumento, tipoDocumento); // Se è un file word lo conveerto in PDF if (tipo != TipoMessaggio.Manuale && (docInfo.FileExtension == ".doc" || docInfo.FileExtension == ".docx")) { var doc = new Document(new MemoryStream(docInfo.Body)); var pdfStream = new MemoryStream(); doc.Save(pdfStream, SaveFormat.Pdf); docInfo.Body = pdfStream.ToArray(); docInfo.FileExtension = ".pdf"; } allegatiMessaggio.Add(docInfo); } } // ========================================================================================= // Allegati Nuovi // ========================================================================================= var allegatiNuoviAry = allegatiNuovi.ToArray(); for (var i = 0; i < allegatiNuoviAry.Length; i++) { var documentMessage = getDocumentService().SaveDocument(allegatiNuovi[i].Body, allegatiNuoviAry[i].FileName, allegatiNuoviAry[i].FileExtension, null, _info.Azienda); if (documentMessage.Documento != null) { var checksum = documentMessage.Documento.Checksum; allegatiNuoviAry[i].FileId = checksum; byte[] body = null; var fileExtension = string.Empty; var fileName = string.Empty; if (tipo != TipoMessaggio.Manuale && (allegatiNuoviAry[i].FileExtension == ".doc" || allegatiNuoviAry[i].FileExtension == ".docx" || allegatiNuoviAry[i].FileExtension == ".rtf")) { try { var doc = new Document(new MemoryStream(allegatiNuovi[i].Body)); var pdfStream = new MemoryStream(); doc.Save(pdfStream, SaveFormat.Pdf); body = pdfStream.ToArray(); fileExtension = ".pdf"; fileName = allegatiNuoviAry[i].FileName; } catch (Exception ex) { _log.WarnFormat("Errore nella conversione del file in pdf - {0} - fileName:{1} - fileExtension:{2} - fileId:{3}", ex, Utility.GetMethodDescription(), allegatiNuoviAry[i].FileName, allegatiNuoviAry[i].FileExtension, allegatiNuoviAry[i].FileId); } } // Se la conversione non è stata eseguita o è fallita prendo il file originale if (body == null) { body = allegatiNuovi[i].Body; fileExtension = allegatiNuovi[i].FileExtension; fileName = allegatiNuovi[i].FileName; } var index = fileName.LastIndexOf("."); if (index > -1) fileName = fileName.Substring(0, index); var documento = new DocumentInfo { Body = body, FileId = checksum, FileName = fileName, FileExtension = fileExtension }; allegatiMessaggio.Insert(0, documento); } } // ========================================================================================= // Per ogni persona invio il messaggio // ========================================================================================= foreach (var personaMessaggio in persone) { var allegatiInvio = allegatiMessaggio.ToList(); var persona = daoFactory.GetPersonaDao().Find(personaMessaggio.ID, false); if (persona != null) { parametri.IdPersonaAttiva = persona.ID; parametri.Importo = personaMessaggio.Importo; if(idCondominio != null) parametri.IdCondominio = idCondominio.Value; var contattiCollection = new ContattoCollection(persona.Contatti); var contattoFax = contattiCollection.GetFirstContatto<Fax>(); if (contattoFax != null) parametri.FaxDestinatario = contattoFax.Valore; var messaggioPrincipale = personaMessaggio.TestoMessaggio; parametri.Body = messaggioPrincipale; switch (tipo) { case TipoMessaggio.Fax: case TipoMessaggio.Lettera: case TipoMessaggio.Email: case TipoMessaggio.Manuale: // ---------------------------------------------------------------- // Modello RTF stampa unione // ---------------------------------------------------------------- if(modello != null) { var documentoStampaUnione = modelloLetteraService.GetLetteraCompilata(idModello.GetValueOrDefault(), parametri); // Salvo il documento nel file system var documentMessage = getDocumentService().SaveDocument(documentoStampaUnione.Body, documentoStampaUnione.FileName + documentoStampaUnione.FileExtension, documentoStampaUnione.FileExtension, null, _info.Azienda); if (documentMessage.Documento != null) { var checksumModello = documentMessage.Documento.Checksum; documentoStampaUnione.FileId = checksumModello; allegatiInvio.Insert(0, documentoStampaUnione); } } // ---------------------------------------------------------------- // Documento principale (es. lettera di sollecito, subentro ecc...) // ---------------------------------------------------------------- if (personaMessaggio.DocumentoMessaggio != null) { // Salvo il documento nel file system var documentMessage = getDocumentService().SaveDocument(personaMessaggio.DocumentoMessaggio, personaMessaggio.NomeMessaggio + ".pdf", ".pdf", null, _info.Azienda); if (documentMessage.Documento != null) { var checksumFax = documentMessage.Documento.Checksum; allegatiInvio.Insert(0, new DocumentInfo(personaMessaggio.DocumentoMessaggio, checksumFax, personaMessaggio.NomeMessaggio, ".pdf") { Length = personaMessaggio.DocumentoMessaggio.Length }); } } break; } var destinatari = personaService.GetContattiSelezionatiByTipo(persone.Where(item => item.ID == persona.ID).ToList(), tipo); if (service != null) result.AddRange(service.InvioMessaggio(azienda, personaMessaggio, condominio, parametri.IdUnitaImmobiliare, parametri.IdFornitore, parametri.IdResponsabile, parametri.IdIncaricatoAttivita, motivoMessaggio, personaMessaggio.OggettoMessaggio, messaggioPrincipale, destinatari, mittente, emailRapportino, allegatiInvio, parametriInvioLettera)); } } if (parametriInvioLettera.AccodaMessaggio || parametriInvioLettera.ApriFileGenerato) { var zipFile = service.FinalizzaMessaggio(parametri.Oggetto, parametriInvioLettera.AccodaMessaggio, azienda); if (parametriInvioLettera.ApriFileGenerato) messaggioInviato = zipFile; } } else result.Add(new RisultatoInvioMessaggio(string.Empty, null, false, "Non è presente nessun destinatario", new DocumentInfo())); // ======================================== // Aggiorno i contatti // ======================================== if (aggiornaContatti) { var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda); foreach (var personaMessaggio in persone) { var persona = daoFactory.GetPersonaDao().Find(personaMessaggio.ID, false); if (persona != null) { var contattoRepository = new ContattoRepository(persona, _info, _windsorRepository); foreach (var contattoDTO in personaMessaggio.Contatti) { contattoDTO.Stato = "U"; contattoRepository.ManageDomainEntity(contattoDTO, true); } } } } return new RisultatoInvioMessaggioAllegati(result, null, messaggioInviato); } catch (Exception ex) { _log.ErrorFormat("Errore durante l'invio del messaggio - {0} - idAzienda:{1}", ex, Utility.GetMethodDescription(), azienda); throw; } }
public IList<ContattoDTO> GetContattiPersonaByTipo(int idPersona, TipoMessaggio tipoMessaggio, UserInfo userinfo) { var windsorRep = new WindsorConfigRepository(); try { windsorRep.BeginTransaction(userinfo); var repo = new ContattoRepository(null, userinfo, windsorRep); var item = repo.GetByPersonaTipo(idPersona, tipoMessaggio); windsorRep.Commit(); return item; } catch (Exception ex) { _log.ErrorFormat("Errore la lettura dei contatti di una Persona - {0} - idPersona:{1} - tipoMessaggio:{2} - azienda:{3}", ex, Utility.GetMethodDescription(), idPersona, tipoMessaggio, userinfo.Azienda); windsorRep.Rollback(); throw; } }
public int? SetContatto(ContattoDTO contattoDto, UserInfo userinfo) { var windsorRep = new WindsorConfigRepository(); try { int? item = null; if(contattoDto != null) { windsorRep.BeginTransaction(userinfo); var repo = new ContattoRepository(contattoDto.CodiceRiferimento, userinfo, windsorRep); item = repo.ManageDomainEntity(contattoDto, false); windsorRep.Commit(); } return item; } catch (Exception ex) { _log.ErrorFormat("Errore il salvataggio dei contatti - {0} - id:{1} - azienda:{2}", ex, Utility.GetMethodDescription(), contattoDto?.ID.ToString() ?? "null", userinfo.Azienda); windsorRep.Rollback(); throw; } }
public bool DeleteContatto(int idContatto, UserInfo userinfo) { var windsorRep = new WindsorConfigRepository(); try { windsorRep.BeginTransaction(userinfo); var repo = new ContattoRepository(null, userinfo, windsorRep); var item = repo.CancelContatto(idContatto); windsorRep.Commit(); return item; } catch (Exception ex) { _log.ErrorFormat("Errore nella eliminazione del contatto - {0} - id:{1} - azienda:{2}", ex, Utility.GetMethodDescription(), idContatto, userinfo.Azienda); windsorRep.Rollback(); throw; } }
public ContattoDTO[] GetContatti(UserInfo userinfo) { var windsorRep = new WindsorConfigRepository(); try { windsorRep.BeginTransaction(userinfo); var repo = new ContattoRepository(null, userinfo, windsorRep); var item = repo.GetAll(); windsorRep.Commit(); return item; } catch (Exception ex) { _log.ErrorFormat("Errore nel caricamento dei contatti - {0} - azienda:{1}", ex, Utility.GetMethodDescription(), userinfo.Azienda); windsorRep.Rollback(); throw; } }