public interface IAuthHandler
public class AuthHandler : IAuthHandler
public class RetryingAuthHandler : IAuthHandler
private readonly IAuthHandler authHandler;
public RetryingAuthHandler(IAuthHandler authHandler)
this.authHandler = authHandler;
var accessToken = string.Empty;
while(string.IsNullOrEmpty(accessToken)) {
accessToken = authHandler.LogIn();
public static void Main()
var authHandler = new RetryingAuthHandler(new AuthHandler());
Console.Write(authHandler.LogIn());