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; } }
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; }
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; } }