Реализация интерфейса IPersistedGrantStore .Net 5.0 (IdentityServer4)

Всем привет. Я пытаюсь сохранить модифицировать свою программу и сохранять токен не в памяти, а в БД. Для этого я решил реализовать интерфейс IPersistedGrantStore. Я нашел старую реализацию этого интерфейса через интерфейс IPersistedGrantService(https://stackoverflow.com/a/48287103/13032771). Однако эта реализация для .Net Core 2.0. Я в свою очередь пытаюсь реализовать для .Net 5.0. Проблема в том, что интерфейс IPersistedGrantService был изменён и сейчас когда я пытаюсь реализовать методы StoreAsync, GetAsync, GetAllAsync я сталкиваюсь с проблемой, что тут нет метода Get

var persistedGrant = this.persistedGrantService.Get(key);

Есть метод GetAllGrantsAsync, но он возвращает IEnumerable(Grant), а это уже не конвертируется в модель (PersistedGrant)

var persistedGrants = this.persistedGrantService.GetAllGrantsAsync(filter.SubjectId);

Grant

public class Grant
    {
        public Grant();

        public string SubjectId { get; set; }

        public string ClientId { get; set; }

        public string Description { get; set; }

        public IEnumerable<string> Scopes { get; set; }

        public DateTime CreationTime { get; set; }

        public DateTime? Expiration { get; set; }
    }

PersistedGrant

public PersistedGrant();

        public string Key { get; set; }

        public string Type { get; set; }

        public string SubjectId { get; set; }

        public string SessionId { get; set; }

        public string ClientId { get; set; }

        public string Description { get; set; }

        public DateTime CreationTime { get; set; }

        public DateTime? Expiration { get; set; }

        public DateTime? ConsumedTime { get; set; }

        public string Data { get; set; }

My Code

public async Task<IEnumerable<PersistedGrant>> GetAllAsync(PersistedGrantFilter filter) 
        {
            var persistedGrants = this.persistedGrantService.GetAllGrantsAsync(filter.SubjectId);//.InList();

            var model = MapPersistedEntityToPersistedGrant(persistedGrants); // here problem
                        //MapPersistedEntityToPersistedGrants(persistedGrants);//persistedGrants.Select(x=> MapPersistedGrant(x.));

            var countedPersistedGrants = persistedGrants.Count;

            logger.LogDebug($"{countedPersistedGrants} persisted grants found for {filter.SubjectId}", persistedGrants.Count, filter.SubjectId);

            return Task.FromResult(model);
        }

Ответы (0 шт):