public DatiCondomini GetByCriteria(SearchCriteria json) { if (json == null) return null; var service = new SferaService(); var info = new UserInfo(0, json.Azienda); var eserciziAttivi = service.GetEserciziByCondominio(json.Condominio, info).Where(item => item.StatoEsercizio == StatoEsercizioEnum.Aperto).ToList(); _datiCondomini.Versamenti = service.GetVersamentiByEserciziAttiviPersone(json.Condominio, new List<int> {json.Persona}, info); _datiCondomini.Rate = service.GetRateByPersonaCondominio(json.Condominio, json.Persona, info); _datiCondomini.Esercizi = eserciziAttivi.Where(item => _datiCondomini.Versamenti.Any(vers => vers.IdEsercizio == item.ID) || _datiCondomini.Rate.Any(rate => rate.IdEsercizio == item.ID)).ToList(); return _datiCondomini; }
public DatiCondomini Get([FromUri]SearchCriteria json) { if (json.Azienda > 0) { var service = new SferaService(); var info = new UserInfo(0, json.Azienda); if (json.Condominio > 0) { var versamenti = service.GetVersamentiByEserciziAttiviPersone(json.Condominio, new List<int> {json.Persona}, info); var versamentiPerEsercizi = versamenti.OrderBy(item => item.DataPagamento).GroupBy(item => item.IdEsercizio); var esercizi = versamentiPerEsercizi.Select(kvp => new EsercizioDTO {ID = kvp.Key, Descrizione = kvp.ToList()[0].DescrizioneEsercizio}).ToList(); return new DatiCondomini {Esercizi = esercizi, Versamenti = versamenti}; } } else { _log.ErrorFormat("Azienda NULL - {0} - persona:{1} - condominio:{2}", Library.Utility.GetMethodDescription(), json.Persona, json.Condominio); } return new DatiCondomini(); }