Exemple #1
0
    // ------
    public bool Enabled()
    {
        if (weaponID != E_WeaponID.None)
        {
            WeaponSettings settings = WeaponSettingsManager.Instance.Get(weaponID);
            return(!settings.DISABLED);
        }
        else if (itemID != E_ItemID.None)
        {
            ItemSettings settings = ItemSettingsManager.Instance.Get(itemID);
            return(!settings.DISABLED);
        }
        else if (upgradeID != E_UpgradeID.None)
        {
            UpgradeSettings settings = UpgradeSettingsManager.Instance.Get(upgradeID);
            return(!settings.DISABLED);
        }
        else if (perkID != E_PerkID.None)
        {
            PerkSettings settings = PerkSettingsManager.Instance.Get(perkID);
            return(!settings.DISABLED);
        }
        else
        {
            Error("Unknown type!");
        }

        return(false);
    }
Exemple #2
0
        public async Task UpgradeToLatestAvailableVersionTest()
        {
            var settings      = new UpgradeSettings();
            var verCollection = _database.GetCollection <DbVersion>(settings.VersionCollectionName);
            await _database.DropCollectionAsync(settings.VersionCollectionName);

            var dbLock  = new MongoDbLock(_settings, _database);
            var tracker = new MongoMigrationTracker(_settings, _database);

            //Step2: Apply upgrade chain
            var upgrades = new MigrationChain(new List <IUpgradeLink>
            {
                new UpgradeStub("0.0", "0.1"),
                new UpgradeStub("0.1", "0.2"),
                new UpgradeStub("0.2", "0.3"),
            });

            var upgrader = new MongoMigrator(
                _database,
                upgrades,
                new UpgradeStub(null, "0.0"),
                settings,
                dbLock,
                tracker,
                new NullLoggerFactory());
            await upgrader.UpgradeOrInit();

            var ver = (await verCollection.FindAsync(e => true)).First();

            Assert.AreEqual(Version.Parse("0.3"), ver.Version, "After init, DB should marked with the latest version");
            Assert.IsTrue(ver.AutoUpgradeEnabled);
        }
Exemple #3
0
        public async Task EmptyUpgradeListTest()
        {
            var settings      = new UpgradeSettings();
            var verCollection = _database.GetCollection <DbVersion>(settings.VersionCollectionName);
            await _database.DropCollectionAsync(settings.VersionCollectionName);

            var dbLock  = new MongoDbLock(_settings, _database);
            var tracker = new MongoMigrationTracker(_settings, _database);

            var upgrader = new MongoMigrator(
                _database,
                new MigrationChain(null),
                null,
                settings,
                dbLock,
                tracker,
                new NullLoggerFactory());

            await upgrader.UpgradeOrInit();

            var ver = (await verCollection.FindAsync(e => true)).First();

            Assert.IsNull(ver.Version);
            Assert.IsTrue(ver.AutoUpgradeEnabled);
        }
Exemple #4
0
        public void AllArgumentsWithoutDryRunGetSet()
        {
            var app = new CommandAppTester();

            app.Configure(config =>
            {
                config.PropagateExceptions();
                config.AddCommand <UpgradeCommand>("upgrade");
            });

            CommandAppResult result = app.Run(new[]
            {
                "upgrade", "awesome-package", "--csprojFile", "\\path-to-file", "--version", "latest"
            });

            // No .csproj file is given or can be found, so we expect -1
            Assert.Equal(-1, result.ExitCode);
            Assert.NotNull(result.Settings);
            Assert.IsType <UpgradeSettings>(result.Settings);
            UpgradeSettings settings = result.Settings as UpgradeSettings;

            Assert.NotNull(settings !.PackageToUpgrade);
            Assert.Equal("awesome-package", settings !.PackageToUpgrade);
            Assert.NotNull(settings !.PathToCsProjFile);
            Assert.Equal("\\path-to-file", settings !.PathToCsProjFile);
            Assert.NotNull(settings !.Version);
            Assert.Equal("latest", settings !.Version);
            Assert.False(settings !.DryRun);
            Assert.False(settings !.Interactive);
        }
