public Task SaveAccessTokenAsync(AccessToken token, CancellationToken cancellationToken) { var accessTokens = GetAccessTokens(); AccessTokenDoc existing = null; if (token.Id != 0) { existing = accessTokens.FirstOrDefault(x => x.AccessTokenRowId == token.Id); } if (existing != null) { existing.ExpirationDate = token.ExpirationDate; return(Task.CompletedTask); } var newAccessTokenRowId = accessTokens.Count == 0 ? 1 : accessTokens.Max(t => t.AccessTokenRowId) + 1; accessTokens.Insert(new AccessTokenDoc { AccessTokenRowId = newAccessTokenRowId, Value = token.Value, UserId = token.UserId, ContentId = token.ContentId == 0 ? (int?)null : token.ContentId, Feature = token.Feature, CreationDate = token.CreationDate, ExpirationDate = token.ExpirationDate }); token.Id = newAccessTokenRowId; return(Task.CompletedTask); }
private static AccessToken CreateAccessTokenFromDoc(AccessTokenDoc doc) { return(new AccessToken { Id = doc.AccessTokenRowId, Value = doc.Value, UserId = doc.UserId, ContentId = doc.ContentId ?? 0, Feature = doc.Feature, CreationDate = doc.CreationDate, ExpirationDate = doc.ExpirationDate }); }