예제 #1
0
        public async Task <IdentityResult> StartUpgrade(int upgradegId, int cityId)
        {
            var newMoneyService = new MoneyManagerAppService(_applicationDbContext);
            var result          = await newMoneyService.checkAvailabilityForNewUpgrade(upgradegId, cityId);

            if (!result.Succeeded)
            {
                return(IdentityResult.Failed()); //aready runnung a research
            }
            else
            {
                var upgradeRecord = await _applicationDbContext.CityUpgrades
                                    .Where(x => x.CityId == cityId && x.UpgradeId == upgradegId).SingleOrDefaultAsync();

                upgradeRecord.RoundToFinish = 15;
                _applicationDbContext.CityUpgrades.Update(upgradeRecord);


                var success = await _applicationDbContext.SaveChangesAsync() > 0;

                if (!success)
                {
                    return(IdentityResult.Failed());
                }

                return(IdentityResult.Success);
            }
        }
        public async Task <IdentityResult> BuyUnits(List <int> amountOfNewUnits, int cityId)
        {
            var newMoneyService = new MoneyManagerAppService(_applicationDbContext);
            var result          = await newMoneyService.checkMoneyForNewUnits(amountOfNewUnits, cityId);

            if (!result.Succeeded)
            {
                return(IdentityResult.Failed()); //not enought money
            }
            else
            {
                var army = await _applicationDbContext.Armies
                           .Where(x => x.CityId == cityId && x.EnemyCityId == null).SingleOrDefaultAsync();

                var armyRecords = _applicationDbContext.ArmyUnits.Where(x => x.ArmyId == army.ArmyId).ToList();

                for (var i = 0; i < armyRecords.Count(); i++)
                {
                    armyRecords[i].UnitId  = i + 1;
                    armyRecords[i].Number += amountOfNewUnits[i];
                    armyRecords[i].ArmyId  = army.ArmyId;
                    _applicationDbContext.ArmyUnits.Update(armyRecords[i]);
                }

                var success = await _applicationDbContext.SaveChangesAsync() > 0;

                if (!success)
                {
                    return(IdentityResult.Failed());
                }

                return(IdentityResult.Success);
            }
        }
예제 #3
0
        public async Task <IdentityResult> BuyBuilding(int buildingId, int cityId)
        {
            var newMoneyService = new MoneyManagerAppService(_applicationDbContext);
            var result          = await newMoneyService.checkMoneyForNewBuilding(buildingId, cityId);

            if (!result.Succeeded)
            {
                return(IdentityResult.Failed()); //not enought money
            }
            else
            {
                var buildingRecord = await _applicationDbContext.CityBuildings
                                     .Where(x => x.CityId == cityId && x.BuildingId == buildingId).SingleOrDefaultAsync();

                buildingRecord.RoundToFinish = 5;
                _applicationDbContext.CityBuildings.Update(buildingRecord);


                var success = await _applicationDbContext.SaveChangesAsync() > 0;

                if (!success)
                {
                    return(IdentityResult.Failed());
                }

                return(IdentityResult.Success);
            }
        }