public PatternViewModel(PatternDto patternDto) { PatternDto = patternDto ?? throw new NullReferenceException(nameof(patternDto)); }
private PatternDto ProcessToken(JToken token) { try { PatternDto patternDto; if (token[nameof(PatternUst.Kind)] != null) { if (patternJsonSerializer == null) { patternJsonSerializer = new JsonSerializer(); var converters = patternJsonSerializer.Converters; var patternJsonConverterReader = new PatternJsonConverterReader(new TextFile(patternsData)) { Logger = Logger, DefaultDataFormat = DefaultDataFormat, DefaultKey = DefaultKey, DefaultFilenameWildcard = DefaultFilenameWildcard, DefaultLanguages = DefaultLanguages }; converters.Add(patternJsonConverterReader); var textSpanJsonConverter = new TextSpanJsonConverter { Logger = Logger }; converters.Add(textSpanJsonConverter); var sourceFileJsonConverter = new SourceFileJsonConverter { Logger = Logger, SetCurrentSourceFileAction = sourceFile => { textSpanJsonConverter.CurrentSourceFile = sourceFile; } }; converters.Add(sourceFileJsonConverter); } PatternRoot patternRoot = token.ToObject <PatternRoot>(patternJsonSerializer); patternDto = patternConverter.ConvertBack(new[] { patternRoot })[0]; } else { patternDto = new PatternDto { Name = token[nameof(PatternDto.Name)]?.ToString() ?? string.Empty, Key = token[nameof(PatternDto.Key)]?.ToString() ?? string.Empty, DataFormat = token[nameof(PatternDto.DataFormat)]?.ToString(), Value = token[nameof(PatternDto.Value)]?.ToString(), CweId = token[nameof(PatternDto.CweId)]?.ToString(), Description = token[nameof(PatternDto.Description)]?.ToString(), FilenameWildcard = token[nameof(PatternDto.FilenameWildcard)]?.ToString() }; HashSet <string> languages; var languagesToken = token["Languages"]; if (languagesToken == null) { languages = new HashSet <string>(); } else if (languagesToken is JArray) { languages = new HashSet <string>(languagesToken.Select(x => x.ToString())); } else { languages = new HashSet <string>(languagesToken.ToString() .Split(',').Select(x => x.Trim())); } patternDto.Languages = languages; } return(patternDto); } catch (Exception ex) { Logger.LogError(ex); } return(null); }
public PatternViewModel() { Repository = Di.DiContainer.Container.Resolve <IPatternRepository>(); PatternModel = new PatternDto(); }
public PatternViewModel(PatternUserControl patternUserControl) { patternsListBox = patternUserControl.Find <ListBox>("PatternsListBox"); patternTextBox = patternUserControl.Find <TextBox>("PatternData"); patternErrorsListBox = patternUserControl.Find <ListBox>("PatternErrors"); logger = patternUserControl.Find <TextBox>("Logger"); Dispatcher.UIThread.InvokeAsync(async() => { bool error = false; if (!string.IsNullOrEmpty(Settings.PatternsFileName)) { try { PatternsFileName = Settings.PatternsFileName; SelectedPattern = Patterns.FirstOrDefault(p => p.Key == Settings.SelectedPatternKey) ?? Patterns.FirstOrDefault(); } catch (Exception ex) { await MessageBox.ShowDialog(ex.Message); error = true; } } if (string.IsNullOrEmpty(Settings.PatternsFileName) || error) { Settings.PatternsFileName = Settings.DefaultPatternsFileName; SelectedPattern = Patterns.FirstOrDefault(); SavePatterns(); Settings.Save(); } }); patternsListBox.DoubleTapped += (object sender, Avalonia.Interactivity.RoutedEventArgs e) => { OpenPattern.Execute(sender); }; patternErrorsListBox.DoubleTapped += (object sender, Avalonia.Interactivity.RoutedEventArgs e) => { GuiHelpers.ProcessErrorOnDoubleClick(patternErrorsListBox, patternTextBox); }; patternLogger = new GuiLogger(PatternErrors) { LogPatternErrors = true }; patternLogger.LogEvent += PatternLogger_LogEvent; dslProcessor.Logger = patternLogger; patternTextBox.GetObservable(TextBox.CaretIndexProperty) .Subscribe(UpdatePatternCaretIndex); patternTextBox.GetObservable(TextBox.TextProperty) .Throttle(TimeSpan.FromMilliseconds(250)) .Subscribe(str => Value = str); OpenPatterns.Subscribe(async _ => { SavePatterns(); var openFileDialog = new OpenFileDialog { Title = "Select patterns database", }; var fileNames = await openFileDialog.ShowAsync(ServiceLocator.MainWindow); if (fileNames != null) { try { PatternsFileName = fileNames.First(); } catch (Exception ex) { await MessageBox.ShowDialog(ex.Message); Settings.PatternsFileName = Settings.DefaultPatternsFileName; Settings.Save(); SelectedPattern = Patterns.FirstOrDefault(); ServiceLocator.MainWindowViewModel.ActivateWindow(); } } }); CreatePattern.Subscribe(_ => { SavePatterns(); var newPattern = new PatternDto(); newPattern.Key = Guid.NewGuid().ToString(); newPattern.Name = "New Pattern"; Patterns.Add(newPattern); SelectedPattern = newPattern; SavePatterns(); }); RemovePattern.Subscribe(async _ => { if (SelectedPattern != null && await MessageBox.ShowDialog($"Do you want to remove {SelectedPattern}?", messageBoxType: MessageBoxType.YesNo)) { Patterns.Remove(SelectedPattern); SelectedPattern = Patterns.LastOrDefault(); SavePatterns(); } }); OpenPattern.Subscribe(_ => { if (patternsListBox.SelectedItem != null) { var patternDto = (PatternDto)patternsListBox.SelectedItem; SelectedPattern = patternDto; } }); SavePattern.Subscribe(_ => { SavePatterns(); }); }