public virtual ValueTask SetCreationDateAsync(OpenIddictAuthorizationModel authorization, DateTimeOffset?date, CancellationToken cancellationToken)
    {
        Check.NotNull(authorization, nameof(authorization));

        authorization.CreationDate = date?.UtcDateTime;

        return(default);
Exemplo n.º 2
0
    public static OpenIddictAuthorizationModel ToModel(this OpenIddictAuthorization entity)
    {
        if (entity == null)
        {
            return(null);
        }

        var model = new OpenIddictAuthorizationModel
        {
            Id            = entity.Id,
            ApplicationId = entity.ApplicationId,
            CreationDate  = entity.CreationDate,
            Properties    = entity.Properties,
            Scopes        = entity.Scopes,
            Status        = entity.Status,
            Subject       = entity.Subject,
            Type          = entity.Type
        };

        foreach (var extraProperty in entity.ExtraProperties)
        {
            model.ExtraProperties.Add(extraProperty.Key, extraProperty.Value);
        }

        return(model);
    }
    public virtual ValueTask <ImmutableArray <string> > GetScopesAsync(OpenIddictAuthorizationModel authorization, CancellationToken cancellationToken)
    {
        Check.NotNull(authorization, nameof(authorization));

        if (string.IsNullOrEmpty(authorization.Scopes))
        {
            return(new ValueTask <ImmutableArray <string> >(ImmutableArray.Create <string>()));
        }

        using (var document = JsonDocument.Parse(authorization.Scopes))
        {
            var builder = ImmutableArray.CreateBuilder <string>(document.RootElement.GetArrayLength());

            foreach (var element in document.RootElement.EnumerateArray())
            {
                var value = element.GetString();
                if (string.IsNullOrEmpty(value))
                {
                    continue;
                }

                builder.Add(value);
            }

            return(new ValueTask <ImmutableArray <string> >(builder.ToImmutable()));
        }
    }
    public virtual async ValueTask CreateAsync(OpenIddictAuthorizationModel authorization, CancellationToken cancellationToken)
    {
        Check.NotNull(authorization, nameof(authorization));

        await Repository.InsertAsync(authorization.ToEntity(), autoSave : true, cancellationToken : cancellationToken);

        authorization = (await Repository.FindAsync(authorization.Id, cancellationToken: cancellationToken)).ToModel();
    }
    public virtual ValueTask <DateTimeOffset?> GetCreationDateAsync(OpenIddictAuthorizationModel authorization, CancellationToken cancellationToken)
    {
        Check.NotNull(authorization, nameof(authorization));

        return(authorization.CreationDate is null
            ? new ValueTask <DateTimeOffset?>(result: null)
            : new ValueTask <DateTimeOffset?>(DateTime.SpecifyKind(authorization.CreationDate.Value, DateTimeKind.Utc)));
    }
    public virtual ValueTask <string> GetApplicationIdAsync(OpenIddictAuthorizationModel authorization, CancellationToken cancellationToken)
    {
        Check.NotNull(authorization, nameof(authorization));

        return(new ValueTask <string>(authorization.ApplicationId.HasValue
            ? ConvertIdentifierToString(authorization.ApplicationId.Value)
            : null));
    }
    public virtual async ValueTask DeleteAsync(OpenIddictAuthorizationModel authorization, CancellationToken cancellationToken)
    {
        Check.NotNull(authorization, nameof(authorization));

        using (var uow = UnitOfWorkManager.Begin(requiresNew: true, isTransactional: true, isolationLevel: IsolationLevel.RepeatableRead))
        {
            await TokenRepository.DeleteManyByAuthorizationIdAsync(authorization.Id, cancellationToken : cancellationToken);

            await Repository.DeleteAsync(authorization.Id, cancellationToken : cancellationToken);

            await uow.CompleteAsync(cancellationToken);
        }
    }
    public virtual async ValueTask SetApplicationIdAsync(OpenIddictAuthorizationModel authorization, string identifier, CancellationToken cancellationToken)
    {
        Check.NotNull(authorization, nameof(authorization));

        if (!string.IsNullOrEmpty(identifier))
        {
            var application = await ApplicationRepository.GetAsync(ConvertIdentifierFromString(identifier), cancellationToken : cancellationToken);

            authorization.ApplicationId = application.Id;
        }
        else
        {
            authorization.ApplicationId = null;
        }
    }
Exemplo n.º 9
0
    public static OpenIddictAuthorization ToEntity(this OpenIddictAuthorizationModel model, OpenIddictAuthorization entity)
    {
        Check.NotNull(model, nameof(model));
        Check.NotNull(entity, nameof(entity));

        entity.ApplicationId = model.ApplicationId;
        entity.CreationDate  = model.CreationDate;
        entity.Properties    = model.Properties;
        entity.Scopes        = model.Scopes;
        entity.Status        = model.Status;
        entity.Subject       = model.Subject;
        entity.Type          = model.Type;

        foreach (var extraProperty in model.ExtraProperties)
        {
            entity.ExtraProperties.Remove(extraProperty.Key);
            entity.ExtraProperties.Add(extraProperty.Key, extraProperty.Value);
        }

        return(entity);
    }
Exemplo n.º 10
0
    public static OpenIddictAuthorization ToEntity(this OpenIddictAuthorizationModel model)
    {
        Check.NotNull(model, nameof(model));

        var entity = new OpenIddictAuthorization(model.Id)
        {
            ApplicationId = model.ApplicationId,
            CreationDate  = model.CreationDate,
            Properties    = model.Properties,
            Scopes        = model.Scopes,
            Status        = model.Status,
            Subject       = model.Subject,
            Type          = model.Type
        };

        foreach (var extraProperty in model.ExtraProperties)
        {
            entity.ExtraProperties.Add(extraProperty.Key, extraProperty.Value);
        }

        return(entity);
    }
    public virtual ValueTask <string> GetTypeAsync(OpenIddictAuthorizationModel authorization, CancellationToken cancellationToken)
    {
        Check.NotNull(authorization, nameof(authorization));

        return(new ValueTask <string>(authorization.Type));
    }
    public virtual ValueTask <ImmutableDictionary <string, JsonElement> > GetPropertiesAsync(OpenIddictAuthorizationModel authorization, CancellationToken cancellationToken)
    {
        Check.NotNull(authorization, nameof(authorization));

        if (string.IsNullOrEmpty(authorization.Properties))
        {
            return(new ValueTask <ImmutableDictionary <string, JsonElement> >(ImmutableDictionary.Create <string, JsonElement>()));
        }

        using (var document = JsonDocument.Parse(authorization.Properties))
        {
            var builder = ImmutableDictionary.CreateBuilder <string, JsonElement>();

            foreach (var property in document.RootElement.EnumerateObject())
            {
                builder[property.Name] = property.Value.Clone();
            }

            return(new ValueTask <ImmutableDictionary <string, JsonElement> >(builder.ToImmutable()));
        }
    }