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); } }
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); } }