예제 #1
0
        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);
            }
        }
예제 #2
0
        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);
            }
        }