BuildIt.Bot.Client.DirectLinkApi.Services.DirectLineApiService.EnsureTokenIsValid C# (CSharp) Метод

EnsureTokenIsValid() приватный Метод

private EnsureTokenIsValid ( ) : Task
Результат Task
        private async Task<bool> EnsureTokenIsValid()
        {
            var res = false;

            if (masterClient == null ||
                (string.IsNullOrWhiteSpace(conversationToken) || string.IsNullOrWhiteSpace(ConversationId))
                || DateTime.UtcNow > convoTokenExpirationDate || ConversationClient == null) return res;

            //MK renew only when getting close to end date (~5 min)
            if (DateTime.UtcNow.AddMinutes(-5) > convoTokenExpirationDate)
            {
                var refreshConvoTokenResponse = await ConversationClient.Tokens.RenewTokenWithOperationResponseAsync(ConversationId);
                if (!string.IsNullOrWhiteSpace(refreshConvoTokenResponse?.Body))
                {
                    conversationToken = refreshConvoTokenResponse.Body;
                    convoTokenExpirationDate = DateTimeOffset.UtcNow.AddMinutes(Utilities.Constants.ConvoTokenExpirationTimeInMinutes);
                    ConversationClient = new DirectLinkApiClient(new TokenCredentials(conversationToken, TenantId), new LoggingHttpHandler());
                    res = true;
                }
                else
                {
                    //TODO handle refresh of new conversation token failure
                }
            }
            else
            {
                res = true;
            }

            return res;
        }
    }