private bool EditCatalogueDescription() { string newDescription = tbDescription.Text.Trim(); CatalogueInfo selectedCatalogue = CataloguesIndex.GetByName(_selectedCatalogueName); string oldDescription = selectedCatalogue.Description?.Trim() ?? ""; if (oldDescription == newDescription) { return(true); } string errorText; AddonPackageSet selectedAddonPackageSet = AddonPackageSet.Load(out errorText, selectedCatalogue.FilePath); selectedAddonPackageSet.SetDescription(newDescription); if (!selectedAddonPackageSet.Save(out errorText, selectedCatalogue.FilePath)) { MessageBox.Show(errorText, "Error saving updated catalogue", MessageBoxButtons.OK); tbDescription.Focus(); return(false); } CataloguesIndex.Update(_selectedCatalogueName, newDescription); NewAddonPackageSet = selectedAddonPackageSet; return(true); }
// ------------------------------------------------------------------------------------------------- public static CataloguesIndex Initialize(MoviestormPaths pMoviestormPaths, out string pErrorText) { pErrorText = null; List <string> catalogueFiles = Directory.EnumerateFiles(Utils.GetExecutableDirectory(), "*.scat").ToList(); if ((catalogueFiles == null) || (catalogueFiles.Count == 0)) { return(InitializeNoCatalogues(pMoviestormPaths, out pErrorText)); } int defaultIndex = -1; int index = 0; List <CatalogueInfo> catalogues = new List <CatalogueInfo>(); foreach (string file in catalogueFiles) { CatalogueInfo catalogue = new CatalogueInfo() { Name = Path.GetFileNameWithoutExtension(file) }; string errorText; AddonPackageSet packageSet = AddonPackageSet.Load(out errorText, file); catalogue.Description = packageSet?.Description; if ((catalogue.FilePath.ToLower() == AddonPackageSet.DefaultAddonPackageSetFileName.ToLower()) || (catalogueFiles.Count == 1)) { if (catalogue.Description == null) { catalogue.Description = "Default catalogue"; } defaultIndex = index; } catalogue.LastUpdateDateTime = packageSet.LastUpdate; catalogue.AddonCount = packageSet?.Addons.Count ?? 0; catalogue.Version = packageSet.CatalogueVersion; catalogues.Add(catalogue); index++; } CataloguesIndex cataloguesIndex = new CataloguesIndex(); cataloguesIndex.Catalogues = catalogues.OrderBy(o => o.FilePath).ToList(); cataloguesIndex.DefaultAddonDatabase = (defaultIndex < 0) ? cataloguesIndex.Catalogues[0].Name : cataloguesIndex.Catalogues[defaultIndex].Name; cataloguesIndex.Save(CataloguesIndexFilePath, out pErrorText); return(cataloguesIndex); }
private bool CopyCatalogue() { string newCatalogueName = CheckCatalogueName(tbNewCat.Text); if (newCatalogueName == null) { tbNewCat.Focus(); return(false); } if (CheckNameDuplicate(newCatalogueName)) { tbNewCat.Focus(); return(false); } CatalogueInfo selectedCatalogue = CataloguesIndex.GetByName(_selectedCatalogueName); string errorText; AddonPackageSet newPackageSet = AddonPackageSet.Load(out errorText, selectedCatalogue.FilePath); newPackageSet.SetDescription(tbDescription.Text.Trim()); if (!newPackageSet.Save(out errorText, newCatalogueName + ".scat")) { MessageBox.Show(errorText, "Error saving copied catalogue", MessageBoxButtons.OK); return(false); } CataloguesIndex.Update(newCatalogueName, tbDescription.Text.Trim(), newPackageSet.Addons?.Count ?? 0, newPackageSet.LastUpdate, newPackageSet.CatalogueVersion); NewAddonPackageSet = newPackageSet; NewAddonPackageSetName = newCatalogueName; return(true); }