public ContattoDTO[] GetAll() { try { var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda); var lista = daoFactory.GetContattoDao().GetAll(); var contatti = new ContattoDTO[lista.Count]; int index = 0; foreach (Contatto contatto in lista) { contatti[index] = setContattiDto(contatto); index++; } return contatti; } catch (Exception ex) { _log.ErrorFormat("Errore nel caricamento dei Contatti - {0}", ex, Utility.GetMethodDescription()); throw; } }
private PersonaDTO setDto(Persona item) { if(item != null) { var dto = new PersonaDTO { ID = item.ID, Abi = item.Abi, Cab = item.Cab, Cin = item.Cin, Iban = item.Iban, CodiceFiscale = item.CodiceFiscale, Cognome = item.Cognome, ContoCorrente = item.ContoCorrente, DataNascita = item.DataNascita, DisplayName = item.DisplayName, Nome = item.Nome, Note = item.Note, PartitaIva = item.PartitaIva, RagioneSociale = item.RagioneSociale, Sesso = item.Sesso, TipoPersona = item.TipoPersona, Titolo = item.Titolo, IndirizzoResidenza = item.IndirizzoResidenza != null ? _locRep.GetAddressByDomainEntity(item.IndirizzoResidenza) : new AddressDTO(), Domicilio = item.Domicilio != null ? _locRep.GetAddressByDomainEntity(item.Domicilio) : new AddressDTO(), Recapito = item.Recapito != null ? _locRep.GetAddressByDomainEntity(item.Recapito) : new AddressDTO(), Username = item.DatiAutenticazione?.Username, Password = item.DatiAutenticazione?.Password, Version = item.Version }; if (!string.IsNullOrEmpty(item.IndirizzoResidenza?.Presso)) dto.DisplayName = $"{dto.DisplayName}{Environment.NewLine}c/o {item.IndirizzoResidenza.Presso}"; else if (!string.IsNullOrEmpty(item.Domicilio?.Presso)) dto.DisplayName = $"{dto.DisplayName}{Environment.NewLine}c/o {item.Domicilio.Presso}"; if (item.ComuneNascita != null) dto.ComuneNascita = _locRep.GetComuneByDomainEntity(item.ComuneNascita); if (item.AziendaID != null) dto.Azienda = item.AziendaID.Value; var contatti = new ContattoDTO[item.Contatti.Count]; var index = 0; foreach (var contatto in item.Contatti) { contatti[index] = getContattoRepository(item).GetByDomainEntity(contatto); index++; } dto.Contatti = contatti; foreach (var personaGruppo in item.Gruppi) dto.Gruppi.Add(personaGruppo.Gruppo.ID); return dto; } return new PersonaDTO(); }
static void updateContatto(string tipo, PersonaDTO persona, string valore, SferaService service, UserInfo info) { var dto = persona.Contatti.FirstOrDefault(item => item.TipoContatto.ToUpper() == tipo); if (dto != null) dto.Valore = valore; else dto = new ContattoDTO { TipoContatto = tipo, Valore = valore, CodiceRiferimento = persona.ID}; dto.Stato = "U"; service.SetContatto(dto, info); }
public IList<RisultatoInvioMessaggio> NotificaAIncaricato(int idCondominio, AttivitaDTO attivita, IList<NameValueDTOOfintstring> contatti, string emailRapportino, string mittente, string oggettoMessaggio, string testoMessaggio, IList<DocumentoDTO> documenti, IList<DocumentInfo> allegatiNuovi, int? idModello, ParametriStampaUnione parametriCompilazioneLettera, ParametriInvioLettera parametriInvioLettera, TipoMessaggio tipo, bool aggiornaContatti) { // ----------------------------------------------- // Documenti Allegati // ----------------------------------------------- var idDocumenti = new List<DocumentoMessaggioDTO>(); if (documenti != null) { idDocumenti.AddRange(documenti.Select(documento => new DocumentoMessaggioDTO {Id = documento.ID, IdSpesa = documento.IdSpesa})); } // ----------------------------------------------- // Destinatari // ----------------------------------------------- var persone = new List<PersonaMessaggioDTO>(); var contattiPersona = contatti.GroupBy(item => item.Value); foreach (var item in contattiPersona) { var persona = new PersonaMessaggioDTO(); var listaContatti = new List<ContattoDTO>(); foreach (var valoreContatto in item) { var contatto = new ContattoDTO { Valore = valoreContatto.Name, TipoContatto = tipo.ToString(), SelectColumn = true }; listaContatti.Add(contatto); } persona.ID = item.Key; persona.Contatti = listaContatti; persona.OggettoMessaggio = oggettoMessaggio; persona.TestoMessaggio = testoMessaggio; persona.NomeMessaggio = $"MessaggioAttivita_{DateTime.Now.ToString("dd-mm-yyyy")}"; if (tipo == TipoMessaggio.Lettera) persona.TipoIndirizzo = item.Any(contatto => contatto.Name == "Residenza") ? TipoIndirizzo.Residenza : TipoIndirizzo.Recapito; persone.Add(persona); } var idAttivita = 0; if (attivita != null) { idAttivita = attivita.ID; parametriCompilazioneLettera.Descrizione = attivita.Note; } var result = GetServiceClient().NotificaAIncaricato(idAttivita, MotivoMessaggio.NotificaAttivita, persone, oggettoMessaggio, testoMessaggio, mittente, emailRapportino, idDocumenti, new List<DocumentInfo>(allegatiNuovi), tipo, idModello, parametriCompilazioneLettera, parametriInvioLettera, aggiornaContatti, idCondominio, GetUserInfo()); CloseService(); // Apro eventuali documenti if (parametriInvioLettera.Aggregazione == AggregazioneDocumentiEnum.DocumentoUnico) _manageDocumentService.Open(result.MessaggioGenerato, null, true, MergeFieldType.Default); else { foreach (var risultatoInvioMessaggio in result.RisultatoInvio) { if (risultatoInvioMessaggio.Messaggio.Body != null) _manageDocumentService.Open(risultatoInvioMessaggio.Messaggio, null, true, MergeFieldType.Default); } } return result.RisultatoInvio; }
private Contatto manageContatto(ContattoDTO contattoDto, bool onlyValore) { Contatto cont = null; // Controllo sullo stato U, I switch (contattoDto.Stato.ToUpper()) { case "U": cont = update(contattoDto, cont, onlyValore); if (cont == null) throw new Exception("Il dato sul database è più recente di quello utilizzato"); break; case "I": cont = insert(contattoDto); break; } return cont; }
private Contatto update(ContattoDTO contattoDto, Contatto cont, bool onlyValore) { Contatto result = null; var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda); try { cont = daoFactory.GetContattoDao().Find(contattoDto.ID, false); if (cont != null) { if (!onlyValore) { //Istanzia il contatto in base al tipo di contatto Contatto newContatto = null; switch (contattoDto.TipoContatto.ToUpper()) { case "EMAIL": if (!(cont is Email)) newContatto = new Email(contattoDto.Valore, contattoDto.Predefinito, _persona); break; case "EMAILCERT": if (!(cont is EmailCertificata)) newContatto = new EmailCertificata(contattoDto.Valore, contattoDto.Predefinito, _persona); break; case "WWW": if (!(cont is EmailCertificata)) newContatto = new SitoInternet(contattoDto.Valore, contattoDto.Predefinito, _persona); break; case "TELEFONO": if (!(cont is Telefono)) newContatto = new Telefono(contattoDto.Valore, contattoDto.Predefinito, _persona); break; case "FAX": if (!(cont is Fax)) newContatto = new Fax(contattoDto.Valore, contattoDto.Predefinito, _persona); break; case "CELLULARE": if (!(cont is Cellulare)) newContatto = new Cellulare(contattoDto.Valore, contattoDto.Predefinito, _persona); break; } if (newContatto != null) { newContatto.Descrizione = contattoDto.Descrizione; newContatto.Valore = contattoDto.Valore; daoFactory.GetContattoDao().SaveOrUpdate(newContatto); daoFactory.GetContattoDao().Delete(cont); } else { cont.Descrizione = contattoDto.Descrizione; cont.Valore = contattoDto.Valore; cont.Predefinito = contattoDto.Predefinito; newContatto = cont; } if (contattoDto.SelectColumn) newContatto.Predefinito = true; result = newContatto; } else { cont.Valore = contattoDto.Valore; result = cont; } } } catch (Exception ex) { _log.ErrorFormat("Errore nel salvataggio del contatto - {0} - id:{1}", ex, Utility.GetMethodDescription(), contattoDto.ID); throw; } return result; }
private Contatto insert(ContattoDTO contattoDto) { var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda); Contatto cont; try { //Istanzia il contatto in base al tipo di contatto switch (contattoDto.TipoContatto.ToUpper()) { case "EMAIL": cont = new Email(contattoDto.Valore, contattoDto.Predefinito, _persona); break; case "TELEFONO": cont = new Telefono(contattoDto.Valore, contattoDto.Predefinito, _persona); break; case "FAX": cont = new Fax(contattoDto.Valore, contattoDto.Predefinito, _persona); break; case "CELLULARE": case "SMS": cont = new Cellulare(contattoDto.Valore, contattoDto.Predefinito, _persona); break; case "EMAILCERT": cont = new EmailCertificata(contattoDto.Valore, contattoDto.Predefinito, _persona); break; case "WWW": cont = new SitoInternet(contattoDto.Valore, contattoDto.Predefinito, _persona); break; case "MANUALE": cont = null; break; default: cont = new Email(contattoDto.Valore, contattoDto.Predefinito, _persona); break; } if (cont != null) { cont.Descrizione = contattoDto.Descrizione; if (contattoDto.SelectColumn) cont.Predefinito = true; daoFactory.GetContattoDao().SaveOrUpdate(cont); } } catch (Exception ex) { _log.ErrorFormat("Errore nell'inserimento del contatto - {0} - id:{1}", ex, Utility.GetMethodDescription(), contattoDto.ID); throw; } return cont; }
private ContattoDTO setContattiDto(Contatto contatto) { var dto = new ContattoDTO { Descrizione = contatto.Descrizione, CodiceRiferimento = contatto.Persona.ID, ID = contatto.ID, Valore = contatto.Valore, Predefinito = contatto.Predefinito, Version = contatto.Version }; //Tipo del Contatto if (Conversione.IsTypeOf(contatto, typeof(Email))) dto.TipoContatto = "Email"; else if (Conversione.IsTypeOf(contatto, typeof(Telefono))) dto.TipoContatto = "Telefono"; else if (Conversione.IsTypeOf(contatto, typeof(Fax))) dto.TipoContatto = "Fax"; else if (Conversione.IsTypeOf(contatto, typeof(Cellulare))) dto.TipoContatto = "Cellulare"; else if (Conversione.IsTypeOf(contatto, typeof(EmailCertificata))) dto.TipoContatto = "EmailCert"; else if (Conversione.IsTypeOf(contatto, typeof(SitoInternet))) dto.TipoContatto = "WWW"; return dto; }
public int? ManageDomainEntity(ContattoDTO contattoDto, bool onlyValore) { try { var item = manageContatto(contattoDto, onlyValore); if (item != null) return item.ID; return null; } catch (Exception ex) { _log.ErrorFormat("Errore nel salvataggio dei contatti - {0} - id:{1}", ex, Utility.GetMethodDescription(), contattoDto.ID); throw; } }
private ReferenteDTO setDto(Referente item) { if (item != null) { var dto = new ReferenteDTO { Version = item.Version, Sigla = item.Sigla, ID = item.ID, Dinamico = item.Dinamico, IdAzienda = item.Azienda.ID }; if (item.ReferenteSostitutivo != null) dto.Sostitutivo = item.ReferenteSostitutivo.ID; dto.IsDeleteAllow = true; if (item.CondominiAssemblea.Count > 0 || item.CondominiContabilita.Count > 0 || item.Condomini.Count > 0) dto.IsDeleteAllow = false; if (item.Dinamico != null && item.Dinamico.Value) { var referenteEffettivo = item.GetReferenteEffettivo(null, null); dto.DisplayName = item.DisplayName; if (referenteEffettivo != null && !string.IsNullOrEmpty(referenteEffettivo.Sigla)) dto.DisplayName += " (" + referenteEffettivo.Sigla + ")"; } else { dto.DisplayName = item.DisplayName; dto.DisplayNameCompleto = $"{dto.Sigla} - {dto.DisplayName}"; } if (item.PersonaRiferimento != null) { dto.Nome = item.PersonaRiferimento.Nome; dto.Cognome = item.PersonaRiferimento.Cognome; dto.PersonaId = item.PersonaRiferimento.ID; dto.NominativoPersona = item.DisplayName; dto.PartitaIva = item.PersonaRiferimento.PartitaIva; dto.CodiceFiscale = item.PersonaRiferimento.CodiceFiscale; dto.Sesso = item.PersonaRiferimento.Sesso.ToString(); dto.DataNascita = item.PersonaRiferimento.DataNascita; if (item.PersonaRiferimento.ComuneNascita != null) { dto.CodiceComuneNascita = item.PersonaRiferimento.ComuneNascita.Codice; dto.ComuneNascita = item.PersonaRiferimento.ComuneNascita.Descrizione; } // ---------------------------- // Contatti // ---------------------------- var contatti = new ContattoDTO[item.PersonaRiferimento.Contatti.Count]; var index = 0; foreach (var contatto in item.PersonaRiferimento.Contatti) { contatti[index] = getContattoRepository(item.PersonaRiferimento).GetByDomainEntity(contatto); index++; } dto.Contatti = contatti; // Per Lista var contattiColl = new ContattoCollection(item.PersonaRiferimento.Contatti); var cell = contattiColl.GetFirstContatto<Cellulare>(); if (cell != null) dto.Cellulare = cell.Valore; var tel = contattiColl.GetFirstContatto<Telefono>(); if (tel != null) dto.Telefono = tel.Valore; var mail = contattiColl.GetFirstContatto<Email>(); if (mail != null) dto.Email = mail.Valore; } else dto.Cognome = item.Descrizione; dto.NumeroCondominiAssemblea = item.CondominiAssemblea.Count; foreach (var condominio in item.CondominiAssemblea) { if (condominio.NumeroUnitaImmobiliari != null) dto.NumeroUnitaImmobiliariAssemblea += condominio.NumeroUnitaImmobiliari.Value; } // ---------------------------- // Condomini Assemblea // ---------------------------- var condominiAssemblea = new int[item.CondominiAssemblea.Count]; var indexCondominiAssemblea = 0; foreach (var condominio in item.CondominiAssemblea) { condominiAssemblea[indexCondominiAssemblea] = condominio.ID; indexCondominiAssemblea++; } dto.CondominiAssemblea = condominiAssemblea; return dto; } return null; }
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; } }
private TipoMessaggio getTipoContatto(ContattoDTO contatto) { switch (contatto.TipoContatto) { case "Email": return TipoMessaggio.Email; case "Fax": return TipoMessaggio.Fax; case "Cellulare": return TipoMessaggio.Sms; default: return TipoMessaggio.Undefined; } }