Esempio n. 1
0
        public override IPackageRepository CreateRepository(string packageSource)
        {
            var repository       = base.CreateRepository(packageSource);
            var httpClientEvents = repository as IHttpClientEvents;

            if (httpClientEvents != null)
            {
                httpClientEvents.SendingRequest += (sender, args) =>
                {
                    if (sender != httpClientEvents)
                    {
                        return;
                    }

                    if (_console.Verbosity == Verbosity.Detailed)
                    {
                        _console.WriteLine(
                            System.ConsoleColor.Green,
                            "{0} {1}", args.Request.Method, args.Request.RequestUri);
                    }
                    string userAgent = HttpUtility.CreateUserAgentString(CommandLineConstants.UserAgent);
                    HttpUtility.SetUserAgent(args.Request, userAgent);
                };
            }

            var repositoryBase = repository as PackageRepositoryBase;

            if (repositoryBase != null)
            {
                repositoryBase.Logger = _console;
            }

            return(repository);
        }
Esempio n. 2
0
        private void DownloadData(Uri uri)
        {
            _client = new WebClient();
            string userAgent = HttpUtility.CreateUserAgentString(PackageExplorerViewModel.Constants.UserAgentClient);

            _client.Headers[HttpRequestHeader.UserAgent] = userAgent;
            // Set the WebClient proxy
            // Maybe we could refactor this code to use the HttpClient so that
            // it can utilize the already existing implementation of getting the proxy
            _client.Proxy = _proxyService.GetProxy(uri);
            _client.DownloadDataCompleted += (sender, e) => {
                if (!e.Cancelled)
                {
                    if (e.Error != null)
                    {
                        OnError(e.Error);
                    }
                    else
                    {
                        string tempFilePath = SaveResultToTempFile(e.Result);
                        DownloadedPackage = new ZipPackage(tempFilePath);
                        OnCompleted();
                    }
                }
            };

            _client.DownloadProgressChanged += (sender, e) => {
                OnProgress(e.ProgressPercentage, e.BytesReceived, e.TotalBytesToReceive);
            };

            _client.DownloadDataAsync(uri);
        }
Esempio n. 3
0
        /// <summary>
        /// Initializes a new instance of the <see cref="T:NuGetPackageManager"/> class.
        /// </summary>
        public NuGetPackageManager(Uri sourceUrl, string siteRoot, IWebMatrixHost host)
        {
            _webProjectManager = new WebProjectManager(sourceUrl.AbsoluteUri, siteRoot, host);

            // set the user agent to reflect the webmatrix assembly version and build number
            var extensibilityAssembly = typeof(IWebMatrixHost).Assembly;
            var assemblyVersion       = extensibilityAssembly.GetName().Version;
            var buildNumber           = FileVersionInfo.GetVersionInfo(extensibilityAssembly.Location).FileBuildPart;
            var clientVersion         = String.Format(UserAgentClientFormat, assemblyVersion, buildNumber);

            this.UserAgent = HttpUtility.CreateUserAgentString(clientVersion);

            var sourceRepository = _webProjectManager.SourceRepository as DataServicePackageRepository;

            if (sourceRepository == null)
            {
                // right now we expect that we're always using DataServicePackageRepository to hit a remote feed
                Debug.Assert(sourceUrl.IsFile, "SourceRepository is not a DataServicePackageRepository");
            }
            else
            {
                // initialize settings that filter the list of packages specifically for WebMatrix
                sourceRepository.SendingRequest += new EventHandler <WebRequestEventArgs>(SourceRepository_SendingRequest);
            }
        }
Esempio n. 4
0
        private HttpWebRequest CreateRequest(Uri url, string method, string contentType)
        {
            var request = (HttpWebRequest)WebRequest.Create(url);

            request.ContentType = contentType;
            request.Method      = method;
            request.UserAgent   = HttpUtility.CreateUserAgentString(_UserAgentClient);
            return(request);
        }
Esempio n. 5
0
        void CreateUserAgent()
        {
            Client        = GetClient();
            Host          = GetHost();
            HttpUserAgent = HttpUtility.CreateUserAgentString(Client, Host);

            var builder = new UserAgentStringBuilder(Client).WithVisualStudioSKU(Host);

            UserAgent.SetUserAgentString(builder);
        }
            private static IPackageRepository CreateRepository(IPackageRepositoryFactory repositoryFactory, PackageSource packageSource)
            {
                IPackageRepository packageRepository = repositoryFactory.CreateRepository(packageSource);
                var httpClientEvents = packageRepository as IHttpClientEvents;

                if (httpClientEvents != null)
                {
                    httpClientEvents.SendingRequest += (sender, args) => {
                        string userAgent = HttpUtility.CreateUserAgentString(UserAgentClient);
                        HttpUtility.SetUserAgent(args.Request, userAgent);
                    };
                }

                return(packageRepository);
            }
        public override IPackageRepository CreateRepository(string packageSource)
        {
            var repository       = base.CreateRepository(packageSource);
            var httpClientEvents = repository as IHttpClientEvents;

            if (httpClientEvents != null)
            {
                httpClientEvents.SendingRequest += (sender, args) =>
                {
                    string userAgent = HttpUtility.CreateUserAgentString(UserAgentClient);
                    HttpUtility.SetUserAgent(args.Request, userAgent);
                };
            }

            return(repository);
        }
Esempio n. 8
0
        private async Task <string> DownloadData(Uri url, Action <int, string> reportProgressAction, CancellationToken cancelToken)
        {
            var handler = new HttpClientHandler
            {
                Credentials = CredentialManager.Get(url)
            };
            var httpClient = new HttpClient(handler);

            httpClient.DefaultRequestHeaders.UserAgent.ParseAdd(HttpUtility.CreateUserAgentString(Constants.UserAgentClient));

            using (var response = await httpClient.GetAsync(url, HttpCompletionOption.ResponseHeadersRead, cancelToken))
            {
                using (var responseStream = await response.Content.ReadAsStreamAsync())
                {
                    const int chunkSize  = 4 * 1024;
                    var       totalBytes = (int)(response.Content.Headers.ContentLength ?? 0);
                    var       buffer     = new byte[chunkSize];
                    var       readSoFar  = 0;

                    // while reading data from network, we write it to a temp file
                    var tempFilePath = Path.GetTempFileName();
                    using (var fileStream = File.OpenWrite(tempFilePath))
                    {
                        while (readSoFar < totalBytes)
                        {
                            var bytesRead = await responseStream.ReadAsync(buffer, 0, Math.Min(chunkSize, totalBytes - readSoFar), cancelToken);

                            readSoFar += bytesRead;

                            cancelToken.ThrowIfCancellationRequested();

                            fileStream.Write(buffer, 0, bytesRead);
                            OnProgress(readSoFar, totalBytes, reportProgressAction);
                        }
                    }

                    // read all bytes successfully
                    if (readSoFar >= totalBytes)
                    {
                        return(tempFilePath);
                    }
                }
            }
            return(null);
        }
Esempio n. 9
0
 void CreateUserAgent()
 {
     Client    = BrandingService.ApplicationName;
     Host      = GetHost();
     UserAgent = HttpUtility.CreateUserAgentString(Client, Host);
 }
Esempio n. 10
0
 void CreateUserAgent()
 {
     Client    = "SharpDevelop";
     Host      = GetHost();
     UserAgent = HttpUtility.CreateUserAgentString(Client, Host);
 }