/// <summary> /// Crea un Messaggio Attività valido /// </summary> public AttivitaMessaggio(Attivita attivitaRiferimento, StoricoMessaggio messaggio) { Messaggio = messaggio; AttivitaRiferimento = attivitaRiferimento; if (AttivitaRiferimento != null) AttivitaRiferimento.MessaggiInviati.Add(this); }
/// <summary> /// Crea una Pratica valido /// </summary> public StoricoMessaggioAllegato(StoricoMessaggio messaggio, string checkSumAllegato, string nomeFile, string estensioneFile) { Messaggio = messaggio; CheckSumAllegato = checkSumAllegato; NomeFile = nomeFile; EstensioneFile = estensioneFile; if (messaggio != null) messaggio.Allegati.Add(this); }
public StoricoMessaggio StoricizzaMessaggio(Persona persona, Condominio condominio, RisultatoInvioMessaggio risultatoInvioMessaggio, MotivoMessaggio motivoMessaggio, string oggetto, string testo, IList<string> destinatari, string mittente, string emailRapportino, IList<DocumentInfo> allegati, TipoMessaggio tipoMessaggio) { try { StoricoMessaggio messaggio = null; if (motivoMessaggio != MotivoMessaggio.ScadenzaContratto) { if (persona != null) { var indirizzi = string.Empty; foreach (var destinatario in destinatari) { if (!string.IsNullOrEmpty(indirizzi)) indirizzi += "¥"; indirizzi += destinatario; } if (oggetto.Length > 512) oggetto = oggetto.Substring(0, 512); if (mittente.Length > 50) mittente = mittente.Substring(0, 50); messaggio = new StoricoMessaggio(persona, tipoMessaggio, motivoMessaggio, oggetto, indirizzi, mittente, risultatoInvioMessaggio.CodiceInvio, risultatoInvioMessaggio.CodiceMessaggio, risultatoInvioMessaggio.InvioRiuscito, DateTime.Now) { Testo = testo, Condominio = condominio }; // TODO: Possibile sviluppo futuro // ========================================================================================= // Le email si suppongono sempre ricevute al momento dell'invio. // Per poter gestire uno stato 'InAttesa' occorre avere una gestione automatica delle // conferme di ricezione attualmente non presente // ========================================================================================= if (tipoMessaggio == TipoMessaggio.Email) messaggio.Stato = StatoMessaggio.InAttesa; _daoFactory.GetStoricoMessaggioDao().SaveOrUpdate(messaggio); // ---------------------------------- // Allegati // ---------------------------------- if (allegati != null) { foreach (var documentInfo in allegati) { var storicoMessaggioAllegato = new StoricoMessaggioAllegato(messaggio, documentInfo.FileId, documentInfo.FileName, documentInfo.FileExtension); _daoFactory.GetStoricoMessaggioAllegatoDao().SaveOrUpdate(storicoMessaggioAllegato); } } } } return messaggio; } catch (Exception ex) { _log.ErrorFormat("Errore inaspettato durante la storicizzazione del messaggio - {0} - oggetto: {1} - indirizzi: {2} - tipo: {3}", ex, Utility.GetMethodDescription(), oggetto, destinatari.Aggregate(string.Empty, (current, destinatario) => current + (destinatario + "; ")), tipoMessaggio.ToString()); throw; } }
private StoricoMessaggioDTO setDto(StoricoMessaggio item) { var dto = new StoricoMessaggioDTO { ID = item.ID, MotivoMessaggio = item.MotivoMessaggio, DataInvio = item.DataInvio, Tipo = item.Tipo, IdPersona = item.Persona.ID, NominativoPersona = item.Persona.DisplayName, Oggetto = item.Oggetto, Testo = item.Testo, Indirizzi = item.Indirizzi, CodiceInvio = item.CodiceInvio, CodiceMessaggio = item.CodiceMessaggio, InvioCorretto = item.InvioCorretto, RecapitoCorretto = item.RecapitoCorretto, Mittente = item.Mittente, RapportinoRicevuto = item.RapportinoRicevuto, Costo = item.Costo, CostoFisso = item.CostoFisso, CostoTotale = item.Costo + item.CostoFisso, Quantita = item.Quantita, DataElaborazione = item.DataElaborazione, DataRicezione = item.DataRicezione, StatoMessaggio = item.Stato, Version = item.Version }; if(item.Soggetto != null) { dto.IdSoggettoCondominio = item.Soggetto.ID; dto.IdUnitaImmobiliare = item.Soggetto.UnitaImmobiliare.ID; dto.IdCondominio = item.Soggetto.UnitaImmobiliare.GruppoStabileRiferimento.PalazzinaRiferimento.CondominioRiferimento.ID; dto.Condominio = item.Soggetto.UnitaImmobiliare.GruppoStabileRiferimento.PalazzinaRiferimento.CondominioRiferimento.DisplayName; dto.UnitaImmobiliare = item.Soggetto.UnitaImmobiliare.Descrizione; } if (item.Condominio != null) { dto.IdCondominio = item.Condominio.ID; dto.Condominio = item.Condominio.DisplayName; } return dto; }