Example #1
0
        public IList<PersonaCondominioDTO> GetPersoneByEsercizio(int idEsercizio, DateTime? data)
        {
            try
            {
                IList<PersonaCondominioDTO> listaDto = new List<PersonaCondominioDTO>(); 
                var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda);
                var esercizio = daoFactory.GetEsercizioDao().Find(idEsercizio, false);
                if (esercizio != null)
                {
                    var listaUnita = daoFactory.GetUnitaImmobiliareDao().GetByCondominio(esercizio.CondominioRiferimento.ID);
                    var soggetti = daoFactory.GetSoggettoCondominioDao().GetAttiviByEsercizio(esercizio, data);

                    foreach (var unita in listaUnita)
                    {
                        var unita1 = unita;
                        var soggettiUnita = soggetti.Where(item => item.Tipo == TipoSoggetto.Conduttore && item.UnitaImmobiliare.ID == unita1.ID).ToList();
                        if (soggettiUnita.Count > 0)
                        {
                            foreach (var conduttore in soggettiUnita)
                            {
                                try
                                {
                                    if (listaDto.All(item => item.ID != conduttore.Persona.ID))
                                    {
                                        listaDto.Add(new PersonaCondominioDTO
                                        {
                                            ID = conduttore.Persona.ID,
                                            DisplayName = conduttore.DisplayName,
                                            OrdineUnitaImmobiliare = conduttore.UnitaImmobiliare.Ordine.GetValueOrDefault(),
                                            InternoUnitaImmobiliare = conduttore.UnitaImmobiliare.InternoCompleto,
                                            Nome = conduttore.Persona.Nome,
                                            Cognome = conduttore.Persona.Cognome,
                                            Descrizione = conduttore.Descrizione,
                                            Indirizzo = conduttore.Persona.IndirizzoResidenza != null ? conduttore.Persona.IndirizzoResidenza.GetIndirizzoCompleto() : string.Empty
                                        });
                                    }
                                }
                                catch (Exception ex) 
                                {
                                    _log.ErrorFormat("Errore durante la lettura dei conduttori per esercizio - SINGOLO CONDUTTORE - {0} - conduttore:{1} - esercizio:{2}", ex, Library.Utility.GetMethodDescription(), conduttore.ID, idEsercizio);
                                    throw;
                                }
                            }
                        }

                        if (soggettiUnita.Count == 0 || soggettiUnita.Count(item => item.DataFine == null) == 0)
                        {
                            var conduttore = unita.GetProprietarioPrincipale(esercizio.DataChiusura);
                            if (conduttore != null)
                            {
                                if (listaDto.All(item => item.ID != conduttore.Persona.ID))
                                {
                                    if (listaDto.Count(item => item.ID == conduttore.Persona.ID) == 0)
                                    {
                                        var dto = new PersonaCondominioDTO
                                        {
                                            ID = conduttore.Persona.ID,
                                            DisplayName = conduttore.DisplayName,
                                            OrdineUnitaImmobiliare = conduttore.UnitaImmobiliare.Ordine.GetValueOrDefault(),
                                            InternoUnitaImmobiliare = conduttore.UnitaImmobiliare.InternoCompleto,
                                            Nome = conduttore.Persona.Nome,
                                            Cognome = conduttore.Persona.Cognome,
                                            Descrizione = conduttore.Descrizione,
                                            Indirizzo = conduttore.Persona.IndirizzoResidenza != null ? conduttore.Persona.IndirizzoResidenza.GetIndirizzoCompleto() : string.Empty
                                        };

                                        if (string.IsNullOrEmpty(dto.Nome) && string.IsNullOrEmpty(dto.Cognome))
                                            dto.Cognome = conduttore.Persona.RagioneSociale;

                                        listaDto.Add(dto);
                                    }
                                }
                            }
                        }
                    }
                }

                return listaDto;
            }
            catch (Exception ex)
            {
                _log.ErrorFormat("Errore durante la lettura dei conduttori per esercizio - {0} - esercizio:{1}", ex, Library.Utility.GetMethodDescription(), idEsercizio);
                throw;
            }
        }
