public async Task <IActionResult> GetRolesAsync(string filter = null, int start = 0, int count = 100)
        {
            var meta = await GetMetadataAsync();

            if (!meta.RoleMetadata.SupportsListing)
            {
                return(MethodNotAllowed());
            }

            var result = await service.QueryRolesAsync(filter, start, count);

            if (result.IsSuccess)
            {
                try
                {
                    return(Ok(new RoleQueryResultResource(result.Result, Url, meta.RoleMetadata)));
                }
                catch (Exception exp)
                {
                    throw new ArgumentNullException(exp.ToString());
                }
            }

            return(BadRequest(result.ToError()));
        }
Beispiel #2
0
        public async Task <IHttpActionResult> GetRolesAsync(string filter = null, int start = 0, int count = 100)
        {
            var meta = await GetMetadataAsync();

            if (!meta.RoleMetadata.SupportsListing)
            {
                return(MethodNotAllowed());
            }

            var result = await idmService.QueryRolesAsync(filter, start, count);

            if (result.IsSuccess)
            {
                var resource = new RoleQueryResultResource(result.Result, Url, meta.RoleMetadata);
                return(Ok(resource));
            }

            return(BadRequest(result.ToError()));
        }
        public async Task <IActionResult> GetUserAsync(string subject)
        {
            if (IsNullOrWhiteSpace(subject))
            {
                ModelState["subject.String"].Errors.Clear();
                ModelState.AddModelError("", Messages.SubjectRequired);
            }

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var result = await service.GetUserAsync(subject);

            if (result.IsSuccess)
            {
                if (result.Result == null)
                {
                    return(NotFound());
                }

                var meta = await GetMetadataAsync();

                RoleSummary[] roles = null;
                if (!IsNullOrWhiteSpace(meta.RoleMetadata.RoleClaimType))
                {
                    var roleResult = await service.QueryRolesAsync(null, -1, -1);

                    if (!roleResult.IsSuccess)
                    {
                        return(BadRequest(roleResult.Errors));
                    }

                    roles = roleResult.Result.Items.ToArray();
                }

                return(Ok(new UserDetailResource(result.Result, Url, meta, roles)));
            }

            return(BadRequest(result.ToError()));
        }
Beispiel #4
0
 public Task <IdentityManagerResult <QueryResult <RoleSummary> > > QueryRolesAsync(string filter, int start, int count)
 {
     return(inner.QueryRolesAsync(filter, start, count));
 }