public CurrentGameViewModel(CurrentGameStateService gs) { this.gs = gs; dbService = new DatabaseService(); LoadData(gs); }
private void LoadData(CurrentGameStateService gs) { RootObject ro = gs.ParsedData; if (gs.ParsedData.Map == null) { return; } var steamIds = FindAllSteamIds(gs.ParsedData); CurrentGameInfo matchInfo = new CurrentGameInfo(); matchInfo.MatchID = gs.ParsedData.Map.MatchId; matchInfo.RadiantGold = gs.ParsedData.MainPlayer.RadiantTeam.Player0.NetWorth; matchInfo.DireGold = gs.ParsedData.MainPlayer.DireTeam.Player5.NetWorth; matchInfo.WinProbability = gs.ParsedData.Map.RadiantWinChance; matchInfo.RadiantKills = gs.ParsedData.MainPlayer.RadiantTeam.GetAllPlayers.Sum(p => p.Kills); matchInfo.DireKills = gs.ParsedData.MainPlayer.DireTeam.GetAllPlayers.Sum(p => p.Kills); TimeSpan t = TimeSpan.FromSeconds(gs.ParsedData.Map.ClockTime); matchInfo.MatchTime = string.Format("{0:D2}:{1:D2}", t.Minutes, t.Seconds); //All players matchInfo.RadiantTeam = gs.ParsedData.MainPlayer.RadiantTeam.GetAllPlayers; matchInfo.DireTeam = gs.ParsedData.MainPlayer.DireTeam.GetAllPlayers; //All players current networth matchInfo.HeroesNetWorth.AddRange(gs.ParsedData.MainPlayer.RadiantTeam.GetAllPlayers.Select(gap => gap.NetWorth)); matchInfo.HeroesNetWorth.AddRange(gs.ParsedData.MainPlayer.DireTeam.GetAllPlayers.Select(gap => gap.NetWorth)); //All players current gold matchInfo.HeroesCurrentGold.AddRange(gs.ParsedData.MainPlayer.RadiantTeam.GetAllPlayers.Select(gap => gap.Gold)); matchInfo.HeroesCurrentGold.AddRange(gs.ParsedData.MainPlayer.DireTeam.GetAllPlayers.Select(gap => gap.Gold)); //All players reliable gold matchInfo.HeroesReliableGold.AddRange(gs.ParsedData.MainPlayer.RadiantTeam.GetAllPlayers.Select(gap => gap.GoldReliable)); matchInfo.HeroesReliableGold.AddRange(gs.ParsedData.MainPlayer.DireTeam.GetAllPlayers.Select(gap => gap.GoldReliable)); //All players buybackcost matchInfo.HeroesBuybackCost.AddRange(gs.ParsedData.Hero.RadiantTeam.AllPlayers.Select(p => p.BuybackCost)); matchInfo.HeroesBuybackCost.AddRange(gs.ParsedData.Hero.DireTeam.AllPlayers.Select(p => p.BuybackCost)); //All players buyback cooldown matchInfo.HeroesBuybackCooldown.AddRange(gs.ParsedData.Hero.RadiantTeam.AllPlayers.Select(p => p.BuybackCooldown)); matchInfo.HeroesBuybackCooldown.AddRange(gs.ParsedData.Hero.DireTeam.AllPlayers.Select(p => p.BuybackCooldown)); matchInfo.HeroesImages = ImagesConverter.LoadImages(gs.ParsedData.Hero.AllHeroes.Select(ah => ah.Id).ToList()); CurrentMatchInfo = matchInfo; }
public PreGameViewModel(IMemoryCache cache, CurrentGameStateService gs) { this.cache = cache; this.gs = gs; dbService = new DatabaseService(); }