Beispiel #1
0
 private static async Task WaitToContinue(DownlaodSettings downloadSettings)
 {
     while (!downloadSettings._release)
     {
         await Task.Delay(100);
     }
 }
Beispiel #2
0
        /// <summary>
        /// Open a new download settings dialog.
        /// </summary>
        /// <param name="owner"></param>
        /// <param name="data"></param>
        /// <returns></returns>
        public static async Task <DownloadData> OpenDialog(Window owner, DownloadData data)
        {
            //Initialize window
            var temp = new DownlaodSettings()
            {
                Owner              = owner,
                _host              = data.FileHost,
                HostIcon           = data.FileHost.HostIcon,
                HostName           = data.FileHost.HostName,
                DownloadURL        = data.RawURL,
                DownloadFolder     = data.DownloadDestination,
                Filename           = data.FileName,
                AdditionalSettigns = (data.FileHost.CustomSettings == null) ? null : new DefaultSettings()
            };

            //Load file extensions
            var sfe = new List <FileExtensionListItem>();

            if (data.FileHost.SupportedFileExtensions != null)
            {
                foreach (var extension in data.FileHost.SupportedFileExtensions)
                {
                    sfe.Add(new FileExtensionListItem(extension.Extension, extension));
                }
            }

            temp.FileExtensions = sfe; //Apply file extensions
            temp.Show();

            temp.Owner.IsEnabled = false; //Lock main window
            await WaitToContinue(temp);   //Await Submit or cancel click

            temp.Close();
            temp.Owner.IsEnabled = true; //Unlock main window

            return(temp._downloadData);  //return result
        }