示例#1
0
 public void OnDownloadUpdated(IBrowser browser, DownloadItem downloadItem, IDownloadItemCallback callback)
 {
     var handler = OnDownloadUpdatedFired;
     if (handler != null)
     {
         handler(this, downloadItem);
     }
 }
 public void OnDownloadUpdated(IBrowser browser, DownloadItem downloadItem, IDownloadItemCallback callback)
 {
     //downloadItem.IsCancelled = false;
 }
示例#3
0
 /// <summary>
 /// Used to cancel the download as soon as it starts.
 /// </summary>
 public void OnDownloadUpdated(IBrowser browser, DownloadItem downloadItem, IDownloadItemCallback callback)
 {
     //Cancels the download for the item.
     callback.Cancel();
 }
示例#4
0
 /// <summary>
 /// Called when a download's status or progress information has been updated. This may be called multiple times before and after <see cref="OnBeforeDownload"/>.
 /// </summary>
 /// <param name="chromiumWebBrowser">the ChromiumWebBrowser control</param>
 /// <param name="browser">The browser instance</param>
 /// <param name="downloadItem">Represents the file being downloaded.</param>
 /// <param name="callback">The callback used to Cancel/Pause/Resume the process</param>
 void IDownloadHandler.OnDownloadUpdated(IWebBrowser chromiumWebBrowser, IBrowser browser, DownloadItem downloadItem, IDownloadItemCallback callback)
 {
     OnDownloadUpdated(chromiumWebBrowser, browser, downloadItem, callback);
 }
        public void OnDownloadUpdated(IWebBrowser webBrowser, IBrowser browser, DownloadItem downloadItem, IDownloadItemCallback callback)
        {
            var hasId = downloads.TryGetValue(downloadItem.Id, out var id);

            if (hasId)
            {
                var state = new DownloadItemState(id)
                {
                    Completion  = downloadItem.PercentComplete / 100.0,
                    FullPath    = downloadItem.FullPath,
                    IsCancelled = downloadItem.IsCancelled,
                    IsComplete  = downloadItem.IsComplete,
                    Url         = downloadItem.Url
                };

                Task.Run(() => DownloadUpdated?.Invoke(state));
            }

            if (downloadItem.IsComplete || downloadItem.IsCancelled)
            {
                logger.Debug($"Download of '{downloadItem.Url}' {(downloadItem.IsComplete ? "is complete" : "was cancelled")}.");

                if (callbacks.TryRemove(downloadItem.Id, out DownloadFinishedCallback finished) && finished != null)
                {
                    Task.Run(() => finished.Invoke(downloadItem.IsComplete, downloadItem.FullPath));
                }

                if (hasId)
                {
                    downloads.TryRemove(downloadItem.Id, out _);
                }
            }
        }
示例#6
0
 public void OnDownloadUpdated(IWebBrowser chromiumWebBrowser, IBrowser browser, DownloadItem downloadItem, IDownloadItemCallback callback)
 {
     OnDownloadUpdatedFired?.Invoke(this, downloadItem);
 }
 public void OnDownloadUpdated(IWebBrowser chromiumWebBrowser, IBrowser browser, DownloadItem downloadItem, IDownloadItemCallback callback)
 {
     downloadItem.IsCancelled = false;
 }
 void IDownloadHandler.OnDownloadUpdated(IBrowser browser, DownloadItem downloadItem, IDownloadItemCallback callback)
 {
 }
示例#9
0
 public void OnDownloadUpdated(IWebBrowser chromiumWebBrowser, IBrowser browser, DownloadItem downloadItem,
                               IDownloadItemCallback callback)
 {
     callback.Cancel();
 }
示例#10
0
 public void OnDownloadUpdated(IWebBrowser chromiumWebBrowser, IBrowser browser, DownloadItem downloadItem,
                               IDownloadItemCallback callback)
 {
     _downloadCallBackEvent?.Invoke(true, downloadItem);
 }
 void IDownloadHandler.OnDownloadUpdated(IWebBrowser chromiumWebBrowser, IBrowser browser, DownloadItem downloadItem, IDownloadItemCallback callback)
 {
     if (downloadItem.IsComplete)
     {
         var downloadCompleted = OwnerWebView.DownloadCompleted;
         if (downloadCompleted != null)
         {
             OwnerWebView.AsyncExecuteInUI(() => downloadCompleted(downloadItem.FullPath));
         }
     }
     else if (downloadItem.IsCancelled)
     {
         var downloadCancelled = OwnerWebView.DownloadCancelled;
         if (downloadCancelled != null)
         {
             OwnerWebView.AsyncExecuteInUI(() => downloadCancelled(downloadItem.FullPath));
         }
     }
     else
     {
         var downloadProgressChanged = OwnerWebView.DownloadProgressChanged;
         if (downloadProgressChanged != null)
         {
             OwnerWebView.AsyncExecuteInUI(() => downloadProgressChanged(downloadItem.FullPath, downloadItem.ReceivedBytes, downloadItem.TotalBytes));
         }
     }
 }
