Пример #1
0
        internal static IClientSecretIdentity ToDomain(this ClientSecretIdentityModel clientSecretIdentityModel, IConverter securityModelConverter)
        {
            NullGuard.NotNull(clientSecretIdentityModel, nameof(clientSecretIdentityModel))
            .NotNull(securityModelConverter, nameof(securityModelConverter));

            IEnumerable <Claim> claimCollection = securityModelConverter.Convert <IEnumerable <ClientSecretIdentityClaimModel>, IEnumerable <Claim> >(clientSecretIdentityModel.ClientSecretIdentityClaims);

            ClientSecretIdentityClaimModel latestClientSecretIdentityClaimModel = clientSecretIdentityModel.ClientSecretIdentityClaims.OrderByDescending(model => model.ModifiedUtcDateTime).FirstOrDefault();

            IClientSecretIdentity clientSecretIdentity = new ClientSecretIdentityBuilder(clientSecretIdentityModel.FriendlyName)
                                                         .WithIdentifier(clientSecretIdentityModel.ClientSecretIdentityIdentifier)
                                                         .WithClientId(clientSecretIdentityModel.ClientId)
                                                         .WithClientSecret(clientSecretIdentityModel.ClientSecret)
                                                         .AddClaims(claimCollection)
                                                         .Build();

            if (latestClientSecretIdentityClaimModel == null || latestClientSecretIdentityClaimModel.ModifiedUtcDateTime < clientSecretIdentityModel.ModifiedUtcDateTime)
            {
                clientSecretIdentity.AddAuditInformation(clientSecretIdentityModel.CreatedUtcDateTime, clientSecretIdentityModel.CreatedByIdentifier, clientSecretIdentityModel.ModifiedUtcDateTime, clientSecretIdentityModel.ModifiedByIdentifier);
            }
            else
            {
                clientSecretIdentity.AddAuditInformation(clientSecretIdentityModel.CreatedUtcDateTime, clientSecretIdentityModel.CreatedByIdentifier, latestClientSecretIdentityClaimModel.ModifiedUtcDateTime, latestClientSecretIdentityClaimModel.ModifiedByIdentifier);
            }

            return(clientSecretIdentity);
        }
Пример #2
0
        internal static ClientSecretIdentityClaimModel With(this ClientSecretIdentityClaimModel clientSecretIdentityClaimModel, ClientSecretIdentityModel clientSecretIdentity)
        {
            NullGuard.NotNull(clientSecretIdentityClaimModel, nameof(clientSecretIdentityClaimModel))
            .NotNull(clientSecretIdentity, nameof(clientSecretIdentity));

            clientSecretIdentityClaimModel.ClientSecretIdentityIdentifier = clientSecretIdentity.ClientSecretIdentityIdentifier;
            clientSecretIdentityClaimModel.ClientSecretIdentity           = clientSecretIdentity;

            return(clientSecretIdentityClaimModel);
        }
Пример #3
0
        protected override Task <ClientSecretIdentityModel> OnDeleteAsync(ClientSecretIdentityModel clientSecretIdentityModel)
        {
            NullGuard.NotNull(clientSecretIdentityModel, nameof(clientSecretIdentityModel));

            ClientSecretIdentityClaimModel clientSecretIdentityClaimModel = clientSecretIdentityModel.ClientSecretIdentityClaims.FirstOrDefault();

            while (clientSecretIdentityClaimModel != null)
            {
                clientSecretIdentityModel.ClientSecretIdentityClaims.Remove(clientSecretIdentityClaimModel);
                clientSecretIdentityClaimModel = clientSecretIdentityModel.ClientSecretIdentityClaims.FirstOrDefault();
            }

            return(Task.FromResult(clientSecretIdentityModel));
        }