public async Task <IdentityResult> AddPostLogoutRedirectUriToClientAsync(Neo4jIdentityServer4Client client, Neo4jIdentityServer4ClientPostLogoutRedirectUri postLogoutRedirectUri, CancellationToken cancellationToken = default(CancellationToken)) { cancellationToken.ThrowIfCancellationRequested(); ThrowIfDisposed(); client.ThrowIfNull(nameof(client)); postLogoutRedirectUri.ThrowIfNull(nameof(postLogoutRedirectUri)); try { var cypher = $@" MATCH (client:{IdSrv4Client} {{ClientId: $p0}}) MERGE (postLogoutRedirectUri:{IdSrv4ClientPostLogoutRedirectUri} { "$p1".AsMapForNoNull<Neo4jIdentityServer4ClientPostLogoutRedirectUri>(postLogoutRedirectUri) }) MERGE (client)-[:{Neo4jConstants.Relationships.HasPostLogoutRedirectUri}]->(postLogoutRedirectUri)"; var result = await Session.RunAsync(cypher, Params.Create(client.ClientId, postLogoutRedirectUri)); await RaiseClientChangeEventAsync(client); return(IdentityResult.Success); } catch (ClientException ex) { return(ex.ToIdentityResult()); } }
public async Task <IdentityResult> DeletePostLogoutRedirectUriAsync(Neo4jIdentityServer4Client client, Neo4jIdentityServer4ClientPostLogoutRedirectUri postLogoutRedirectUri, CancellationToken cancellationToken = default(CancellationToken)) { cancellationToken.ThrowIfCancellationRequested(); ThrowIfDisposed(); client.ThrowIfNull(nameof(client)); postLogoutRedirectUri.ThrowIfNull(nameof(postLogoutRedirectUri)); try { var cypher = $@" MATCH (client:{IdSrv4Client})-[:{ Neo4jConstants.Relationships.HasPostLogoutRedirectUri }]->(postLogoutRedirectUri:{IdSrv4ClientPostLogoutRedirectUri}) WHERE client.ClientId = $p0 AND postLogoutRedirectUri.PostLogoutRedirectUri = $p1 DETACH DELETE postLogoutRedirectUri"; await Session.RunAsync(cypher, Params.Create( client.ClientId, postLogoutRedirectUri.PostLogoutRedirectUri )); await RaiseClientChangeEventAsync(client); return(IdentityResult.Success); } catch (ClientException ex) { return(ex.ToIdentityResult()); } }
public async Task <Neo4jIdentityServer4ClientPostLogoutRedirectUri> FindPostLogoutRedirectUriAsync( Neo4jIdentityServer4Client client, Neo4jIdentityServer4ClientPostLogoutRedirectUri postLogoutRedirectUri, CancellationToken cancellationToken = default(CancellationToken)) { cancellationToken.ThrowIfCancellationRequested(); ThrowIfDisposed(); client.ThrowIfNull(nameof(client)); postLogoutRedirectUri.ThrowIfNull(nameof(postLogoutRedirectUri)); var cypher = $@" MATCH (client:{IdSrv4Client})-[:{ Neo4jConstants.Relationships.HasPostLogoutRedirectUri }]->(postLogoutRedirectUri:{IdSrv4ClientPostLogoutRedirectUri}) WHERE client.ClientId = $p0 AND postLogoutRedirectUri.PostLogoutRedirectUri = $p1 RETURN postLogoutRedirectUri{{ .* }}"; var result = await Session.RunAsync(cypher, Params.Create( client.ClientId, postLogoutRedirectUri.PostLogoutRedirectUri )); var foundRecord = await result.SingleOrDefaultAsync(r => r.MapTo <Neo4jIdentityServer4ClientPostLogoutRedirectUri>("postLogoutRedirectUri")); return(foundRecord); }