private static async Task WaitToContinue(DownlaodSettings downloadSettings) { while (!downloadSettings._release) { await Task.Delay(100); } }
/// <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 }