public ModderToolsViewModel() { // Enable Collection Synchronization on all ObservableCollection objects BindingOperations.EnableCollectionSynchronization(ModFiles, _lockModFiles); BindingOperations.EnableCollectionSynchronization(ModTags, _lockModTags); BindingOperations.EnableCollectionSynchronization(ExtractableFolders, _lockExtractableFolders); DisplayName = Strings.ModderToolsViewModel_DisplayName; _ModFilesView.Source = ModFiles; _ModTagsView.Source = ModTags; _ExtractableFoldersView.Source = ExtractableFolders; // Load mod tags foreach (var tag in JsonConvert.DeserializeObject <List <ModTagViewModel> >(Resources.ModTags)) { ModTags.Add(tag); } _ModTagsView.IsLiveGroupingRequested = true; ModTagsView.GroupDescriptions.Add(new PropertyGroupDescription("Category")); ModTagsView.SortDescriptions.Clear(); ModTagsView.SortDescriptions.Add(new SortDescription("Category", ListSortDirection.Descending)); ModTagsView.SortDescriptions.Add(new SortDescription("Title", ListSortDirection.Ascending)); }
private void LoadYaml(string yamlPath) { try { log.InfoFormat("Loading YAML file: {0}", yamlPath); string yamlContents = File.ReadAllText(yamlPath); var details = ModDetails.LoadFromYaml(yamlContents); Clear(); ModAuthor = details.Author; ModTitle = details.Title; ModNotes = details.Notes; ModPreview = details.PreviewPath; string preview = TroveMod.GetOverridePath(details.PreviewPath, PrimaryLocationPath); if (!string.IsNullOrWhiteSpace(preview) && File.Exists(preview) && (preview.EndsWith(".png", StringComparison.OrdinalIgnoreCase) || preview.EndsWith(".jpg", StringComparison.OrdinalIgnoreCase))) { PreviewImage = preview; } foreach (string file in details.Files) { ModFiles.Add(file); } foreach (string tag in details.Tags) { var modTag = ModTags.FirstOrDefault(t => t.Title.Equals(tag, StringComparison.OrdinalIgnoreCase)); if (modTag != null) { modTag.Selected = true; } else { AdditionalTags = string.IsNullOrWhiteSpace(AdditionalTags) ? tag : string.Format("{0}, {1}", AdditionalTags, tag); } } } catch (Exception ex) { log.Error(string.Format("Error loading YAML file {0}", yamlPath), ex); } }