Example #2
0
        private static IList<PersonaCondominioDTO> setListaPersonaCondominioDto(ICollection<SoggettoCondominio> listaSoggetti, int? esercizio = null)
        {
            var listaDTO = new List<PersonaCondominioDTO>(listaSoggetti.Count);
            foreach (var soggettoCondominio in listaSoggetti.OrderBy(item => item.UnitaImmobiliare.TipoUnitaImmobiliare.Ordine))
            {
                if (listaDTO.All(item => item.ID != soggettoCondominio.Persona.ID))
                {
                    var item = soggettoCondominio.Persona;

                    var dto = new PersonaCondominioDTO
                    {
                        ID = item.ID,
                        Nome = item.Nome,
                        Cognome = item.Cognome,
                        DisplayName = item.DisplayName,
                        Descrizione = soggettoCondominio.Descrizione,
                        Note = item.Note,
                        Username = item.DatiAutenticazione?.Username,
                        Password = item.DatiAutenticazione?.Password,
                        Tipo = item.TipoPersona.ToString(),
                        OrdineUnitaImmobiliare = soggettoCondominio.UnitaImmobiliare.Ordine.GetValueOrDefault(),
                        InternoUnitaImmobiliare = soggettoCondominio.UnitaImmobiliare.InternoCompleto
                    };

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

                    if (item.IndirizzoResidenza != null)
                        dto.Indirizzo = item.IndirizzoResidenza.GetIndirizzoCompleto();

                    if (item.Domicilio != null)
                        dto.Domicilio = item.Domicilio.GetIndirizzoCompleto();

                    if (item.Recapito != null)
                        dto.Recapito = item.Recapito.GetIndirizzoCompleto();

                    if (esercizio != null)
                        dto.IdEsercizio = esercizio.Value;

                    listaDTO.Add(dto);
                }
            }

            return listaDTO;
        }
Example #3
0
        public IList<PersonaCondominioDTO> GetPersoneByEsercizio(int idEsercizio, DateTime? data)
        {
            try
            {
                IList<PersonaCondominioDTO> listaDto = new List<PersonaCondominioDTO>();
                var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda);
                var esercizio = daoFactory.GetEsercizioDao().Find(idEsercizio, false);
                if (esercizio != null)
                {
                    var listaUnita = daoFactory.GetUnitaImmobiliareDao().GetByCondominio(esercizio.CondominioRiferimento.ID);
                    var soggetti = daoFactory.GetSoggettoCondominioDao().GetAttiviByEsercizio(esercizio, data);

                    foreach (var unita in listaUnita)
                    {
                        try
                        {
                            var unita1 = unita;
                            var soggettiUnita = soggetti.Where(item => item.Tipo == TipoSoggetto.Proprietario && item.UnitaImmobiliare.ID == unita1.ID).ToList();
                            if (soggettiUnita.Count > 0)
                            {
                                foreach (var proprietario in soggettiUnita)
                                {
                                    try
                                    {
                                        if (listaDto.All(item => item.ID != proprietario.Persona.ID))
                                        {
                                            var dto = new PersonaCondominioDTO
                                            {
                                                ID = proprietario.Persona.ID,
                                                DisplayName = proprietario.DisplayName,
                                                OrdineUnitaImmobiliare = proprietario.UnitaImmobiliare.Ordine.GetValueOrDefault(),
                                                InternoUnitaImmobiliare = proprietario.UnitaImmobiliare.InternoCompleto,
                                                Nome = proprietario.Persona.Nome,
                                                Cognome = proprietario.Persona.Cognome,
                                                Descrizione = proprietario.Descrizione,
                                                Indirizzo = proprietario.Persona.IndirizzoResidenza != null ? proprietario.Persona.IndirizzoResidenza.GetIndirizzoCompleto() : string.Empty
                                            };

                                            if (string.IsNullOrEmpty(dto.Nome) && string.IsNullOrEmpty(dto.Cognome))
                                                dto.Cognome = proprietario.Persona.RagioneSociale;

                                            listaDto.Add(dto);
                                        }
                                    }
                                    catch (Exception ex)
                                    {
                                        _log.ErrorFormat("Errore nella lettura delle persone per esercizio - SINGOLO PROPRIETARIO - {0} - proprietario:{1}", ex, Utility.GetMethodDescription(), proprietario.ID);
                                        throw;
                                    }
                                }
                            }
                            else
                            {
                                _log.WarnFormat("Trovata unità immobiliare senza proprietario attivo - {0} - unità:{1} - esercizio:{2}", Utility.GetMethodDescription(), unita.ID, idEsercizio);
                            }

                        }
                        catch (Exception ex)
                        {
                            _log.ErrorFormat("Errore nella lettura delle persone per esercizio - SINGOLA UNITA' - {0} - unità:{1}", ex, Utility.GetMethodDescription(), unita.ID);
                            throw;
                        }
                    }
                }

                return listaDto;
            }
            catch (Exception ex)
            {
                _log.ErrorFormat("Errore durante la lettura dei proprietari per esercizio - {0} - esercizio:{1}", ex, Utility.GetMethodDescription(), idEsercizio);
                throw;
            }
        }