コード例 #1
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;
            }
        }
コード例 #2
0
        public bool SetConfermaRicezioneNotifica(string codiceInvio, string messageBody)
        {
            try
            {
                var result = false;
                _documentService.SetDaoFactory(_daoFactory);
                _log.DebugFormat("Richiesta conferma di invio messaggio - {0} - codiceInvio:{1}", Utility.GetMethodDescription(), codiceInvio);
                var messaggi = _daoFactory.GetStoricoMessaggioDao().GetByCodiceInvio(codiceInvio);
                if (!messaggi.Any())
                    messaggi = _daoFactory.GetStoricoMessaggioDao().GetByCodiceMessaggio(codiceInvio);
                foreach (var messaggio in messaggi)
                {
                    var azienda = _daoFactory.GetAziendaDao().Find(messaggio.Persona.AziendaID.GetValueOrDefault(), false);
                    if (azienda != null)
                    {
                        _log.DebugFormat("Salvataggio documento di conferma invio messaggio - {0} - codiceInvio:{1} - messageBody:{2}", Utility.GetMethodDescription(), codiceInvio, messageBody);

                        var documentoMessage = _documentService.SaveDocument(Conversione.ToByteArray(messageBody),
                            $"Rapportino per {codiceInvio}.eml", ".eml", null, azienda.ID);
                        if (documentoMessage.Documento != null)
                        {
                            result = true;
                            var checksum = documentoMessage.Documento.Checksum;
                            var nomeFile = $"Rapportino per {codiceInvio}.eml";
                            var doc = new Documento(checksum, nomeFile, ".eml", "RapportinoFax", false, azienda)
                            {
                                Descrizione = $"Rapportino per {codiceInvio} del: {DateTime.Today:d}"
                            };
                            _daoFactory.GetDocumentoDao().SaveOrUpdate(doc);

                            var rapportino = new StoricoMessaggioAllegato(messaggio, checksum, nomeFile, ".eml")
                            {
                                DataInserimento = DateTime.Now,
                                UtenteInserimento = "quartz"
                            };
                            _daoFactory.GetStoricoMessaggioAllegatoDao().SaveOrUpdate(rapportino);

                            messaggio.RapportinoRicevuto = true;
                            messaggio.DataRicezione = DateTime.Now;
                            _daoFactory.GetAttivitaMessaggioDao().CommitChanges();
                        }
                    }
                }

                return result;
            }
            catch (Exception ex)
            {
                _log.ErrorFormat("Errore inaspettato durante la conferma di ricezione di un rapportino di invio messaggio - {0} - codiceInvio:{1}", ex, Utility.GetMethodDescription(), codiceInvio);
                throw;
            }
        }
コード例 #3
0
ファイル: DocumentoRepository.cs プロジェクト: gipasoft/Sfera
 private DocumentoDTO setDto(StoricoMessaggioAllegato allegato)
 {
     return new DocumentoDTO
     {
         Descrizione = allegato.NomeFile,
         FileName = allegato.NomeFile,
         FileExtension = allegato.EstensioneFile,
         Checksum = allegato.CheckSumAllegato,
         DataCreazione = allegato.DataInserimento.GetValueOrDefault()
     };
 }