public async Task <string> CreateAsync(ApplicationParam model) { if (model == null) { throw new ArgumentNullException(nameof(model)); } var entity = await _manager.FindByClientIdAsync(model.ClientId); if (entity == null) { // create new entity var newEntity = new OpenIddictEntityFrameworkCoreApplication { ClientId = model.ClientId, DisplayName = model.DisplayName, Type = model.Type }; HandleCustomProperties(model, newEntity); await _manager.CreateAsync(newEntity, model.ClientSecret); return(newEntity.Id); } // update existing entity model.Id = entity.Id; await UpdateAsync(model); return(entity.Id); }
private ApplicationInfo ToInfo(OpenIddictEntityFrameworkCoreApplication entity) { var info = SimpleMapper .From <OpenIddictEntityFrameworkCoreApplication, ApplicationInfo>(entity); info.RequireConsent = entity.ConsentType == ConsentTypes.Explicit; info.Permissions = entity.Permissions != null ? JsonSerializer.Deserialize <List <string> >(entity.Permissions) : new List <string>(); info.RedirectUris = entity.RedirectUris != null ? JsonSerializer.Deserialize <List <string> >(entity.RedirectUris) : new List <string>(); info.PostLogoutRedirectUris = entity.PostLogoutRedirectUris != null ? JsonSerializer.Deserialize <List <string> >(entity.PostLogoutRedirectUris) : new List <string>(); info.RequirePkce = entity.Requirements != null ? JsonSerializer.Deserialize <List <string> >(entity.Requirements) .Contains(Requirements.Features.ProofKeyForCodeExchange) : false; return(info); }
private static void HandleCustomProperties( ApplicationParam model, OpenIddictEntityFrameworkCoreApplication entity ) { entity.ConsentType = model.RequireConsent ? ConsentTypes.Explicit : ConsentTypes.Implicit; entity.Permissions = JsonSerializer.Serialize(model.Permissions); entity.RedirectUris = JsonSerializer.Serialize(model.RedirectUris); entity.PostLogoutRedirectUris = JsonSerializer.Serialize(model.PostLogoutRedirectUris); entity.Requirements = model.RequirePkce ? JsonSerializer.Serialize(new List <string> { Requirements.Features.ProofKeyForCodeExchange }) : null; }
private static ApplicationInfo ToListInfo(OpenIddictEntityFrameworkCoreApplication entity) => SimpleMapper.From <OpenIddictEntityFrameworkCoreApplication, ApplicationInfo>(entity);
private ApplicationInfo ToListInfo(OpenIddictEntityFrameworkCoreApplication entity) { return(SimpleMapper.From <OpenIddictEntityFrameworkCoreApplication, ApplicationInfo>(entity)); }