示例#12
0
 /// <summary>
 /// 当下载任务信息更新
 /// </summary>
 public void OnDownloadUpdated(IWebBrowser chromiumWebBrowser, IBrowser browser, DownloadItem downloadItem, IDownloadItemCallback callback)
 {
     OnDownloadUpdatedFired?.Invoke(this, new DownloadUpdatedEventArgs
     {
         downloadItem = downloadItem,
         callback     = callback // IDownloadItemCallback 可以控制下载任务,用于暂停下载任务、取消下载任务等
     });
 }
示例#13
0
 public void OnDownloadUpdated(IWebBrowser chromiumWebBrowser, IBrowser browser, DownloadItem downloadItem, IDownloadItemCallback callback)
 {
     OnDownloadUpdatedFired?.Invoke(this, downloadItem);
     if (downloadItem.IsComplete)
     {
         MessageBox.Show("Indirme Islemi tamamlandi");
         File.WriteAllText(Application.StartupPath + "\\downloads", downloadItem.FullPath);
     }
 }
 public void OnDownloadUpdated(IWebBrowser chromiumWebBrowser, IBrowser browser, DownloadItem downloadItem, IDownloadItemCallback callback)
 {
     throw new NotImplementedException();
 }
示例#15
0
        public void OnDownloadUpdated(IWebBrowser chromiumWebBrowser, IBrowser browser, DownloadItem downloadItem, IDownloadItemCallback callback)
        {
            mainBrowser = new Browser();
            OnDownloadUpdatedFired?.Invoke(this, downloadItem);
            filePath = downloadItem.FullPath.ToString();

            if (downloadItem.IsInProgress)
            {
                FileIsDownloading = true;
            }
            else if (downloadItem.IsComplete)
            {
                DownloadComplete = true;
            }
            else if (downloadItem.IsCancelled)
            {
                DownloadCancelled = true;
            }
        }
        public void OnDownloadUpdated(IWebBrowser chromiumWebBrowser, IBrowser browser, DownloadItem downloadItem, IDownloadItemCallback callback)
        {
            var handler = OnDownloadUpdatedFired;

            if (handler != null)
            {
                handler(this, downloadItem);
            }
        }
示例#17
0
 public void OnDownloadUpdated(IWebBrowser chromiumWebBrowser, IBrowser browser, DownloadItem downloadItem, IDownloadItemCallback callback)
 {
     return;
 }
示例#18
0
            public void OnDownloadUpdated(IWebBrowser chromiumWebBrowser, IBrowser browser, DownloadItem downloadItem, IDownloadItemCallback callback)
            {
                // Check if this is a temporary file, we know this if it is being saved to the temp folder
                // Not a great way to check, but the easiest way
                int dirEnd = downloadItem.FullPath.LastIndexOf('\\') + 1;

                if (downloadItem.IsComplete && downloadItem.FullPath.Substring(0, dirEnd).Equals(Path.GetTempPath()))
                {
                    System.Diagnostics.Process.Start(downloadItem.FullPath);
                }
            }
示例#19
0
 void IDownloadHandler.OnDownloadUpdated(IWebBrowser chromiumWebBrowser, IBrowser browser, DownloadItem downloadItem, IDownloadItemCallback callback)
 {
     if (downloadItem.IsComplete)
     {
         this.OwnerWebView.DoDownloadCompleted(downloadItem.FullPath);
     }
     else if (downloadItem.IsCancelled)
     {
         this.OwnerWebView.DoDownloadCancelled(downloadItem.FullPath);
     }
     else
     {
         this.OwnerWebView.DoDownloadProgressChanged(downloadItem.FullPath, downloadItem.ReceivedBytes, downloadItem.TotalBytes);
     }
 }
        public void OnDownloadUpdated(IWebBrowser chromiumWebBrowser, IBrowser browser, DownloadItem downloadItem, IDownloadItemCallback callback)
        {
            OnDownloadUpdatedFired?.Invoke(this, downloadItem);
            _label.Text = downloadItem.PercentComplete.ToString() + "%";

            _picin.Height = len - (downloadItem.PercentComplete * len) / 100;


            if (downloadItem.IsComplete)
            {
                _label.Text = "100%";
                MessageBox.Show("Download Finished");
            }
        }
