public List<VendedoresDto> Listado(string sortBy, string sortDirection, string nombre, string cuit, bool? activo, int pageIndex, int pageSize, out int pageTotal)
        {
            var criteros = new PagingCriteria();

            criteros.PageNumber = pageIndex;
            criteros.PageSize = pageSize;
            criteros.SortBy = !string.IsNullOrEmpty(sortBy) ? sortBy : "Nombre";
            criteros.SortDirection = !string.IsNullOrEmpty(sortDirection) ? sortDirection : "DESC";

            var cuitFormateado = cuit.PadLeft(11, '0');
            var denominacionFormateado = nombre.ToStringSearch();

            Expression<Func<Vendedor, bool>> where =
                x =>
                (string.IsNullOrEmpty(denominacionFormateado) || SqlFunctions.PatIndex(denominacionFormateado, x.Nombre) > 0) &&
                (string.IsNullOrEmpty(cuit) || SqlFunctions.PatIndex(cuitFormateado, x.Cuit) > 0) &&
                (!activo.HasValue || x.Activo == activo);

            var resultados = Uow.Vendedores.Listado(criteros,
                                                    where,
                                                    x => x.TiposDocumentosIdentidad,
                                                    x => x.Localidad
                                                  );

            pageTotal = resultados.PagedMetadata.TotalItemCount;

            return resultados.Entities.Project().To<VendedoresDto>().ToList();
        }
        public List<ClienteDto> Listado(string sortBy, string sortDirection, string denominacion, string cuit, bool? activo, int pageIndex, int pageSize, out int pageTotal)
        {
            var criteros = new PagingCriteria();

            criteros.PageNumber = pageIndex;
            criteros.PageSize = pageSize;
            criteros.SortBy = !string.IsNullOrEmpty(sortBy) ? sortBy : "Denominacion";
            criteros.SortDirection = !string.IsNullOrEmpty(sortDirection) ? sortDirection : "DESC";

            var cuitFormateado = cuit.PadLeft(11, '0');
            var denominacionFormateado = denominacion.ToStringSearch();

            Expression<Func<Cliente, bool>> where =
                x =>
                (string.IsNullOrEmpty(denominacionFormateado) || SqlFunctions.PatIndex(denominacionFormateado, x.Denominacion) > 0) &&
                (string.IsNullOrEmpty(cuit) || SqlFunctions.PatIndex(cuitFormateado, x.Cuit) > 0) &&
                (!activo.HasValue || x.Activo == activo);

            //Expression<Func<Cliente, bool>> where =
            //  x =>
            //  (string.IsNullOrEmpty(denominacionFormateado)
            //   || x.Denominacion.Contains(denominacion)
            //  )
            // && (string.IsNullOrEmpty(cuit)
            // || x.Cuit.Contains(cuit)
            // )
            //  && (!activo.HasValue || x.Activo == activo)
            //  ;

            var resultados = Uow.Clientes.Listado(criteros,
                                                    where,
                                                    x => x.TiposDocumentosIdentidad,
                                                    x => x.Localidad
                                                    //, x => x.Profesione,
                                                    //x => x.Especialidad
                                                    );

            pageTotal = resultados.PagedMetadata.TotalItemCount;

            return resultados.Entities.Project().To<ClienteDto>().ToList();
        }
        public List<ClienteCuentaCorrienteDto> ListadoPorCobrador(int id)
        {
            var criteros = new PagingCriteria();

            //criteros.PageNumber = pageIndex;
              //  criteros.PageSize = pageSize;
            criteros.SortBy =  "FechaVencimiento";
            criteros.SortDirection =  "ASC";

            //Expression<Func<ClientesCuentasCorriente, bool>> where =
            //    x =>x.Cuota == id;
            //    //(!activo.HasValue || x.Activo == activo);

            //var resultados = Uow.ClientesCuentasCorrientes.Listado(criteros,
            //                                        x=>x.Venta.CobradorId==id,

            //                                        x => x.Venta
            //                                       );

            Expression<Func<ClientesCuentasCorriente, bool>> where =
                x => x.Cuota > 0;
               //(string.IsNullOrEmpty(denominacionFormateado) || SqlFunctions.PatIndex(denominacionFormateado, x.Denominacion) > 0) &&
               //(string.IsNullOrEmpty(cuit) || SqlFunctions.PatIndex(cuitFormateado, x.Cuit) > 0) &&
               //(!activo.HasValue || x.Activo == activo);

            //var resultados = Uow.ClientesCuentasCorrientes.Listado(criteros,
            //                                        where,
            //                                        x => x.Venta,
            //                                        x => x.Cliente);

            var resultados = Uow.ClientesCuentasCorrientes.Listado(criteros,
                                                    where
            );

            return resultados.Entities.Project().To<ClienteCuentaCorrienteDto>().ToList();
        }