public ClientDetailResource(ClientDetail client, UrlHelper url, IdentityAdminMetadata idmAdminMeta) { if (client == null) throw new ArgumentNullException("client"); if (url == null) throw new ArgumentNullException("url"); if (idmAdminMeta == null) throw new ArgumentNullException("idmAdminMeta"); Data = new ClientDetailDataResource(client, url, idmAdminMeta); var links = new Dictionary<string, string>(); if (idmAdminMeta.ClientMetaData.SupportsDelete) { links["Delete"] = url.Link(Constants.RouteNames.DeleteClient, new {subject = client.Subject}); } Links = links; }
public Task<IdentityAdminResult<ClientDetail>> GetClientAsync(string subject) { int parsedId; if (int.TryParse(subject, out parsedId)) { var inMemoryClient = _clients.FirstOrDefault(p => p.Id == parsedId); if (inMemoryClient == null) { return Task.FromResult(new IdentityAdminResult<ClientDetail>((ClientDetail) null)); } var result = new ClientDetail { Subject = subject, ClientId = inMemoryClient.ClientId, ClientName = inMemoryClient.ClientName, }; result.AllowedCorsOrigins = new List<ClientCorsOriginValue>(); Mapper.Map(inMemoryClient.AllowedCorsOrigins.ToList(), result.AllowedCorsOrigins); result.AllowedCustomGrantTypes = new List<ClientCustomGrantTypeValue>(); Mapper.Map(inMemoryClient.AllowedCustomGrantTypes.ToList(), result.AllowedCustomGrantTypes); result.AllowedScopes = new List<ClientScopeValue>(); Mapper.Map(inMemoryClient.AllowedScopes.ToList(), result.AllowedScopes); result.Claims = new List<ClientClaimValue>(); Mapper.Map(inMemoryClient.Claims.ToList(), result.Claims); result.ClientSecrets = new List<ClientSecretValue>(); Mapper.Map(inMemoryClient.ClientSecrets.ToList(), result.ClientSecrets); result.IdentityProviderRestrictions = new List<ClientIdPRestrictionValue>(); Mapper.Map(inMemoryClient.IdentityProviderRestrictions.ToList(), result.IdentityProviderRestrictions); result.PostLogoutRedirectUris = new List<ClientPostLogoutRedirectUriValue>(); Mapper.Map(inMemoryClient.PostLogoutRedirectUris.ToList(), result.PostLogoutRedirectUris); result.RedirectUris = new List<ClientRedirectUriValue>(); Mapper.Map(inMemoryClient.RedirectUris.ToList(), result.RedirectUris); var metadata = GetMetadata(); var props = from prop in metadata.ClientMetaData.UpdateProperties select new PropertyValue { Type = prop.Type, Value = GetClientProperty(prop, inMemoryClient), }; result.Properties = props.ToArray(); return Task.FromResult(new IdentityAdminResult<ClientDetail>(result)); } return Task.FromResult(new IdentityAdminResult<ClientDetail>((ClientDetail) null)); }