public IdMessage(int id, TipoNominativo tipo, string descrizione, string message)
 {
     Id = id;
     Tipo = tipo;
     Descrizione = descrizione;
     Message = message;
 }
 public MessaggioFilter(int codiceAzienda, int? codiceCondominio, string nominativo, string indirizzo, string gruppi, TipoNominativo? tipo, DateTime? dataRiferimento, int? tipoFornitore, TipoMessaggio? tipoMessaggio, List<MotivoMessaggio> motivoMessaggio)
 {
     CodiceCondominio = codiceCondominio;
     CodiceAzienda = codiceAzienda;
     Nominativo = nominativo;
     Indirizzo = indirizzo;
     Tipo = tipo;
     DataRiferimento = dataRiferimento;
     Gruppi = gruppi;
     TipoFornitore = tipoFornitore;
     TipoMessaggio = tipoMessaggio;
     MotivoMessaggio = motivoMessaggio;
 }
Beispiel #3
0
        public IEnumerable<PersonaContattoDTO> SetContattoDto(Persona item, TipoNominativo? tipoNominativo, DateTime? dataRiferimento, TipoIndirizzo? tipoIndirizzo, ImpostazioniAzienda impostazioniAzienda)
        {
            try
            {
                var listaDto = new List<PersonaContattoDTO>();
                var mainDTO = new PersonaContattoDTO
                {
                    ID = item.ID,
                    Azienda = item.AziendaID.GetValueOrDefault(),
                    Iban = item.Iban,
                    CodiceFiscale = item.CodiceFiscale,
                    Cognome = item.Cognome,
                    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,
                    IsDeleteAllow = false,
                    Username = item.DatiAutenticazione?.Username,
                    Password = item.DatiAutenticazione?.Password,
                    Barcode = item.GetBarcode(),
                    Version = item.Version
                };

                if (string.IsNullOrEmpty(mainDTO.Cognome) && string.IsNullOrEmpty(mainDTO.Nome))
                    mainDTO.Cognome = mainDTO.RagioneSociale;

                var gruppi = string.Empty;
                foreach (var personaGruppo in item.Gruppi)
                {
                    if (!string.IsNullOrEmpty(gruppi))
                        gruppi += ", ";
                    gruppi += personaGruppo.Gruppo.DescrizioneBreve;
                }
                mainDTO.Gruppi = gruppi;

                if (item.ComuneNascita != null)
                {
                    try
                    {
                        mainDTO.ComuneNascita = item.ComuneNascita.Descrizione;
                    }
                    catch (Exception ex)
                    {
                        _log.WarnFormat("Errore nel caricamento delle persone - COMUNE NASCITA - {0} - id:{1}", ex, Utility.GetMethodDescription(), item.ID);
                    }

                }

                // Indirizzi
                setIndirizzo(mainDTO, item, tipoIndirizzo, impostazioniAzienda);
                //if ((tipoIndirizzo == TipoIndirizzo.Residenza && item.IndirizzoResidenza != null) || (tipoIndirizzo == TipoIndirizzo.Recapito && item.Recapito == null))
                //{
                //    var indirizzo = _locRep.GetAddressByDomainEntity(item.IndirizzoResidenza);
                //    mainDTO.Indirizzo = indirizzo.DisplayName;
                //    mainDTO.Comune = indirizzo.DescrizioneComune + " " + indirizzo.CodiceProvincia;
                //    mainDTO.Localita = indirizzo.Localita;
                //    mainDTO.Cap = indirizzo.Cap;
                //    mainDTO.Presso = indirizzo.Presso;
                //}
                //else if (item.Recapito != null)
                //{
                //    var recapito = _locRep.GetAddressByDomainEntity(item.Recapito);
                //    mainDTO.Recapito = recapito.DisplayName;
                //    mainDTO.Indirizzo = recapito.DisplayName;
                //    mainDTO.Comune = recapito.DescrizioneComune + " " + recapito.CodiceProvincia;
                //    mainDTO.Localita = recapito.Localita;
                //    mainDTO.Cap = recapito.Cap;
                //    mainDTO.Presso = recapito.Presso;
                //}

                // Contatti
                var contatti = new ContattoCollection(item.Contatti);
                var tel = contatti.GetFirstContatto<Telefono>();
                if (tel != null)
                {
                    mainDTO.Telefono = tel.Valore;
                    if(!string.IsNullOrEmpty(tel.Descrizione))
                        mainDTO.Telefono += " (" + tel.Descrizione + ")";
                }
                
                var cell = contatti.GetFirstContatto<Cellulare>();
                if (cell != null)
                {
                    mainDTO.Cellulare = cell.Valore;
                    if (!string.IsNullOrEmpty(cell.Descrizione))
                        mainDTO.Cellulare += " (" + cell.Descrizione + ")";
                }
                
                var mail = contatti.GetFirstContatto<Email>();
                if (mail != null)
                {
                    mainDTO.Email = mail.Valore;
                    if (!string.IsNullOrEmpty(mail.Descrizione))
                        mainDTO.Email += " (" + mail.Descrizione + ")";
                }

                var mailCertificata = contatti.GetFirstContatto<EmailCertificata>();
                if (mailCertificata != null)
                {
                    mainDTO.EmailCertificata = mailCertificata.Valore;
                    if (!string.IsNullOrEmpty(mailCertificata.Descrizione))
                        mainDTO.EmailCertificata += " (" + mailCertificata.Descrizione + ")";
                }
                
                var fax = contatti.GetFirstContatto<Fax>();
                if (fax != null)
                {
                    mainDTO.Fax = fax.Valore;
                    if (!string.IsNullOrEmpty(fax.Descrizione))
                        mainDTO.Fax += " (" + fax.Descrizione + ")";
                }

                // Dati condominio
                if (item.SoggettiCondominio.Count > 0)
                {
                    SoggettoCondominio soggetto = null;
                    if(item.SoggettiCondominio.Count(soggettoItem => soggettoItem.DataFine == null) == 1)
                        soggetto = item.SoggettiCondominio.Where(soggettoItem => soggettoItem.DataFine == null).OrderBy(pers => pers.Tipo).FirstOrDefault();
                    if(soggetto == null)
                        soggetto = item.SoggettiCondominio.OrderBy(soggettoItem => soggettoItem.Tipo).ThenByDescending(soggettoItem => soggettoItem.DataFine).ThenByDescending(soggettoItem => soggettoItem.DataInizio).ThenBy(soggettoItem => soggettoItem.UnitaImmobiliare.Ordine.GetValueOrDefault()).FirstOrDefault();
                    if(soggetto != null)
                    {
                        if (soggetto.UnitaImmobiliare != null)
                        {
                            if (tipoNominativo.GetValueOrDefault() != TipoNominativo.CondominoAttivo || dataRiferimento == null || soggetto.DataFine == null || soggetto.DataFine.GetValueOrDefault() > dataRiferimento.GetValueOrDefault())
                            {
                                var dto = mainDTO.Clone() as PersonaContattoDTO;
                                if (dto != null)
                                {
                                    dto.IdUnitaImmobiliare = soggetto.UnitaImmobiliare.ID;
                                    dto.IdSoggetto = soggetto.ID;
                                    dto.DescrizioneUnitaImmobiliare = soggetto.UnitaImmobiliare.Descrizione;
                                    dto.OrdineUnitaImmobiliare = soggetto.UnitaImmobiliare.Ordine.GetValueOrDefault();
                                    dto.Interno = soggetto.UnitaImmobiliare.InternoCompleto;
                                    dto.TipoCondomino = soggetto.Tipo.ToString();
                                    dto.TipoSoggetto = TipoNominativo.Condomino;
                                    dto.DescrizioneSoggetto = soggetto.DescrizioneAggiuntiva;
                                    dto.IsResidente = soggetto.IsResidente;
                                    dto.IsConsigliere = soggetto.Consigliere;
                                    dto.SoggettoAccorpamento = soggetto.GetDescrizioneAccorpamento();
                                    dto.ModalitaConvocazione = soggetto.ModalitaConvocazione;
                                    dto.FoglioCatastale = soggetto.UnitaImmobiliare.FoglioCatastale;
                                    dto.Mappale = soggetto.UnitaImmobiliare.Mappale;
                                    dto.Subalterno = soggetto.UnitaImmobiliare.Subalterno;

                                    if(soggetto.FrazionePossesso != null)
                                        dto.Possesso = soggetto.FrazionePossesso.ToString();

                                    if (soggetto.UnitaImmobiliare.GruppoStabileRiferimento != null)
                                    {
                                        dto.IdGruppoStabile = soggetto.UnitaImmobiliare.GruppoStabileRiferimento.ID;
                                        dto.DescrizioneGruppoStabile = soggetto.UnitaImmobiliare.GruppoStabileRiferimento.Descrizione;
                                        dto.IdStabile = soggetto.UnitaImmobiliare.GruppoStabileRiferimento.PalazzinaRiferimento.ID;
                                        dto.DescrizioneStabile = soggetto.UnitaImmobiliare.GruppoStabileRiferimento.PalazzinaRiferimento.Descrizione;
                                        dto.IdCondominio = soggetto.UnitaImmobiliare.GruppoStabileRiferimento.PalazzinaRiferimento.CondominioRiferimento.ID;
                                        dto.DescrizioneCondominio = soggetto.UnitaImmobiliare.GruppoStabileRiferimento.PalazzinaRiferimento.CondominioRiferimento.DisplayName;
                                    }

                                    listaDto.Add(dto);
                                }
                            }
                        }
                        else
                        {
                            _log.WarnFormat("Attenzione presente soggetto condominio senza unità immobiliare - {0} - soggetto:{1} - persona:{2}", Utility.GetMethodDescription(), soggetto.ID, item.ID);
                        }
                    }
                }

                // Dati Fornitore
                if (item.Fornitori.Count > 0)
                {
                    foreach (var fornitore in item.Fornitori)
                    {
                        var dto = mainDTO.Clone() as PersonaContattoDTO;
                        if (dto != null)
                        {
                            dto.IdFornitore = fornitore.ID;
                            dto.TipoFornitore = fornitore.Tipo?.Descrizione;
                            dto.TipoSoggetto = TipoNominativo.Fornitore;
                            listaDto.Add(dto);
                        }
                    }
                }

                // Dati Referente
                if (item.Referenti.Count > 0)
                {
                    foreach (var dto in item.Referenti.Select(referente => mainDTO.Clone()).OfType<PersonaContattoDTO>())
                    {
                        dto.TipoSoggetto = TipoNominativo.Referente;
                        listaDto.Add(dto);
                    }
                }

                if (listaDto.Count == 0 && tipoNominativo.GetValueOrDefault() != TipoNominativo.CondominoAttivo)
                {
                    if (item.Attivita.Count == 0)
                        mainDTO.IsDeleteAllow = true;
                    mainDTO.TipoSoggetto = TipoNominativo.Contatto;
                    listaDto.Add(mainDTO);
                }

                return listaDto;
            }
            catch (Exception ex)
            {
                _log.ErrorFormat("Errore nel caricamento delle persone - {0} - id:{1}", ex, Utility.GetMethodDescription(), item.ID);
                throw;
            }
        }
Beispiel #4
0
 public IList<PersonaContattoDTO> GetByDomainEntity(IList<Persona> persone, TipoNominativo? tipoNominativo, DateTime? dataRiferimento, TipoIndirizzo? tipoIndirizzo)
 {
     try
     {
         var listaDto = new List<PersonaContattoDTO>(persone.Count);
         var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda);
         var impostazioni = daoFactory.GetImpostazioniAziendaDao().GetByAzienda(_info.Azienda);
         foreach (var persona in persone)
             listaDto.AddRange(SetContattoDto(persona, tipoNominativo, dataRiferimento, tipoIndirizzo, impostazioni));
         return listaDto.OrderBy(persona => persona.OrdineUnitaImmobiliare).ToList();
     }
     catch (Exception ex)
     {
         _log.ErrorFormat("Errore nel caricamento delle persone - {0}", ex, Utility.GetMethodDescription());
         throw;
     }
 }