using System; using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; using Microsoft.Kiota.Abstractions.Authentication; using Wino.Core.Domain.Entities.Shared; using Wino.Core.Domain.Interfaces; namespace Wino.Core.Http; public class MicrosoftTokenProvider : IAccessTokenProvider { private readonly MailAccount _account; private readonly IAuthenticator _authenticator; public MicrosoftTokenProvider(MailAccount account, IAuthenticator authenticator) { _account = account; _authenticator = authenticator; } public AllowedHostsValidator AllowedHostsValidator { get; } public async Task GetAuthorizationTokenAsync(Uri uri, Dictionary additionalAuthenticationContext = null, CancellationToken cancellationToken = default) { var tokenInfo = await _authenticator.GetTokenInformationAsync(_account); return tokenInfo.AccessToken; } }