示例#1
0
        public DialogResult OpenDialogFormInvioMessaggio(TipoMessaggio? tipoMessaggio, List<int> destinatari, ModelloLetteraDTO modelloLettera, string contattoMittente, ParametriStampaUnione parametriLettera)
        {

            DialogResult result;
            using (var form = new InvioMessaggioUI(tipoMessaggio, contattoMittente, parametriLettera))
            {
                if (destinatari != null && destinatari.Count > 0)
                    form.LoadPersone(destinatari);
                if (modelloLettera != null)
                    form.LoadModello(modelloLettera);

                if (!string.IsNullOrEmpty(_customText))
                    form.ShowInserisciTestoCustom(_customText);
                if (!string.IsNullOrEmpty(_userInfoText))
                    form.ShowInserisciUserInfo(_userInfoText);

                result = form.ShowDialog();
                if (result != DialogResult.Cancel)
                {
                    _contattiSelected = form.GetContattiSelected();
                    _contattoDaContattare = form.GetContattoDaContattare();
                    _personaDaContattare = form.GetPersonaDaContattare();
                    _modelloLettera = form.GetModelloLettera();
                    _emailRapportino = form.GetEmailRapportino();
                    _testoMessaggio = form.GetTestoMessaggio();
                    _oggettoMessaggio = form.GetOggettoMessaggio();
                    _invioVeloce = form.GetInvioVeloce();
                    _messageType = form.GetMessageType();
                    _colore = form.GetColore();
                    _apriFile = form.GetApriFile();
                    _aggregazione = form.GetAggregazioneDocumenti();
                    _formatoDocumento = form.GetFormatoDocumento();
                    _accodaMessaggio = form.GetAccodaMessaggio();
                    _numeraPagine = form.GetNumeraPagine();
                    _fronteRetro = form.GetFronteRetro();
                    _primaPaginaMittente = form.GetPrimaPaginaMittente();
                    _mittente = form.GetMittente();
                    _tipoMessaggio = form.GetTipoMessaggio();
                    _documenti = form.GetDocumenti();
                    _documentiNew = form.GetDocumentiNew();
                    _parametriInvioLettera = new ParametriInvioLettera { Tipo = form.GetMessageType() };
                    _aggiornaContatti = form.GetAggiornaContatti();                     
                }
                
                form.CloseForm();
            }

            Application.DoEvents();
            return result;
        }
示例#2
0
        public DialogResult OpenDialogFormInvioMessaggio(TipoMessaggio? tipoMessaggio, PersonaDTO destinatario, ModelloLetteraDTO modelloLettera, string contattoMittente, ParametriStampaUnione parametriLettera)
        {
            var destinatari = new List<PersonaDTO>();
            if(destinatario != null)
                destinatari.Add(destinatario);

            return OpenDialogFormInvioMessaggio(tipoMessaggio, destinatari, modelloLettera, contattoMittente, parametriLettera);
            //DialogResult result;
            //using (var form = new InvioMessaggioUI(tipoMessaggio, contattoMittente, parametriLettera))
            //{
            //    if (destinatario != null)
            //        form.LoadPersone(new List<int> { destinatario.ID });
            //    if (modelloLettera != null)
            //        form.LoadModello(modelloLettera);

            //    if (!string.IsNullOrEmpty(_customText))
            //        form.ShowInserisciTestoCustom(_customText);
            //    if (!string.IsNullOrEmpty(_userInfoText))
            //        form.ShowInserisciUserInfo(_userInfoText);

            //    result = form.ShowDialog();

            //    _contattiSelected = form.GetContattiSelected();
            //     _contattoDaContattare = form.GetContattoDaContattare();
            //    _personaDaContattare = form.GetPersonaDaContattare();
            //    _modelloLettera = form.GetModelloLettera();
            //    _emailRapportino = form.GetEmailRapportino();
            //    _testoMessaggio = form.GetTestoMessaggio();
            //    _oggettoMessaggio = form.GetOggettoMessaggio();
            //    _invioVeloce = form.GetInvioVeloce();
            //    _messageType = form.GetMessageType();
            //    _colore = form.GetColore();
            //    _apriFile = form.GetApriFile();
            //    _pdfUnico = form.GetPdfUnico();
            //    _accodaMessaggio = form.GetAccodaMessaggio();
            //    _numeraPagine = form.GetNumeraPagine();
            //    _fronteRetro = form.GetFronteRetro();
            //    _primaPaginaMittente = form.GetPrimaPaginaMittente();
            //    _mittente = form.GetMittente();
            //    _tipoMessaggio = form.GetTipoMessaggio();
            //    _documenti = form.GetDocumenti();
            //    _documentiNew = form.GetDocumentiNew();
            //    _parametriInvioLettera = new ParametriInvioLettera();
            //    _aggiornaContatti = form.GetAggiornaContatti(); 

            //    form.CloseForm();
            //}

            //Application.DoEvents();
            //return result;
        }
