async void NewVersionFound(string newVersion) { YesNo needsUpdate = YesNo.No; var newVersionFoundDialog = new NewVersionFoundDialog(newVersion); await parentView.dialogHostMain.ShowDialog(newVersionFoundDialog, null, (object s, DialogClosingEventArgs args) => { needsUpdate = (YesNo)args.Parameter; }); if (needsUpdate == YesNo.No) { return; } // Download and decompress bool result = false; var processingDialog = new ProcessingDialog(Properties.Resources.MsgBox_Downloading_Title, Properties.Resources.MsgBox_Downloading_Message); await parentView.dialogHostMain.ShowDialog(processingDialog, async (object s, DialogOpenedEventArgs args) => { result = await vm.PrepareForUpdate(); args.Session.Close(false); }); if (result) { parentView.Close(); } }
async void CheckForUpdate_Click(object sender, RoutedEventArgs e) { string newVersion = null; var processingDialog = new ProcessingDialog(Properties.Resources.MsgBox_CheckForUpdates_Title, Properties.Resources.MsgBox_CheckForUpdates_Message); await parentView.dialogHostMain.ShowDialog(processingDialog, async (object s, DialogOpenedEventArgs args) => { newVersion = await vm.CheckForUpdate(); args.Session.Close(false); }); if (newVersion == null) { var okdialog = new OneButtonDialog(Properties.Resources.MsgBox_NotFound_Title, Properties.Resources.MsgBox_NotFound_Message); await parentView.dialogHostMain.ShowDialog(okdialog); return; } NewVersionFound(newVersion); }
private void button_import_file_Click(object sender, EventArgs e) { if (importFileDialog.ShowDialog() == DialogResult.OK) { button_import_file.Enabled = false; var files = importFileDialog.FileNames; var processing = new ProcessingDialog(0, files.Length); new Thread(new ThreadStart(() => { var failed = ""; foreach (string file in files) { var key = Path.GetFileNameWithoutExtension(file); if (listView1.Items.ContainsKey(key) && MessageBox.Show("Audio name \"" + Path.GetFileNameWithoutExtension(file) + "\" already exists,continue and override it?", "Confirm", MessageBoxButtons.YesNo, MessageBoxIcon.Question) != DialogResult.Yes) { continue; } listView1.Items.RemoveByKey(key); File.Delete(getGameConfigPath(file) + ".original"); if (convertNewMedia(file)) { listView1.Items.Add(key, key, 0).SubItems.AddRange(new string[] { "", "100", listView1.Items.Count.ToString(), "", "" }); } else { failed += "\n" + file; } processing.update(); } processing.update(); saveTracks(); button_import_file.Enabled = true; MessageBox.Show("Processed " + files.Length + " file(s)." + (failed == "" ? "" : "\n\nFollowing file(s) convert failed:" + failed), "Done", MessageBoxButtons.OK, MessageBoxIcon.Information); })).Start(); processing.ShowDialog(); } }
public void Run() { ProcessingDialog dlg = null; Action verify = () => { foreach (ITableChecker checker in m_checkers) { dlg.Message = $"Vérification de la table {AppContext.TableManager.GetTable(checker.TableID).Name}"; checker.Check(); checker.Dispose(); } }; Action <Task> onErr = t => { dlg.ShowError(t.Exception.InnerException.Message); //Dispose(); dlg.Close(); }; Action onSuccess = () => { //Dispose(); dlg.Close(); }; using (dlg = new ProcessingDialog()) { var task = new Task(verify); task.OnError(onErr); task.OnSuccess(onSuccess); task.Start(); dlg.ShowDialog(); } }
private async void BulkImportButton_OnClick(object sender, RoutedEventArgs e) { var fd = new OpenFileDialog(); fd.Multiselect = false; fd.Filter = "CSV Files (*.csv)|*.csv|All Files (*.*)|*.*"; var showDialog = fd.ShowDialog(); var res = showDialog != null && (bool)showDialog; if (!res || string.IsNullOrEmpty(fd.FileName) || !File.Exists(fd.FileName)) { return; } string[] secrets; try { secrets = File.ReadAllText(fd.FileName).Split(','); } catch (Exception) { var nd = new NoticeDialog("Bulk Account Import", "Error: CSV file could not be parsed.\r\nPlease correct the file and try again."); nd.ShowDialog(); return; } using (var avm = new AuthViewModel { ActionDescription = "Bulk Import Accounts " }) { var rmpw = new AuthRequestDialog(avm); rmpw.ShowDialog(); if (!avm.Accepted) { return; } if (rmpw.DialogResult == null || rmpw.DialogResult == false || string.IsNullOrEmpty(avm.Password)) { return; } var i = 0; var ii = 1; var pd = new ProcessingDialog("Importing Accounts", "Please wait while your accounts are imported. This may take some time depending on the number of accounts."); pd.Show(); foreach (var sec in secrets) { ii++; pd.ProgressTextBlock.Text = ii + " of " + secrets.Length; var act = await Globals.API.Accounts_Open(sec); if (!act.success) { continue; } var hasrecord = (from a in Globals.AppViewModel.AccountsViewModel.Accounts where a.Address == act.account.address select a).Any(); if (hasrecord) { continue; } var ssece = AppHelpers.EncryptString(sec, avm.Password); var bal = LiskAPI.LSKLongToDecimal(act.account.balance); var ni = new Account { Address = act.account.address, PublicKey = act.account.publicKey, FriendlyName = act.account.address, SecretHash = ssece, Balance = bal, LastUpdate = DateTime.UtcNow }; try { await AccountsViewModel.AddAccountAsync(ni); i++; } catch (Exception crap) { Console.WriteLine("Error saving imported account " + act.account.address + " | " + crap.Message); } } pd.Hide(); var nd = new NoticeDialog("Bulk Account Import", "Bulk account import complete.\r\n" + i + " of " + secrets.Length + " accounts imported."); nd.ShowDialog(); NavigationCommands.BrowseBack.Execute(null, null); } }
bool isSkip = true; //接ProcessingDialog 回傳值 略過 private void Button_AutoImport_Click(object sender, RoutedEventArgs e) { Button btnAutoImport = (Button)sender; //先載入原本樣板的圖片 //如果略過就塞回原圖 btnAutoImport.Dispatcher.Invoke(() => { bool isEverChanged = false; btnAutoImport.IsEnabled = false; pd = new ProcessingDialog(); Task t = Task.Factory.StartNew(() => { pd.Dispatcher.Invoke(() => { pd.PText = "圖片偵測中"; pd.PIsIndeterminate = true; pd.ButtonContent = "跳過"; pd.ReturnValueCallback += new ProcessingDialog.ReturnValueDelegate(this.SetReturnValueCallbackFun); pd.Show(); }); //病患資料夾路徑 if (pf == null) { pf = new PatientsFolder(Agencys, Patients, Registration_Date); } //資料表Registrations 處理 if (dbr == null) { dbr = new DBRegistrations(); } //資料表Images 處理 if (dbi == null) { dbi = new DBImages(); } //處理載入BitmapImage if (lbi == null) { lbi = new LoadBitmapImage(); } //載入TemplateImages if (dbti == null) { dbti = new DBTemplateImages(); } tICollection = new ObservableCollection <TemplateImages>(); tICollection = dbti.GetTemplateImagesCollection(Agencys, Patients, TemplateItem, tfvm.TemplateImportDate); //default Image[i] in UserControl Templates int Imagei = 0; int ImageCount = (int)TemplateItem.Template_ImageCount; int DecodePixelWidth = (int)TemplateItem.Template_DecodePixelWidth; while (Imagei < ImageCount) { pd.PText = "圖片 " + (Imagei + 1) + " 偵測中"; //目前處理的Image[i] Image iTarget; TemplateContent.Dispatcher.Invoke(() => { iTarget = new Image(); iTarget = (Image)TemplateContent.FindName("Image" + Imagei); iTarget.Source = new BitmapImage(new Uri(@"/DigiDental;component/Resource/yes.png", UriKind.RelativeOrAbsolute)); //iTarget.Source = lbi.SettingBitmapImage(@"/DigiDental;component/Resource/yes.png", DecodePixelWidth); }); //set the paramater default bool isChanged = false; bool detecting = true; while (true) { //開始偵測wifi card路徑 foreach (string f in Directory.GetFiles(Agencys.Agency_WifiCardPath)) { Thread.Sleep(500); string extension = Path.GetExtension(f).ToUpper(); string newFileName = DateTime.Now.ToString("yyyyMMddHHmmssffff"); if (!Directory.Exists(pf.PatientFullFolderPathOriginal)) { Directory.CreateDirectory(pf.PatientFullFolderPathOriginal); } //System.Drawing.RotateFlipType rft = ImageHelper.RotateImageByExifOrientationData(f, pf.PatientFullFolderPathOriginal + @"\" + newFileName + @"ori" + extension, GetImageFormat(extension), true); ////複製原圖到目的Original //File.Copy(f, pf.PatientFullFolderPathOriginal + @"\" + newFileName + @"ori" + extension); // Rotate the image according to EXIF data var bmp = new System.Drawing.Bitmap(f); System.Drawing.RotateFlipType fType = ImageHelper.RotateImageByExifOrientationData(bmp, true); if (fType != System.Drawing.RotateFlipType.RotateNoneFlipNone) { bmp.Save(pf.PatientFullFolderPathOriginal + @"\" + newFileName + @"ori" + extension, GetImageFormat(extension)); } else { File.Copy(f, pf.PatientFullFolderPathOriginal + @"\" + newFileName + @"ori" + extension); } Registration_ID = dbr.CreateRegistrationsAndGetID(Patients, Registration_Date); string imagePath = @"\" + pf.PatientFolderPathOriginal + @"\" + newFileName + @"ori" + extension; string imageFileName = newFileName + @"ori" + extension; string imageSize = "Original"; string imageExtension = extension; //寫資料庫 //INSERT Images int imageID = dbi.InsertImage(imagePath, imageFileName, imageSize, imageExtension, Registration_ID); isEverChanged = true; TemplateContent.Dispatcher.Invoke(() => { iTarget = new Image(); iTarget = (Image)TemplateContent.FindName("Image" + Imagei); //INSERT TemplateImages dbti.InsertOrUpdateImage(Patients, TemplateItem, tfvm.TemplateImportDate, imageID, imagePath, iTarget.Uid); iTarget.Source = lbi.SettingBitmapImage(pf.PatientFullFolderPathOriginal + @"\" + newFileName + @"ori" + extension, DecodePixelWidth); isChanged = true; }); File.Delete(f); detecting = false; } //ProcessingDialog STOP if (isStop) { isStop = false; TemplateContent.Dispatcher.Invoke(() => { iTarget = new Image(); iTarget = (Image)TemplateContent.FindName("Image" + Imagei); var findOriImage = from tc in tICollection where tc.TemplateImage_Number == Imagei.ToString() select tc; if (findOriImage.Count() > 0) { iTarget.Source = lbi.SettingBitmapImage(findOriImage.First().Image_Path, DecodePixelWidth); } else { iTarget.Source = new BitmapImage(new Uri(@"/DigiDental;component/Resource/no.png", UriKind.RelativeOrAbsolute)); //iTarget.Source = lbi.SettingBitmapImage(@"/DigiDental;component/Resource/key.ico", DecodePixelWidth); } }); return; } else { // import pic OR skip import (NEXT) if (!detecting || !isSkip) { if (!isChanged) { TemplateContent.Dispatcher.Invoke(() => { iTarget = new Image(); iTarget = (Image)TemplateContent.FindName("Image" + Imagei); var findOriImage = from tc in tICollection where tc.TemplateImage_Number == Imagei.ToString() select tc; if (findOriImage.Count() > 0) { iTarget.Source = lbi.SettingBitmapImage(findOriImage.First().Image_Path, DecodePixelWidth); } else { iTarget.Source = new BitmapImage(new Uri(@"/DigiDental;component/Resource/no.png", UriKind.RelativeOrAbsolute)); //iTarget.Source = lbi.SettingBitmapImage(@"/DigiDental;component/Resource/key.ico", DecodePixelWidth); } }); } Imagei++; isSkip = true; break; } } } } }).ContinueWith(cw => { //結束 pd.PText = "處理完畢"; pd.Close(); //委派回傳MainWindow //刷新Registrations 資料 //刷新Images 資料 if (isEverChanged) { ReturnValueCallback(Registration_ID, Registration_Date); } GC.Collect(); btnAutoImport.IsEnabled = true; }, TaskScheduler.FromCurrentSynchronizationContext()); }); }
public MainForm() { instance = this; InitializeComponent(); CheckForIllegalCrossThreadCalls = false; #region Right Click Menu var menu = new ContextMenu(); menu_play = menu.MenuItems.Add("Play", (sender, e) => { var path = getGameConfigPath(listView1.SelectedItems[0].Text, false); MusicPlayForm.getInstance(path + (File.Exists(path + ".modified") ? ".modified" : ".original")).Show(); MusicPlayForm.player.Play(); }); menu_edit = menu.MenuItems.Add("Edit", new MenuItem[] { menu_trim = new MenuItem("Trim", (sender, e) => { var dialog = new TrimDialog(); if (dialog.ShowDialog() == DialogResult.OK) { // TODO. } }), menu_volume = new MenuItem("Adjust Volume", (sender, e) => { var dialog = new AdjustVolumeDialog(); if (dialog.ShowDialog() == DialogResult.OK) { var items = listView1.SelectedItems; var processing = new ProcessingDialog(0, items.Count); new Thread(new ThreadStart(() => { int result = dialog.Result; var failed = ""; foreach (ListViewItem item in items) { item.SubItems[2].Text = result.ToString(); if (!reConvertModifiedMedia(item)) { failed += "\n" + item.Text; item.SubItems[2].Text = "100"; File.Delete(getGameConfigPath(item.Text, false) + ".modified"); } processing.update(); } processing.update(); saveTracks(); MessageBox.Show("Processed " + items.Count + " file(s)." + (failed == "" ? "" : "\n\nFollowing file(s) process failed:" + failed), "Done", MessageBoxButtons.OK, MessageBoxIcon.Information); })).Start(); processing.ShowDialog(); } }) }); menu_alias = menu.MenuItems.Add("Set Alias", (sender, e) => { listView1_MouseDoubleClick(); }); menu_remove = menu.MenuItems.Add("Remove", (sender, e) => { if (!Running && listView1.SelectedItems.Count != 0) { foreach (ListViewItem item in listView1.SelectedItems) { listView1.Items.Remove(item); var path = getGameConfigPath(item.Text, false); File.Delete(path + ".original"); File.Delete(path + ".modified"); } for (int i = 0; i < listView1.Items.Count; i++) { listView1.Items[i].SubItems[3].Text = (i + 1).ToString(); } saveTracks(); } }); menu.Popup += (sender, e) => { if (listView1.SelectedItems.Count == 0) { menu_play.Visible = menu_alias.Visible = menu_edit.Visible = menu_remove.Visible = false; } else { menu_edit.Visible = menu_remove.Visible = true; menu_play.Visible = menu_alias.Visible = menu_trim.Visible = listView1.SelectedItems.Count == 1; } }; listView1.ContextMenu = menu; #endregion }