Beispiel #1
0
        /// <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);
 }
Beispiel #3
0
        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;
            }
        }
Beispiel #4
0
        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;
        }