/// <summary> /// Ermittelt alle API-User /// </summary> /// <param name="predicate"></param> /// <param name="pageNo"></param> /// <param name="pageSize"></param> /// <returns></returns> private async Task <IHttpActionResult> GetAllApiUsersHelper(Func <APIUser, bool> predicate, int pageNo = 1, int pageSize = 10) { IHandleJobs repo = new JobRepository(_username); var dbResult = await repo.GetAllApiUsers(predicate); if (!dbResult.Success) { return(Content(HttpStatusCode.BadRequest, dbResult.Message)); } int skip = (pageNo - 1) * pageSize; int total = dbResult.Data.Count; dbResult.Data = dbResult.Data.Skip(skip).Take(pageSize).ToList(); var result = dbResult.Data.Select(user => new { user.Username, user.IsAdmin, user.CreatedUser, user.CreatedDate, user.UniqueId, user.Id, _links = new Link() { _actions = new List <Action>() { !user.IsAdmin ? CreateActionLink <AdminController>(Names.SetApiUserAsAdmin, c => c.SetApiUserAsAdmin(user.Username), Names.SetApiUserAsAdmin):null, user.IsAdmin ? CreateActionLink <AdminController>(Names.RevokeAdminFromApiUser, c => c.RevokeAdminFromApiUser(user.Username), Names.RevokeAdminFromApiUser) : null, CreateActionLink <AdminController>(Names.DeleteApiUser, c => c.DeleteApiUser(user.Username), Names.DeleteApiUser), } } }).ToList(); result.ForEach(c => c._links._actions.RemoveAll(d => d == null)); var linkBuilderResult = new PageLinkBuilder(Url, Names.GetAllApiUsers, null, pageNo, pageSize, total); return(Ok(new JobResult <object>() { SemasResult = new SemasResult <object>(true) { Data = result }, _paging = new { First = linkBuilderResult.FirstPage, Previous = linkBuilderResult.PreviousPage, Next = linkBuilderResult.NextPage, Last = linkBuilderResult.LastPage, TotalItems = total, TotalPageCount = linkBuilderResult.TotalPageCount } })); }