public async Task <DataTablesResponse> GetUsuarios(IDataTablesRequest modelo, ApplicationUserManager userManager) { try { var sortedColumn = modelo.Columns.GetSortedColumns().Where(x => x.OrderNumber == 0).FirstOrDefault(); UserColumnasOrdenables?columnaOrdenar = null; bool orderByDescending = false; if (sortedColumn != null && Enum.GetNames(typeof(UserColumnasOrdenables)).Contains(sortedColumn.Name)) { columnaOrdenar = (UserColumnasOrdenables)Enum.Parse(typeof(UserColumnasOrdenables), sortedColumn.Name); orderByDescending = sortedColumn.SortDirection == Column.OrderDirection.Descendant; } var users = _securityManager.Users.AsQueryable(); if (!string.IsNullOrEmpty(modelo.Search.Value)) { users = users.Where(m => m.Email == modelo.Search.Value); } if (orderByDescending) { users = users.OrderBy(m => columnaOrdenar); } else { users = users.OrderByDescending(m => columnaOrdenar); } var listadoUsuariosDb = users.Skip(modelo.Start).Take(modelo.Length).ToList(); var listadoUsuarios = _mapper.MapDataAModel(listadoUsuariosDb); listadoUsuarios.ForEach(u => { u.rol = GetRolesById(u.rol)?.Name; var tipoDocumentoEntity = _contexto.Catalogo.FirstOrDefault(c => c.Id == u.TipoDocumento && c.Tipo == nameof(CatalogosEnum.TipoDocumento)); u.TipoDocumentoNombre = tipoDocumentoEntity?.Nombre; }); var tabla = new DataTablesResponse(modelo.Draw, listadoUsuarios, _securityManager.Users.Count(), listadoUsuarios.Count); return(tabla); } catch (Exception ex) { string message = ex.Message; return(new DataTablesResponse(modelo.Draw, new List <UserViewModel>(), 0, 0)); } }