예제 #1
0
        public async Task CreateIdentityResourceAsync(OspIdentityResource identityResource)
        {
            ArgumentValidation.Validate(nameof(identityResource), identityResource);

            using (var session = await _repository.StartSessionAsync())
            {
                session.StartTransaction();

                await _identityResourceCollection.InsertAsync(session, identityResource);

                await session.CommitTransactionAsync();
            }
        }
예제 #2
0
        public async Task <OspIdentityResource> TryCreateIdentityResourceAsync(IdentityResource identityResource)
        {
            var res = await GetIdentityResourceByNameAsync(identityResource.Name);

            if (res == null)
            {
                res = new OspIdentityResource
                {
                    Description             = identityResource.Description,
                    Name                    = identityResource.Name,
                    Enabled                 = identityResource.Enabled,
                    DisplayName             = identityResource.DisplayName,
                    Emphasize               = identityResource.Emphasize,
                    Required                = identityResource.Required,
                    ShowInDiscoveryDocument = identityResource.ShowInDiscoveryDocument,
                    Properties              = new Dictionary <string, string>(identityResource.Properties),
                    UserClaims              = new List <string>(identityResource.UserClaims)
                };

                await CreateIdentityResourceAsync(res);
            }

            return(res);
        }