Exemple #5
0
        public async Task InitToTheLastVersionTest()
        {
            var settings      = new UpgradeSettings();
            var verCollection = _database.GetCollection <DbVersion>(settings.VersionCollectionName);
            await _database.DropCollectionAsync(settings.VersionCollectionName);

            var dbLock   = new MongoDbLock(_settings, _database);
            var tracker  = new MongoMigrationTracker(_settings, _database);
            var upgrades = new MigrationChain(new List <IUpgradeLink>
            {
                new UpgradeStub("0.0", "0.1"),
                new UpgradeStub("0.1", "0.2"),
                new UpgradeStub("0.2", "0.3"),
            });
            var upgrader = new MongoMigrator(
                _database,
                upgrades,
                null,
                settings,
                dbLock,
                tracker,
                new NullLoggerFactory());

            await upgrader.UpgradeOrInit();

            var ver = (await verCollection.FindAsync(e => true)).First();

            Assert.AreEqual(Version.Parse("0.3"), ver.Version);
            Assert.IsTrue(ver.AutoUpgradeEnabled);
            Assert.IsNull(ver.LastUpgradeError);
        }
Exemple #6
0
        public async Task InitFailTest()
        {
            var settings      = new UpgradeSettings();
            var verCollection = _database.GetCollection <DbVersion>(settings.VersionCollectionName);
            await _database.DropCollectionAsync(settings.VersionCollectionName);

            var dbLock   = new MongoDbLock(_settings, _database);
            var tracker  = new MongoMigrationTracker(_settings, _database);
            var upgrades = new MigrationChain(new List <IUpgradeLink>
            {
                new UpgradeStub("0.0", "0.1"),
                new UpgradeStub("0.1", "0.2"),
                new UpgradeStub("0.2", "0.3"),
            });
            var upgrader = new MongoMigrator(
                _database,
                upgrades,
                new UpgradeStub(null, "0.0", (s, db, log) => throw new Exception("test init failed")),
                settings,
                dbLock,
                tracker,
                new NullLoggerFactory());

            var ex = Assert.ThrowsAsync <MigrationException>(upgrader.UpgradeOrInit);

            Assert.IsNotNull(ex.InnerException);
            Assert.AreEqual("test init failed", ex.InnerException?.Message);

            var ver = (await verCollection.FindAsync(e => true)).First();

            Assert.IsNull(ver.Version);
            Assert.IsFalse(ver.AutoUpgradeEnabled);
            Assert.IsNotNull(ver.LastUpgradeError);
            Assert.IsTrue(ver.LastUpgradeError.Contains("test init failed"));
        }
Exemple #7
0
    // ------
    public bool IsDefault()
    {
        if (weaponID != E_WeaponID.None)
        {
            WeaponSettings settings = WeaponSettingsManager.Instance.Get(weaponID);
            return(settings.IsDefault());
        }
        else if (itemID != E_ItemID.None)
        {
            ItemSettings settings = ItemSettingsManager.Instance.Get(itemID);
            return(settings.IsDefault());
        }
        else if (upgradeID != E_UpgradeID.None)
        {
            UpgradeSettings settings = UpgradeSettingsManager.Instance.Get(upgradeID);
            return(settings.IsDefault());
        }
        else if (perkID != E_PerkID.None)
        {
            PerkSettings settings = PerkSettingsManager.Instance.Get(perkID);
            return(settings.IsDefault());
        }

        return(false);
    }
Exemple #8
0
 public void SetUp()
 {
     // All these means nothing to upgrade
     _runner   = MongoDbRunner.Start();
     _client   = new MongoClient(_runner.ConnectionString);
     _database = _client.GetDatabase("intergationtest");
     _settings = UpgradeSettings.Default;
 }
 public PreviewItem(E_UpgradeID upgradeID)
 {
     if (upgradeID != E_UpgradeID.None)
     {
         UpgradeSettings settings = UpgradeSettingsManager.Instance.Get(upgradeID);
         m_ItemDescription = TextDatabase.instance[settings.Description];
     }
 }
Exemple #10
0
    internal static void SetUpdateWindow(AdminCenterClient adminCenterClient, string environmentName, DateTime preferredStartTime, DateTime preferredEndTime)
    {
        var upgradeSettings = new UpgradeSettings
        {
            PreferredStartTimeUtc = preferredStartTime,
            PreferredEndTimeUtc   = preferredEndTime,
        };
        UpgradeSettings newUpgradeSettings = adminCenterClient.SetUpgradeSettings("BusinessCentral", environmentName, upgradeSettings);

        Utils.ConsoleWriteLineAsJson(newUpgradeSettings);
    }
