コード例 #1
0
ファイル: MainWindow.cs プロジェクト: ziyuejun/Localizer
        private Task LoadPackages()
        {
            return(Task.Run(() =>
            {
                try
                {
                    loading = true;
                    pkgManager.PackageGroups = new List <IPackageGroup>();
                    foreach (var dir in new DirectoryInfo(Localizer.SourcePackageDirPath).GetDirectories())
                    {
                        try
                        {
                            var package2 = sourcePackageLoadServiceService.Load(dir.FullName, fileLoadService);
                            if (package2 != null)
                            {
                                pkgManager.AddPackage(package2);
                            }
                        }
                        catch
                        {
                        }
                    }

                    var list = Directory.GetFiles(Localizer.DownloadPackageDirPath).ToList();
                    list.AddRange(Directory.GetFiles(Path.Combine(Terraria.Main.SavePath, "Mods"), "*.locpack"));
                    foreach (var file in list)
                    {
                        try
                        {
                            var package = packedPackageLoadServiceService.Load(file, fileLoadService);
                            if (package != null)
                            {
                                pkgManager.AddPackage(package);
                            }
                        }
                        catch
                        {
                        }
                    }
                    pkgManager.LoadState();
                }
                catch (Exception o)
                {
                    Utils.LogError(o);
                }
                finally
                {
                    loading = false;
                    RefreshPkgList();
                }
            }));
        }
コード例 #2
0
        private void Export()
        {
            try
            {
                if (SelectedMod == null)
                {
                    MessageBox.Show(_("No-Selected-Mod-Error-Message"));
                    return;
                }

                if (string.IsNullOrWhiteSpace(PackageName))
                {
                    MessageBox.Show(_("No-Package-Name-Error-Message"));
                    return;
                }

                var package = new Package
                {
                    Name     = PackageName,
                    Language = SelectedLanguage,
                    ModName  = SelectedMod.Name,
                    Files    = new ObservableCollection <IFile>()
                };

                var dirPath = Utils.EscapePath(Path.Combine(Localizer.Localizer.SourcePackageDirPath, PackageName));

                packageExportService.Export(package,
                                            new ExportConfig
                {
                    ForceOverride   = ForceOverride,
                    MakeBackup      = MakeBackup,
                    WithTranslation = WithTranslation
                });

                IPackage oldPack;
                if (Directory.Exists(dirPath))
                {
                    oldPack = sourcePackageLoadServiceService.Load(dirPath, fileLoadService);
                }
                else
                {
                    Utils.CreateDirectory(dirPath);
                    oldPack = null;
                }

                if (MakeBackup && oldPack != null)
                {
                    var backupDirPath = Utils.EscapePath(Path.Combine(dirPath, "Backups", Utils.DateTimeToFileName(DateTime.Now)));
                    Utils.CreateDirectory(backupDirPath);
                    packageSaveService.Save(oldPack, backupDirPath, fileSaveService);

                    Utils.LogDebug($"[{PackageName}'s backup created.]");
                }

                if (!ForceOverride && oldPack != null)
                {
                    var updateLogger = Localizer.Localizer.Kernel.Get <IUpdateLogService>();
                    updateLogger.Init($"{package.Name}-{Utils.DateTimeToFileName(DateTime.Now)}");

                    packageUpdateService.Update(oldPack, package, updateLogger);

                    packageSaveService.Save(oldPack, dirPath, fileSaveService);
                }
                else
                {
                    packageSaveService.Save(package, dirPath, fileSaveService);
                }

                MessageBox.Show(string.Format(_("Package-Exported-Success-Message"), PackageName));
            }
            catch (Exception e)
            {
                MessageBox.Show(e.ToString());
                Localizer.Localizer.Log.Error(e);
            }
        }