public ResultDocumentiDTO GetDocumentiByFilter(DocumentoFilter filter, UserInfo userinfo) { var windsorRep = new WindsorConfigRepository(); try { windsorRep.BeginTransaction(userinfo); var service = windsorRep.GetContainer(userinfo.Azienda).Resolve<IRicercaDocumentiService>(); var lista = service.GetDocumentiByFilter(filter); var listaDto = new List<DocumentoDTO>(lista.Documenti.Count); var rep = new DocumentoRepository(userinfo, windsorRep); foreach (var doc in lista.Documenti) { try { listaDto.Add(rep.GetByDomainEntity(doc)); } catch (Exception ex) { _log.ErrorFormat("Errore durante la lettura dei documenti per filtro - {0} - id:{1}", ex, Utility.GetMethodDescription(), doc.ID); throw; } } windsorRep.Commit(); return new ResultDocumentiDTO(listaDto, lista.TotaleDocumenti); } catch (Exception ex) { _log.ErrorFormat("Errore durante la lettura dei documenti per filtro - {0} - condominio:{1}", ex, Utility.GetMethodDescription(), filter.CodiceCondominio); windsorRep.Rollback(); throw; } }