public IActionResult create(Hero person) { _dbContext.Heroes.Add(person); _dbContext.SaveChanges(); return(CreatedAtRoute("GetHero", new { id = person.Id }, person)); }
public HeroesController(HeroesDbContext heroes) { _dbContext = heroes; if (!_dbContext.Heroes.Any()) { //create a new hero if collection is empty //which means you cant delete all heroes _dbContext.Heroes.Add(new Hero { Name = "Hero11" }); _dbContext.Heroes.Add(new Hero { Name = "Hero12" }); _dbContext.Heroes.Add(new Hero { Name = "Hero13" }); _dbContext.Heroes.Add(new Hero { Name = "Hero14" }); _dbContext.Heroes.Add(new Hero { Name = "Hero15" }); _dbContext.SaveChanges(); } }
private Task UpdatePowers(HeroesDbContext context, IHeroService heroService) { var powers = context.HeroPowers.Include(hp => hp.Power).Where(hp => hp.LastTrainingTime != null || hp.LastChangeTime != null).ToList(); foreach (var heroPower in powers) { var timePassed = DateTime.Now.Subtract(heroPower.LastChangeTime.GetValueOrDefault()).TotalHours; var timeChanged = Convert.ToInt32(Math.Floor(timePassed)); if (timeChanged < Constants.HERO_POWER_MIN_CHANGE_TIME) { continue; } var percentage = Math.Pow(0.8, timeChanged); var newStrength = Convert.ToInt32(Convert.ToDouble(heroPower.Strength) * percentage); heroPower.Strength = newStrength; heroPower.LastChangeTime = DateTime.Now; context.HeroPowers.Update(heroPower); context.SaveChanges(); heroService.ChangeOverallStrength(heroPower.HeroId); } return(Task.CompletedTask); }
public void ChangeOverallStrength(int id) { var hero = _context.Heroes.Include(h => h.Powers).Include(h => h.MainPower).First(h => h.Id == id); hero.OverallStrength = hero.Powers.Aggregate(0, (acc, power) => acc += power.Strength); _context.Update(hero); _context.SaveChanges(); }