/// <summary> /// Creates new instance of <see cref="AbstractRefreshClient{TClient}"/> /// </summary> /// <param name="clientProvider">Provider for a refreshable instance of the client</param> /// <param name="refreshPolicy">Policy for actions to take on request failure</param> public AbstractRefreshClient(IClientMaintainer <TClient> clientProvider, RefreshPolicy refreshPolicy) { Guard.ArgumentIsNotNull(nameof(clientProvider), clientProvider); Guard.ArgumentIsNotNull(nameof(refreshPolicy), refreshPolicy); ClientProvider = clientProvider; RefreshHandler = refreshPolicy; }
public CloudTableRefreshClient(IClientMaintainer <CloudTableClient> clientProvider) : base( clientProvider, RefreshPolicy.HandleException <StorageException>( x => x.RequestInformation?.HttpStatusCode == (int)HttpStatusCode.Forbidden, clientProvider.RefreshClient)) { }
/// <summary> /// Initializes a new instance of <see cref="DocumentRefreshClient"/> /// This will refersh on HttpStatusCode 401(Unauthorized) /// </summary> /// <param name="clientProvider"></param> public DocumentRefreshClient(IClientMaintainer <DocumentClient> clientProvider) : base(clientProvider, RefreshPolicy.HandleException <DocumentClientException>( x => x.StatusCode == HttpStatusCode.Unauthorized, clientProvider.RefreshClient)) { }