private void PrintAndFix() { try { if (!_globalManager.Identify()) { if (MessageBox.Show("Brak dopasowania pliku identyfikacyjnego z plikiem uszkodzonym. Wykonać instrukcje mimo to?", "Brak dopasowania", MessageBoxButton.YesNo, MessageBoxImage.Warning) == MessageBoxResult.No) { throw new Exception("Plik identyfikacyjy oraz plik uszkodzony nie zostały dopasowane."); } } var positionsFound = _globalManager.Find(); if (positionsFound != null) { ChangeFoundLabelState(Label_state.Valid); } else { ChangeFoundLabelState(Label_state.Invalid); } if (positionsFound != null) { //conflict check bool isConflict = false; foreach (var position in positionsFound) { if (position.Value.Count > 1) { isConflict = true; break; } } if (isConflict) { ConflictDialog dialog = new ConflictDialog(positionsFound, _selectedInstructionPath); dialog.ShowDialog(); if (dialog.SolvedConflicts != null) { positionsFound = dialog.SolvedConflicts; } } Hex fixedHex = _globalManager.Fix(positionsFound); PrintHexes(); } else { PrintHexes(); } } catch (Exception exception) { MessageBox.Show(exception.Message); } }