internal void RemoveSelectedMod() { if (SelectedMod == null) { return; } int listIndex = CatalogModList.IndexOf(SelectedMod); _modToEdit = null; CatalogModList.Remove(SelectedMod); SelectedMod = null; // ensure selection in list does not change after removing if (listIndex < CatalogModList.Count) { SelectedMod = CatalogModList[listIndex]; } }
internal void LoadCatalogXml(string pathToFile) { try { Catalog catalog = Util.Deserialize <Catalog>(pathToFile); CatalogNameInput = catalog.Name; CatalogModList = new ObservableCollection <CatalogModItemViewModel>(catalog.Mods.Select(m => new CatalogModItemViewModel(m))); SelectedMod = null; ClearInputFields(); CatalogOutput = ""; } catch (Exception e) { Sys.Message(new WMessage($"{ResourceHelper.Get(StringKey.CouldNotLoadCatalogXml)}: {e.Message}", true) { LoggedException = e }); } }
internal void AddModToList() { if (string.IsNullOrWhiteSpace(IDInput)) { IDInput = Guid.NewGuid().ToString(); } if (!Guid.TryParse(IDInput, out Guid parsedID)) { return; } if (CatalogModList.Any(c => c.Mod.ID == parsedID)) { return; } if (string.IsNullOrEmpty(VersionInput)) { VersionInput = "1.00"; } if (string.IsNullOrEmpty(MetaVersionInput)) { MetaVersionInput = "1.00"; } DateTime.TryParse(ReleaseDateInput, out DateTime parsedDate); decimal.TryParse(VersionInput, System.Globalization.NumberStyles.AllowDecimalPoint, new System.Globalization.CultureInfo(""), out decimal parsedVersion); decimal.TryParse(MetaVersionInput, System.Globalization.NumberStyles.AllowDecimalPoint, new System.Globalization.CultureInfo(""), out decimal parsedMetaVersion); if (string.IsNullOrEmpty(ReleaseDateInput) || parsedDate == DateTime.MinValue) { parsedDate = DateTime.Now; } if (parsedVersion <= 0) { parsedVersion = 1.0m; } if (parsedMetaVersion <= 0) { parsedMetaVersion = 1.0m; } Mod newMod = new Mod() { ID = parsedID, Name = NameInput, Author = AuthorInput, Category = ResourceHelper.ModCategoryTranslations[CategoryInput], Tags = TagsInput.Split(new string[] { "\n", "\r" }, StringSplitOptions.RemoveEmptyEntries).ToList(), Description = DescriptionInput, Link = InfoLinkInput, MetaVersion = parsedMetaVersion, LatestVersion = new ModVersion() { Links = DownloadLinkList.Where(d => !string.IsNullOrEmpty(d.SourceLinkInput)).Select(d => d.GetFormattedLink()).ToList(), ReleaseDate = parsedDate, Version = parsedVersion, CompatibleGameVersions = GameVersions.All, PreviewImage = PreviewImageInput } }; CatalogModList.Add(new CatalogModItemViewModel(newMod)); _modToEdit = null; SelectedMod = CatalogModList.LastOrDefault(); }