private async void FlashSelectedHexArchiveCommand_ExecuteAsync() { var binaryCount = SelectedHexArchive.Info.Binaries.Count; var hexFile = GetTempFilePath(); var archivedHexFile = String.Empty; switch (binaryCount) { case 0: ///TODO: Show an indication to the user, there are no binaries return; case 1: archivedHexFile = SelectedHexArchive.Info.Binaries.First().Filename; break; default: var selectedBinary = await SelectBinaryDialogMessage.SendAsync(SelectedHexArchive.Info.Binaries); archivedHexFile = selectedBinary?.Filename ?? String.Empty; break; } if (archivedHexFile != String.Empty) { var data = SelectedHexArchive.ExtactHexData(archivedHexFile); File.WriteAllBytes(hexFile, data); await FlashHexFileAsync(hexFile); } else { AddLogEntry("No binary selected", true); } }
private void ShowSelectBinaryDialog(SelectBinaryDialogMessage m) { var dialog = new BinarySelectionDialog(m.BinaryInfos); dialog.WindowStartupLocation = WindowStartupLocation.CenterOwner; dialog.Owner = Window.GetWindow(AssociatedObject); if (dialog.ShowDialog().Value) { m.Callback?.Invoke(dialog.SelectedBinaryInfo); } }