/// <summary>
        /// The ExecutePostTaskAsync.
        /// </summary>
        /// <typeparam name="T">.</typeparam>
        /// <param name="request">The request<see cref="IRestRequest"/>.</param>
        /// <param name="token">The token<see cref="CancellationToken"/>.</param>
        /// <returns>The <see cref="Task{IRestResponse{T}}"/>.</returns>
        public override async Task <IRestResponse <T> > ExecutePostTaskAsync <T>(IRestRequest request, CancellationToken token)
        {
            InjectAccessToken(request);
            IRestResponse <T> response = await DecoratedClient.ExecutePostTaskAsync <T>(request, token);

            if (response.StatusCode == HttpStatusCode.Unauthorized)
            {
                RefreshAccessToken();
                InjectAccessToken(request);
                response = await DecoratedClient.ExecutePostTaskAsync <T>(request, token);
            }

            return(response);
        }
        /// <summary>
        /// The ExecutePostTaskAsync.
        /// </summary>
        /// <param name="request">The request<see cref="IRestRequest"/>.</param>
        /// <returns>The <see cref="Task{IRestResponse}"/>.</returns>
        public override async Task <IRestResponse> ExecutePostTaskAsync(IRestRequest request)
        {
            InjectAccessToken(request);
            IRestResponse response = await DecoratedClient.ExecutePostTaskAsync(request);

            if (response.StatusCode == HttpStatusCode.Unauthorized)
            {
                RefreshAccessToken();
                InjectAccessToken(request);
                response = await DecoratedClient.ExecutePostTaskAsync(request);
            }

            return(response);
        }