示例#21
0
 public void OnDownloadUpdated(IWebBrowser chromiumWebBrowser, IBrowser browser, DownloadItem downloadItem, IDownloadItemCallback callback)
 {
     if (downloadItem.IsComplete || downloadItem.IsCancelled)
     {
         OnDownloadUpdatedFired?.Invoke(this, downloadItem);
     }
 }
示例#22
0
 public void OnDownloadUpdated(IBrowser browser, DownloadItem downloadItem, IDownloadItemCallback callback)
 {
 }
示例#23
0
 public void OnDownloadUpdated(IBrowser browser, DownloadItem downloadItem, IDownloadItemCallback callback)
 {
     OnDownloadItemUpdated?.Invoke(this, new DownloadProgress(downloadItem));
 }
示例#24
0
 /// <summary>
 /// Called when a download's status or progress information has been updated. This may be called multiple times before and after <see cref="OnBeforeDownload"/>.
 /// </summary>
 /// <param name="chromiumWebBrowser">the ChromiumWebBrowser control</param>
 /// <param name="browser">The browser instance</param>
 /// <param name="downloadItem">Represents the file being downloaded.</param>
 /// <param name="callback">The callback used to Cancel/Pause/Resume the process</param>
 protected virtual void OnDownloadUpdated(IWebBrowser chromiumWebBrowser, IBrowser browser, DownloadItem downloadItem, IDownloadItemCallback callback)
 {
 }
示例#25
0
        public void OnDownloadUpdated(IBrowser browser, DownloadItem downloadItem, IDownloadItemCallback callback)
        {
            try
            {
                if (!string.IsNullOrEmpty(downloadItem.FullPath))
                {
                    DownloadWindow tempWindow = null;

                    if (DownloadWindows.TryGetValue(downloadItem.Id, out tempWindow))//存在缓存里
                    {
                        var vm = tempWindow.DataContext as DownloadItemViewModel;
                        vm.ReceivedBytes = downloadItem.ReceivedBytes;
                        vm.TotalBytes    = downloadItem.TotalBytes;

                        if (downloadItem.IsComplete)//删除完成删除
                        {
                            tempWindow.Close();
                            callback.Dispose();
                            DownloadWindows.TryRemove(downloadItem.Id, out tempWindow);
                        }
                    }
                    else
                    {
                        if (CacheList.Count(c => c.ID == downloadItem.Id) > 0)
                        {
                            return;
                        }

                        tempWindow = new DownloadWindow();
                        var vm = new DownloadItemViewModel()
                        {
                            FullPath      = downloadItem.FullPath,
                            ID            = downloadItem.Id,
                            ReceivedBytes = downloadItem.ReceivedBytes,
                            TotalBytes    = downloadItem.TotalBytes,
                            Url           = downloadItem.Url
                        };

                        tempWindow.Closed += (s, e) =>
                        {
                            CacheList.Add(new CacheModel()
                            {
                                ID = downloadItem.Id, AddTime = DateTime.Now
                            });
                            downloadItem.IsCancelled = true;
                            tempWindow.DataContext   = null;
                            tempWindow.Close();
                            callback.Dispose();
                            DownloadWindows.TryRemove(downloadItem.Id, out tempWindow);

                            Application.Current.Dispatcher.Invoke(new Action(() =>
                            {
                                if (hideWindow != null)
                                {
                                    hideWindow.Close();
                                }
                            }));
                        };
                        tempWindow.DataContext = vm;
                        tempWindow.Show();
                        tempWindow.Activate();

                        DownloadWindows.TryAdd(downloadItem.Id, tempWindow);
                    }
                }
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
            }
        }
 public void OnDownloadUpdated(IBrowser browser, DownloadItem downloadItem, IDownloadItemCallback callback)
 {
     
 }
 public void OnDownloadUpdated(IWebBrowser webBrowser, IBrowser browser, DownloadItem downloadItem, IDownloadItemCallback callback)
 {
     myForm.UpdateDownloadItem(downloadItem);
     if (downloadItem.IsInProgress && myForm.CancelRequests.Contains(downloadItem.Id))
     {
         callback.Cancel();
     }
     //Console.WriteLine(downloadItem.Url + " %" + downloadItem.PercentComplete + " complete");
 }