Exemple #11
0
        private async void Init()
        {
            if (!File.Exists(SettingsPath))
            {
                WriteDefaults();
            }
            FromJson();
            try
            {
                var currentVersion  = Assembly.GetExecutingAssembly().GetName().Version;
                var settingsVersion = new Version(CurrentSettings.Version);
                var versionCheck    = CheckVersion(currentVersion, settingsVersion);

                if (versionCheck == 1)
                {
                    if (settingsVersion.CompareTo(UpgradeSettings.InitialVersion) == -1)
                    {
                        WriteDefaults();
                    }
                    else
                    {
                        UpgradeSettings.Upgrade(CurrentSettings, settingsVersion);
                        CurrentSettings.Version = currentVersion.ToString();
                        await InternalSaveAsync();
                    }
                }
            }
            catch (Exception e)
            {
                _logger.Error("Error occured while checking versions", e);
                WriteDefaults();
            }
            if (CurrentSettings.AutomaticLimitsSync)
            {
                await SyncWithRemoteSettings();
            }
            if (string.IsNullOrEmpty(CurrentSettings.Token))
            {
                CurrentSettings.Token = Guid.NewGuid().ToString();
            }
            InternalSave();
            _socketIoService.StateChanged.Subscribe(state =>
            {
                if (state == ConnectionState.Connected)
                {
                    _socketIoService.Hub.SetToken(CurrentSettings.Token);
                }
            });
        }
Exemple #12
0
    private void InvokeAction(string action)
    {
        GameObject      gameManager = GameObject.Find("GameManager");
        UpgradeSettings us          = gameManager.GetComponent <UpgradeSettings>();

        string     methodName = GetMethodName(action);
        MethodInfo method     = us.GetType().GetMethod(methodName);

        object[] functionParameters = GetMethodParameters(action, method.GetParameters());

        method.Invoke(us, functionParameters);
        PlayerSettings.instance.upgradeTime = false;
        button.interactable = false;
        StartCoroutine(Solve());
    }
Exemple #13
0
        public async Task UpgradeWithDifferentVerCollectionNameTest()
        {
            var settings = new UpgradeSettings {
                VersionCollectionName = "testtestete"
            };
            var verCollection = _database.GetCollection <DbVersion>(settings.VersionCollectionName);
            await _database.DropCollectionAsync(settings.VersionCollectionName);

            var dbLock  = new MongoDbLock(settings, _database);
            var tracker = new MongoMigrationTracker(settings, _database);

            //Step1: init db
            var upgrader = new MongoMigrator(
                _database,
                new MigrationChain(null),
                new UpgradeStub(null, "0.0"),
                settings,
                dbLock,
                tracker,
                new NullLoggerFactory());
            await upgrader.UpgradeOrInit();

            var ver = (await verCollection.FindAsync(e => true)).First();

            Assert.AreEqual(Version.Parse("0.0"), ver.Version);

            //Step2: Apply upgrade chain
            var upgrades = new MigrationChain(new List <IUpgradeLink>
            {
                new UpgradeStub("0.0", "0.1"),
                new UpgradeStub("0.1", "0.2"),
                new UpgradeStub("0.2", "0.3"),
            });

            upgrader = new MongoMigrator(
                _database,
                upgrades,
                new UpgradeStub(null, "0.0", (s, db, log) => throw new Exception("test init failed")),
                settings,
                dbLock,
                tracker,
                new NullLoggerFactory());
            await upgrader.UpgradeOrInit();

            ver = (await verCollection.FindAsync(e => true)).First();
            Assert.AreEqual(Version.Parse("0.3"), ver.Version);
            Assert.IsTrue(ver.AutoUpgradeEnabled);
        }
    protected override void buildObject(int level)
    {
        base.buildObject(level);

        usettings = upgrades[level];

        indicator.gameObject.SetActive(false);

        indicator.gameObject.transform.Translate(usettings.indicatorOffset.x, usettings.indicatorOffset.y, 0);

        ContentManager.instance.configureObject(indicator, usettings.indicatorAtlasName, "");
        ContentManager.instance.precacheAnimation(indicator, usettings.indicatorAnimationAtlasName);

        _type  = ObjectType.COFFEE_MACHINE;
        _state = CoffeeMachineState.IDLE;
    }
Exemple #15
0
        private void FinishUpgrade()
        {
            Process.Start(System.IO.Path.Combine(UpgradeSettings.GetBaseDirectory(), "Rainy.SampleApplication.exe"));

            //当前运行WPF程序的进程实例
            Process process = Process.GetCurrentProcess();

            //遍历WPF程序的同名进程组
            foreach (Process p in Process.GetProcessesByName(process.ProcessName))
            {
                //关闭全部进程
                p.Kill();//这个地方用kill 而不用Shutdown();的原因是,Shutdown关闭程序在进程管理器里进程的释放有延迟不是马上关闭进程的
                //Application.Current.Shutdown();
                return;
            }
        }