示例#3
0
        public DialogResult OpenDialogFormTestoMessaggioPersone(IList<PersonaContattoDTO> personeSelezionate, string contattoMittente, ParametriStampaUnione parametriLettera, string nomeFile, DocumentoFilter filterDocumenti, bool sceltaModello)
        {
            DialogResult result;
            using (var form = new TestoMessaggioPersoneUI(personeSelezionate, contattoMittente, parametriLettera, sceltaModello, _manageDocumentService, _modelloLetteraService))
            {
                result = form.ShowDialog();

                _modelloLettera = form.GetModelloLettera();
                _emailRapportino = form.GetEmailRapportino();
                _testoMessaggio = form.GetTestoMessaggio();
                _oggettoMessaggio = form.GetOggetto();
                _invioVeloce = form.GetInvioVeloce();
                _messageType = form.GetMessageType();
                _colore = form.GetColore();
                _apriFile = form.GetApriFile();
                _aggregazione = form.GetAggregazioneDocumenti();
                _formatoDocumento = form.GetFormatoDocumento();
                _accodaMessaggio = form.GetAccodaMessaggio();
                _numeraPagine = form.GetNumeraPagine();
                _fronteRetro = form.GetFronteRetro();
                _primaPaginaMittente = form.GetPrimaPaginaMittente();
                _mittente = form.GetMittente();
                _tipoMessaggio = form.GetTipoMessaggio();
                _documenti = form.GetDocumenti();
                _documentiNew = form.GetDocumentiNew();
                _personeSelezionate = form.GetPersoneSelezionate();
                _parametriInvioLettera = new ParametriInvioLettera { Tipo = form.GetMessageType() };
                _aggiornaContatti = false;

            }
            Application.DoEvents();
            return result;
        }
示例#4
0
 void modelloLetteraServiceDocumentSave(object sender, DocumentSaveArgs e)
 {
     if (_modelloAperto != null)
     {
         var documentMessages = _modelloLetteraService.SaveDocumento(e.DocumentoRtf);
         if (documentMessages.Documento != null)
         {
             var checksum = documentMessages.Documento.Checksum;
             if(!_updated.Contains(_modelloAperto))
                 _updated.Add(_modelloAperto);
             _modelloAperto.Checksum = checksum;
             Salva();
             _modelloAperto = null;
         }
         else
             CommonMessages.DisplayWarning(string.Format("Si è verificato un errore nel salvataggio del documento.{0}{1}", Environment.NewLine, documentMessages.Message));
     }
 }
示例#5
0
 private void listaDoubleClickRow(object sender, DoubleClickRowEventArgs e)
 {
     _modelloAperto = (ModelloLetteraDTO)lista.ActiveRow.ListObject;
     if (_modelloAperto.Id == 0)
     {
         if(string.IsNullOrEmpty(_modelloAperto.Descrizione))
              _modelloAperto.Descrizione = "modello";
         if(string.IsNullOrEmpty(_modelloAperto.Tipo))
             _modelloAperto.Tipo = TipoModelloLetteraEnum.Messaggistica.ToString();
     }
     _modelloLetteraService.OpenModello(_modelloAperto);
 }
示例#6
0
 public void LoadModello(ModelloLetteraDTO modelloLetteraDTO)
 {
     if (modelloLetteraDTO != null)
         modelliLettera.Value = modelloLetteraDTO.Id;
     else
         modelliLettera.Value = null;}
