public static Exception Map(WebDavClientException exception)
        {
            if (exception.StatusCode == HttpTooManyRequests)
            {
                DateTime?retryAfter = null;

                IEnumerable <string> values;
                if (exception.Headers.TryGetValues("Retry-After", out values))
                {
                    if (values.Any())
                    {
                        int retryAfterSeconds;
                        if (int.TryParse(values.First(), out retryAfterSeconds))
                        {
                            retryAfter = DateTime.UtcNow.AddSeconds(retryAfterSeconds);
                        }
                    }
                }

                return(new WebRepositoryOverloadException(retryAfter, exception));
            }

            return(exception);
        }