Exemple #16
0
 // ------
 void InitData()
 {
     if (weaponID != E_WeaponID.None)
     {
         WeaponSettings settings = WeaponSettingsManager.Instance.Get(weaponID);
         m_ItemName        = settings.Name;
         m_ItemDescription = settings.Description;
         m_IsPriceGold     = settings.GoldCost > 0;
         m_Price           = m_IsPriceGold ? settings.GoldCost : settings.MoneyCost;
         m_Image           = settings.ResearchWidget;
         m_GUID            = settings.GUID;
     }
     else if (itemID != E_ItemID.None)
     {
         ItemSettings settings = ItemSettingsManager.Instance.Get(itemID);
         m_ItemName        = settings.Name;
         m_ItemDescription = settings.Description;
         m_IsPriceGold     = settings.GoldCost > 0;
         m_Price           = m_IsPriceGold ? settings.GoldCost : settings.MoneyCost;
         m_Image           = settings.ResearchWidget;
         m_GUID            = settings.GUID;
     }
     else if (upgradeID != E_UpgradeID.None)
     {
         UpgradeSettings settings = UpgradeSettingsManager.Instance.Get(upgradeID);
         m_ItemName        = settings.Name;
         m_ItemDescription = settings.Description;
         m_IsPriceGold     = settings.GoldCost > 0;
         m_Price           = m_IsPriceGold ? settings.GoldCost : settings.MoneyCost;
         m_Image           = settings.ResearchWidget;
         m_GUID            = settings.GUID;
     }
     else if (perkID != E_PerkID.None)
     {
         PerkSettings settings = PerkSettingsManager.Instance.Get(perkID);
         m_ItemName        = settings.Name;
         m_ItemDescription = settings.Description;
         m_IsPriceGold     = settings.GoldCost > 0;
         m_Price           = m_IsPriceGold ? settings.GoldCost : settings.MoneyCost;
         m_Image           = settings.ResearchWidget;
         m_GUID            = settings.GUID;
     }
     else
     {
         Error("Unknown type!");
     }
 }
Exemple #17
0
        public void Initialize(UpgradeSettings upgradeSettings)
        {
            if (isInitialized || upgradeSettings == null)
            {
                return;
            }

            this.upgradeSettings = upgradeSettings;

            upgradeSettings.onUpgradeIncrement += UpdateInterface;

            upgradeButton.onClick.AddListener(OnUpgradeClick);

            CreateUpgradeValues();
            UpdateInterface();

            isInitialized = true;
        }
Exemple #18
0
    protected override void buildObject(int level)
    {
        base.buildObject(level);

        usettings = upgrades[level];

        indicator.gameObject.SetActive(false);
        indicator.gameObject.transform.Translate(usettings.indicatorOffset.x, usettings.indicatorOffset.y, 0);

        ContentManager.instance.configureObject(indicator, usettings.indicatorAtlasName, "");
        ContentManager.instance.precacheAnimation(indicator, usettings.indicatorAnimationAtlasName);

        brockenSprite.gameObject.SetActive(false);

        _portionCapacity   = usettings.portionNum;
        _currentPortionNum = 0;

        _type  = ObjectType.BLENDER;
        _state = BlenderState.IDLE;
    }
Exemple #19
0
        public void TargetVersionGetsSetToLatest()
        {
            var app = new CommandAppTester();

            app.Configure(config =>
            {
                config.PropagateExceptions();
                config.AddCommand <UpgradeCommand>("upgrade");
            });

            CommandAppResult result = app.Run(new[] { "upgrade", "--version", "latest" });

            // No .csproj file is given or can be found, so we expect -1
            Assert.Equal(-1, result.ExitCode);
            Assert.NotNull(result.Settings);
            Assert.IsType <UpgradeSettings>(result.Settings);
            UpgradeSettings settings = result.Settings as UpgradeSettings;

            Assert.NotNull(settings !.Version);
            Assert.Equal("latest", settings !.Version);
        }
Exemple #20
0
        public void InteractiveIsSetByLongCode()
        {
            var app = new CommandAppTester();

            app.Configure(config =>
            {
                config.PropagateExceptions();
                config.AddCommand <UpgradeCommand>("upgrade");
            });

            CommandAppResult result = app.Run(new[]
            {
                "upgrade", "--interactive"
            });

            // No .csproj file is given or can be found, so we expect -1
            Assert.Equal(-1, result.ExitCode);
            Assert.NotNull(result.Settings);
            Assert.IsType <UpgradeSettings>(result.Settings);
            UpgradeSettings settings = result.Settings as UpgradeSettings;

            Assert.True(settings !.Interactive);
        }
