예제 #1
0
        private void AddLoadedTank(TankConfig tankConfig) {
            if (!tankConfig.IsValid()) {
                Debug.LogError("Invalid tank config");
                PApplicationUtil.Quit(1);
                return;
            }
            
            tankConfig.Prefab = cnf.TankPrefab;
            if (tankConfig.Prefab == null) {
                Debug.LogError("Tank have no prefab");
                PApplicationUtil.Quit(1);
                return;
            }

            foreach (var weaponConfig in tankConfig.Weapons) {
                try {
                    weaponConfig.Prefab = cnf.TankWeapons.First(info => info.Name == weaponConfig.Name).Prefab;
                } catch (InvalidOperationException e) {
                    Debug.LogErrorFormat("Cannot find tank weapon {0} in {1}", weaponConfig.Name, nameof(cnf.TankWeapons));
                    Debug.LogException(e);
                    PApplicationUtil.Quit(1);
                    return;
                }

                if (weaponConfig.Prefab == null) {
                    Debug.LogErrorFormat("Weapon config {0} have no prefab", weaponConfig.Name);
                    PApplicationUtil.Quit(1);
                    return;
                }
            }
            

            st.TankConfig = tankConfig;
        }
        public async Task TestCreateTankConfigAsync()
        {
            var newTankConfig1 = new TankConfig()
            {
                ConfigName  = "Bypass Time",
                ConfigValue = "30"
            };
            var newTankConfig2 = new TankConfig()
            {
                ConfigName  = "Supply Timeout",
                ConfigValue = "60"
            };

            await repository.CreateTankConfigAsync(newTankConfig1);

            var tankConfigs = await repository.RetrieveAllTankConfigs();

            Assert.True(tankConfigs.Count() == 1);

            await repository.CreateTankConfigAsync(newTankConfig2);

            tankConfigs = await repository.RetrieveAllTankConfigs();

            Assert.True(tankConfigs.Count() == 2);
        }
        public async Task TestRetrieveTankConfigAsync()
        {
            var tempConfig = new TankConfig()
            {
                ConfigName = "RetrieveTankConfigAsyncTest", ConfigValue = "test"
            };

            bool result = await repository.CreateTankConfigAsync(tempConfig);

            Assert.True(result);

            TankConfig retrievedConfig = await repository.RetrieveTankConfig(tempConfig.ConfigName);

            Assert.True(tempConfig.ConfigName == retrievedConfig.ConfigName);
            Assert.True(tempConfig.ConfigValue == retrievedConfig.ConfigValue);
        }
        public async Task TestUpdateTankConfigAsync()
        {
            await repository.CreateTankConfigAsync(new TankConfig()
            {
                ConfigName  = "Bypass Time",
                ConfigValue = "0"
            });

            var newTankConfig1 = new TankConfig()
            {
                ConfigName  = "Bypass Time",
                ConfigValue = "30"
            };

            await repository.UpdateTankConfigAsync(newTankConfig1);

            var retrievedTankConfig = await repository.RetrieveTankConfig($"{newTankConfig1.ConfigName}");

            Assert.True(retrievedTankConfig.ConfigValue == newTankConfig1.ConfigValue);
        }
        public async Task <bool> UpdateTankConfigAsync(TankConfig tankConfig)
        {
            TankConfig originTankConfig = db.TankConfigs.FirstOrDefault(tc => tc.ConfigName == tankConfig.ConfigName);

            if (originTankConfig == null)
            {
                return(false);
            }

            originTankConfig.ConfigValue = tankConfig.ConfigValue;
            int affected = await db.SaveChangesAsync();

            if (affected == 1)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
        public async Task <bool> CreateTankConfigAsync(TankConfig tankConfig)
        {
            // TODO: Do we need Create? => method have Single Responsiblity!

            // check if config is already existed.
            if (db.TankConfigs.Any(tc => tc.ConfigName == tankConfig.ConfigName))
            {
                return(false);
            }

            db.TankConfigs.Add(tankConfig);
            int affected = await db.SaveChangesAsync();

            if (affected == 1)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
예제 #7
0
 private void OnLoadTankConfigSuccess(TankConfig tankConfig) {
     st.LoadingInProcess--;
     AddLoadedTank(tankConfig);
     TryCallOnLoadEnd();
 }
예제 #8
0
 public void Init()
 {
     _tankConfig = new TankConfig();
     _tankConfig.Init();
 }