示例#7
0
        private bool validateModello(ModelloLetteraDTO modello)
        {
            try
            {
                if (modello != null && lista.ActiveRow != null)
                {
                    modello.IsUpdateAllow = true;
                    if ((lista.ActiveRow.Cells["Tipo"] != null &&  !string.IsNullOrEmpty(lista.ActiveRow.Cells["Tipo"].Text)) || _tipiModello.Count == 1)
                    {
                        if (lista.ActiveRow.Cells["Tipo"] != null && !string.IsNullOrEmpty(lista.ActiveRow.Cells["Tipo"].Text))
                        {
                            try
                            {
                                modello.Tipo = lista.ActiveRow.GetCellValue("Tipo").ToString();
                            }
                            catch (Exception ex)
                            {
                                _log.ErrorFormat("Errore nel parse del tipo di modello - {0} - tipo:{1}", ex, Gipasoft.Library.Utility.GetMethodDescription(), lista.ActiveRow.Cells["Tipo"].Text);                                
                                throw;
                            }
                        }
                        else if (_tipiModello.Count == 1)
                        {
                            try
                            {
                                var tipoSingolo = _tipiModello[0];
                                modello.Tipo = tipoSingolo.ToString();
                                if (lista.ActiveRow.Cells["Tipo"] != null)
                                    lista.ActiveRow.Cells["Tipo"].Value = tipoSingolo.ToString();
                            }
                            catch (Exception ex)
                            {
                                _log.ErrorFormat("Errore nella valorizzazione del tipo di modello - {0} - tipo:{1}", ex, Gipasoft.Library.Utility.GetMethodDescription(), _tipiModello.Aggregate(string.Empty, (current, item) => current + item.ToString()));
                                throw;
                            }
                        }
                        return true;
                    }
                    else
                    {
                        Library.CommonMessages.DisplayWarning("Scegliere un tipo");
                        return false;
                    }
                }

                return true;
            }
            catch (Exception ex)
            {
                var idModello = "<NULL>";
                if (modello != null)
                    idModello = modello.Id.ToString();

                _log.ErrorFormat("Errore nella validazione del modello - {0} - modello:{1}", ex, Gipasoft.Library.Utility.GetMethodDescription(), idModello);
                throw;
            }

        }
 public string DeleteModelloLettera(ModelloLetteraDTO modello)
 {
     var result = string.Empty;
     if (modello != null && modello.Id > 0)
     {
         result = GetServiceClient().DeleteModelloLettera(modello.Id, GetUserInfo());
         CloseService();
     }
     return result;
 }
        public void OpenModello(ModelloLetteraDTO modello)
        {
            var doc = new DocumentInfo{ FileName = Conversione.ToFileName(modello.Descrizione), FileExtension = ".docx" };
            if (modello.Id > 0)
                doc = GetServiceClient().GetDocumentoModelloLettera(modello.Id, GetUserInfo());

            var mergeFieldType = MergeFieldType.Default;
            switch (modello.Tipo.ToLower())
            {
                case "assemblea":
                   mergeFieldType = MergeFieldType.Assemblea;
                   break;
            }
            _manageDocumentService.Open(doc, modello.Descrizione, true, mergeFieldType);
            CloseService();
        }
示例#10
0
        public IList<RisultatoInvioMessaggio> InvioMessaggioPersonalizzato(CondominioDTO condominio, MotivoMessaggio motivoMessaggio, IList<PersonaMessaggioDTO> persone, string mittente, string emailRapportino, IList<DocumentoDTO> allegati, IList<DocumentInfo> allegatiNuovi, TipoMessaggio tipo, ModelloLetteraDTO modello, ParametriStampaUnione parametri, ParametriInvioLettera parametriInvioLettera, bool aggiornaContatti)
        {
            try
            {
                // -----------------------------------------------
                //  Documenti Allegati
                // -----------------------------------------------
                var idDocumenti = new List<int>();
                if (allegati != null)
                    idDocumenti.AddRange(allegati.Where(item => item != null).Select(documento => documento.ID));

                int? idCondominio = null;
                if (condominio != null)
                    idCondominio = condominio.ID;

                int? idModelloLettera = null;
                if (modello != null)
                    idModelloLettera = modello.Id;

                var result = GetServiceClient().InvioMessaggioPersonalizzato(motivoMessaggio, new List<PersonaMessaggioDTO>(persone), mittente, emailRapportino, idDocumenti, new List<DocumentInfo>(allegatiNuovi), tipo, idModelloLettera, parametri, parametriInvioLettera, aggiornaContatti, idCondominio, GetUserInfo());
                CloseService();

                if (result.MessaggioGenerato.Body != null)
                    _manageDocumentService.Open(result.MessaggioGenerato, parametri.Oggetto, true, MergeFieldType.Default);

                return result.RisultatoInvio;

            }
            catch (Exception ex)
            {
                var idCondominio = "<NULL>";
                if (condominio != null)
                    idCondominio = condominio.ID.ToString();

                var idModelloLettera = "<NULL>";
                if (modello != null)
                    idModelloLettera = modello.Id.ToString();

                _log.FatalFormat("Errore nell'invio del messaggio - {0} - mittente:{1} - condominio:{2} - modello:{3}", ex, Utility.GetMethodDescription(), mittente, idCondominio, idModelloLettera);
                throw;
            }
        }
