Mk0.Software.ImageSorter/Mk0.Software.ImageSorter/DownloadHandler.cs
2024-08-16 22:06:32 +02:00

51 lines
1.6 KiB
C#

using System;
using System.IO;
using CefSharp;
namespace Mk0.Software.ImageSorter
{
class DownloadHandler :IDownloadHandler
{
public event EventHandler<DownloadItem> OnBeforeDownloadFired;
public event EventHandler<DownloadItem> OnDownloadUpdatedFired;
public bool CanDownload(IWebBrowser chromiumWebBrowser, IBrowser browser, string url, string requestMethod)
{
return true;
}
public void OnBeforeDownload(IWebBrowser chromiumWebBrowser, IBrowser browser, DownloadItem downloadItem, IBeforeDownloadCallback callback)
{
}
public void OnDownloadUpdated(IWebBrowser chromiumWebBrowser, IBrowser browser, DownloadItem downloadItem, IDownloadItemCallback callback)
{
OnDownloadUpdatedFired?.Invoke(this, downloadItem);
}
bool IDownloadHandler.OnBeforeDownload(IWebBrowser chromiumWebBrowser, IBrowser browser, DownloadItem downloadItem, IBeforeDownloadCallback callback)
{
OnBeforeDownloadFired?.Invoke(this, downloadItem);
if (!callback.IsDisposed)
{
using (callback)
{
string DownloadsDirectoryPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "inpaint-tmp");
callback.Continue(
Path.Combine(
DownloadsDirectoryPath,
downloadItem.SuggestedFileName
),
showDialog: false
);
}
}
return true;
}
}
}