Exemple #21
0
    internal static void GetUpdateWindow(AdminCenterClient adminCenterClient, string environmentName)
    {
        UpgradeSettings upgradeSettings = adminCenterClient.GetUpgradeSettings("BusinessCentral", environmentName);

        Utils.ConsoleWriteLineAsJson(upgradeSettings);
    }
    protected override void buildObject(int level)
    {
        base.buildObject(level);

        usettings = upgrades[level];

        indicator.gameObject.SetActive(false);

        indicator.gameObject.transform.Translate(usettings.indicatorOffset.x, usettings.indicatorOffset.y, 0);

        ContentManager.instance.configureObject(indicator, usettings.indicatorAtlasName, "");
        ContentManager.instance.precacheAnimation(indicator, usettings.indicatorAnimationAtlasName);

        _type = ObjectType.COFFEE_MACHINE;
        _state = CoffeeMachineState.IDLE;
    }
Exemple #23
0
        private async void ExcuteUpgrade()
        {
            prgUpgrade.Maximum    = _lastestVersionInfo.FilesSize;
            prgUpgrade.Value      = 0;
            tbkVersionInfo.Text   = _lastestVersionInfo.Description;
            tbkTragetVersion.Text = "升级到最新版本:" + _lastestVersionInfo.VersionName;

            //删除需要删除的数据
            if (_lastestVersionInfo.FileToDelete != null)
            {
                foreach (var fileName in _lastestVersionInfo.FileToDelete)
                {
                    var file = new FileInfo(System.IO.Path.Combine(UpgradeSettings.GetBaseDirectory(), fileName));

                    if (file.Exists)
                    {
                        file.Delete();
                    }
                }
            }

            var client = UpgradeSettings.Instance.GetUpgradeHttpClient();

            foreach (var fileName in _lastestVersionInfo.FilesToUpgrade)
            {
                var currentIndex = _lastestVersionInfo.FilesToUpgrade.IndexOf(fileName) + 1;

                tbkUpgradeInfo.Text = "更新中,进度 第" + currentIndex.ToString() + "个文件 / 共" + _lastestVersionInfo.FilesToUpgrade.Count.ToString() + "个文件 ( " + Math.Round(prgUpgrade.Value / prgUpgrade.Maximum * 100) + "% )";

                tbkFileUpgrading.Text = fileName;

                var response = await client.GetAsync("api/ClientVersion/File?fileName=" + fileName);

                var fileStream = await response.Content.ReadAsStreamAsync();

                var file = new FileInfo(System.IO.Path.Combine(UpgradeSettings.GetBaseDirectory(), fileName));
                if (!file.Directory.Exists)
                {
                    file.Directory.Create();
                }

                var stream = file.OpenWrite();

                await fileStream.CopyToAsync(stream);

                prgUpgrade.Value += stream.Length / 1024;

                stream.Close();

                if (currentIndex == _lastestVersionInfo.FilesToUpgrade.Count)
                {
                    if (_lastestVersionInfo != null)
                    {
                        //更新配置文件
                        UpgradeSettings.Instance["CurrentVersion"] = _lastestVersionInfo.VersionName;
                        UpgradeSettings.Instance["LastUpdateTime"] = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
                    }

                    tbkFileUpgrading.Text     = "无";
                    tbkUpgradeInfo.Text       = "更新完成,进度 第" + currentIndex.ToString() + "个文件 / 共" + _lastestVersionInfo.FilesToUpgrade.Count.ToString() + "个文件 ( " + Math.Round(prgUpgrade.Value / prgUpgrade.Maximum * 100) + "% )";
                    tbkUpgradeInfo.Foreground = new SolidColorBrush(Colors.White);

                    textBlock.Visibility = Visibility.Visible;
                    button.Visibility    = Visibility.Visible;
                }
            }
        }
    protected override void buildObject(int level)
    {
        base.buildObject(level);

        usettings = upgrades[level];

        indicator.gameObject.SetActive(false);
        indicator.gameObject.transform.Translate(usettings.indicatorOffset.x, usettings.indicatorOffset.y, 0);

        ContentManager.instance.configureObject(indicator, usettings.indicatorAtlasName, "");
        ContentManager.instance.precacheAnimation(indicator, usettings.indicatorAnimationAtlasName);

        brockenSprite.gameObject.SetActive(false);

        _portionCapacity = usettings.portionNum;
        _currentPortionNum = 0;

        _type = ObjectType.BLENDER;
        _state = BlenderState.IDLE;
    }