示例#11
0
        public IList<RisultatoInvioMessaggio> InvioMessaggio(CondominioDTO condominio, MotivoMessaggio motivoMessaggio, string oggetto, string messaggio, IList<PersonaContattoDTO> persone, Dictionary<int, List<ContattoDTO>> contatti, string mittente, string emailRapportino, IList<DocumentoDTO> allegati, IList<DocumentInfo> allegatiNuovi, TipoMessaggio tipo, ModelloLetteraDTO modello, ParametriStampaUnione parametri, ParametriInvioLettera parametriInvioLettera, bool aggiornaContatti)
        {
            // -----------------------------------------------
            //  Destinatari
            // -----------------------------------------------
            var personeMessaggio = persone.Select(persona => new PersonaMessaggioDTO {ID = persona.ID, TipoIndirizzo = persona.Indirizzo.RecapitoResidenza, IdUnitaImmobiliare = persona.IdUnitaImmobiliare}).ToList();

            // -----------------------------------------------
            //  Documenti Allegati
            // -----------------------------------------------
            var idDocumenti = new List<DocumentoMessaggioDTO>();
            if (allegati != null)
            {
                idDocumenti.AddRange(allegati.Select(documento => new DocumentoMessaggioDTO {Id = documento.ID, IdSpesa = documento.IdSpesa}));
            }

            int? idModelloLettera = null;
            if (modello != null)
                idModelloLettera = modello.Id;

            int? idCondominio = null;
            if (condominio != null)
                idCondominio = condominio.ID;

            var result = new RisultatoInvioMessaggioAllegati();
            try
            {
                result = GetServiceClient().InvioMessaggioPersone(motivoMessaggio, oggetto, messaggio, personeMessaggio, contatti, mittente, emailRapportino, idDocumenti, new List<DocumentInfo>(allegatiNuovi), tipo, idModelloLettera, parametri, parametriInvioLettera, aggiornaContatti, idCondominio, GetUserInfo());
            }
            catch (OutOfMemoryException ex)
            {
                _log.WarnFormat("Errore nell'invio del messaggio a persone - {0} - azienda:{1}", ex, Utility.GetMethodDescription(), Login.Instance.CurrentLogin().Azienda);
                return new List<RisultatoInvioMessaggio> { new RisultatoInvioMessaggio { InvioRiuscito = false, MessaggioInvio = $"La memoria non è sufficiente per l'invio del messaggio.{Environment.NewLine}Per eseguire l'invio del messaggio da questa postazione occorre aumentare la ram disponibile" } };
            }
            catch (CommunicationException ex)
            {
                _log.WarnFormat("Errore nell'invio del messaggio a persone - {0} - azienda:{1}", ex, Utility.GetMethodDescription(), Login.Instance.CurrentLogin().Azienda);
                return new List<RisultatoInvioMessaggio> { new RisultatoInvioMessaggio { InvioRiuscito = false, MessaggioInvio = $"La memoria non è sufficiente per l'invio del messaggio.{Environment.NewLine}Per eseguire l'invio del messaggio da questa postazione occorre aumentare la ram disponibile" } };
            }
            catch (Exception ex)
            {
                _log.ErrorFormat("Errore nell'invio del messaggio a persone - {0} - azienda:{1}", ex, Utility.GetMethodDescription(), Login.Instance.CurrentLogin().Azienda);
                throw;
            }
            finally
            {
                CloseService();
            }

            if (result.MessaggioGenerato.Body != null)
                _manageDocumentService.Open(result.MessaggioGenerato, oggetto, true, MergeFieldType.Default, _aziendaService.GetAperturaDocumentoMessaggistica());

            return result.RisultatoInvio;
        }
示例#12
0
		public IList<ModelloLetteraDTO> GetModelliLettera(IList<TipoModelloLetteraEnum> tipo, UserInfo userinfo)
		{
			var windsorRep = new WindsorConfigRepository();
			try
			{
				windsorRep.BeginTransaction(userinfo);
				var service = windsorRep.GetContainer(userinfo.Azienda).Resolve<IModelloLetteraService>();
				var modelli = service.GetModelliLettera(userinfo.Azienda, tipo);
				var modelliDto = new List<ModelloLetteraDTO>(modelli.Count);

				foreach (var modello in modelli)
				{
					var modelloDto = new ModelloLetteraDTO
					{
						Id = modello.ID,
						Descrizione = modello.Descrizione,
						Checksum = modello.Checksum,
						Tipo = modello.Tipo.ToString(),
						StampaUnione = modello.StampaUnione
					};
					if (modello.Azienda != null)
					{
						modelloDto.IdAzienda = modello.Azienda.ID;
						modelloDto.IsUpdateAllow = true;
					}
					else
						modelloDto.IsUpdateAllow = false;

					modelliDto.Add(modelloDto);
				}

				windsorRep.Commit();
				return modelliDto;
			}
			catch (Exception ex)
			{
                _log.ErrorFormat("Errore nella lettura dei modelli di lettera - {0} - azienda:{1} - tipo:{2}", ex, Utility.GetMethodDescription(), userinfo.Azienda, tipo);
				windsorRep.Rollback();
				throw;
			}
		}