示例#1
0
        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);
        }
示例#2
0
        // -------------------------------------------------------------------------------------------------


        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);
        }
示例#3
0
        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);
        }