示例#1
0
        /// <inheritdoc />
        public GitItem GetItem(SourceInformation searchInformation)
        {
            searchInformation.AssertIsValid();
            Validators.AssertIsNotNull(_client, "GitHttpClient");

            Logger.Trace("Entering");

            var info = $"{nameof(searchInformation)}: {searchInformation}";

            var result =
                WaitAndRetryPolicy.ExecuteAndCapture(
                    _ => IgnoreExceptionsHelper.DoMethodIgnoringExceptions <GitItem>(
                        new Func <SourceInformation, GitItem>(GetItemWrapper),
                        new[] { typeof(VssServiceException) },
                        searchInformation
                        ),
                    MakeContext(info));

            HandlePolicyResult(result, info);

            var output = result.Result;

            Logger.Trace("Exiting");

            return(output);
        }
示例#2
0
        /// <inheritdoc />
        public string GetItemContent(SourceInformation sourceInformation)
        {
            sourceInformation.AssertIsValid();
            Validators.AssertIsNotNull(_client, "GitHttpClient");

            Logger.Trace("Entering");

            string output = null;

            var info = $"{nameof(sourceInformation)}: {sourceInformation}";

            var result =
                WaitAndRetryPolicy.ExecuteAndCapture(
                    _ => IgnoreExceptionsHelper.DoMethodIgnoringExceptions <Stream>(
                        new Func <SourceInformation, Stream>(GetItemContentWrapper),
                        new[] { typeof(VssServiceException) },
                        sourceInformation
                        ),
                    MakeContext(info));

            HandlePolicyResult(result, info);

            var contentStream = result.Result;

            if (contentStream != null)
            {
                var reader = new StreamReader(contentStream);
                output = reader.ReadToEnd();
            }

            Logger.Trace("Exiting");

            return(output);
        }
示例#3
0
        /// <summary>
        ///     Get a collection of projects.
        /// </summary>
        /// <returns></returns>
        public IEnumerable <TeamProjectReference> GetProjects()
        {
            Logger.Trace("Entering");

            var result = WaitAndRetryPolicy.ExecuteAndCapture(
                _ =>
                ProjectClient.Value.GetProjects().Result.ToList(),
                MakeContext());

            HandlePolicyResult(result);

            var output = result.Result;

            Logger.Trace("Exiting");

            return(output);
        }
示例#4
0
 private static void InitRegistory(ref IPolicyRegistry <string> registry)
 {
     NoOpPolicyClass.NoOpPolicy(ref registry);
     TimeoutPolicyClass.Timeout(ref registry, 10);
     WaitAndRetryPolicy.WaitAndRetry(ref registry);
 }