public static void SetMatchCustomFields(Match match, string accountId, MatchReference matchRef = null) { var participantIdentity = match.ParticipantIdentities.FirstOrDefault(pi => pi.Player.CurrentAccountId == accountId); var participant = match.Participants.FirstOrDefault(p => p.ParticipantId == participantIdentity.ParticipantId); if (participantIdentity == null || participant == null) { return; } match.ParticipantsByTeam = match.Participants.GroupBy(p => p.TeamId); match.Timestamp = matchRef.Timestamp; match.WasPlayed = GetMatchWasPlayedTime(match.Timestamp); match.GameDurationStr = GetGameDurationInText(match.GameDuration); match.QueueTypeName = GetMatchQueueTypeName(match.QueueId); match.GameResult = participant.Stats.Win == true ? "Victory" : "Defeat"; match.ParticipantForDisplay = SetParticipantForDisplay(match, participant, participantIdentity); }
private async Task <Models.Match.Match> ConvertRiotMatchReferenceToDbMatch(MatchReference riotMatchReference) { try { var newDbMatch = new Models.Match.Match(); var riotMatch = await _throttledRequestHelper.SendThrottledRequest(async() => await _riotApi.Match.GetMatchAsync(Region.euw, riotMatchReference.GameId)); if (riotMatch != null && riotMatch.QueueId == LeagueQueue.RankedSoloId) { newDbMatch.GameId = riotMatch.GameId; newDbMatch.GameDuration = riotMatch.GameDuration; newDbMatch.GameDate = riotMatch.GameCreation; newDbMatch.GamePatch = riotMatch.GameVersion; newDbMatch.WinningTeamId = riotMatch.Participants.FirstOrDefault(x => x.Stats.Win)?.TeamId; var winningTeamParticipants = riotMatch.Participants.Where(x => x.TeamId == newDbMatch.WinningTeamId); var winningTeamParticipantIdentifies = riotMatch.ParticipantIdentities.Where(x => winningTeamParticipants.Any(y => y.ParticipantId == x.ParticipantId)); var winningTeamstats = riotMatch.Teams.FirstOrDefault(x => x.TeamId == newDbMatch.WinningTeamId); newDbMatch.Teams.Add(ConvertRiotParticipantsToDbTeam(winningTeamParticipantIdentifies, winningTeamParticipants, winningTeamstats)); var losingTeamParticipants = riotMatch.Participants.Where(x => x.TeamId != newDbMatch.WinningTeamId); var losingTeamParticipantIdentifies = riotMatch.ParticipantIdentities.Where(x => losingTeamParticipants.Any(y => y.ParticipantId == x.ParticipantId)); var losingTeamStats = riotMatch.Teams.FirstOrDefault(x => x.TeamId != newDbMatch.WinningTeamId); newDbMatch.Teams.Add(ConvertRiotParticipantsToDbTeam(losingTeamParticipantIdentifies, losingTeamParticipants, losingTeamStats)); return(newDbMatch); } } catch (Exception) { } return(null); }
public Partida salvarPartida(MatchReference partida, Invocador invocador, Match partidaAPI, Participant jogador) { Partida partidaEntity = new Partida(); partidaEntity.accountId = invocador; //partidaEntity.setStatusPartida(statusPartida); partidaEntity.id = partida.GameId; ParticipantStats jogadorStats = jogador.Stats; long getMultikill = jogadorStats.LargestMultiKill; if (getMultikill == 1) { partidaEntity.multiKill = "Kill '-'"; } else if (getMultikill == 2) { partidaEntity.multiKill = "Double Kill"; } else if (getMultikill == 3) { partidaEntity.multiKill = "Triple Kill"; } else if (getMultikill == 4) { partidaEntity.multiKill = "Quadra Kill"; } else if (getMultikill == 5) { partidaEntity.multiKill = "Penta Kill"; } partidaEntity.duracao = partidaAPI.GameDuration; // jogador.getChampionId() long kills = jogadorStats.Kills; long deaths = jogadorStats.Deaths; long assists = jogadorStats.Assists; partidaEntity.kda = kills.ToString."/".deaths.ToString + "/" + assists.IoString; partidaEntity.scoreVisao = jogadorStats.VisionScore; partidaEntity.farm = jogadorStats.totalMinionsKilled; partidaEntity.gold = jogadorStats.goldEarned; partidaEntity.wards = jogadorStats.wardsPlaced; partidaEntity.resultado = jogadorStats.Winner; partidaEntity = partidaRepository.save(partidaEntity); for (int indexBuild = 0; indexBuild < 6; indexBuild++) { ItensPartida itens = new ItensPartida(); itens.setIdPartida(partidaEntity); itens.setItemId(utilService.getItem(indexBuild, jogadorStats)); itensRepository.save(itens); logger.info("salvando iten: " + itens.getItemId()); } SpellsPartida spells = new SpellsPartida(); spells.setIdPartida(partidaEntity); spells.setSpellId(jogador.getSpell1Id()); spellsPartidaRepository.save(spells); logger.info("salvando spell: " + spells.getSpellId()); spells.setSpellId(jogador.getSpell2Id()); spellsPartidaRepository.save(spells); logger.info("salvando spell: " + spells.getSpellId()); //RunasPartida runas = new RunasPartida(); //runas.setIdPartida(partidaEntity); //runas.setRunaId(jogador.getRunes().get(0).getRuneId()); //runasPartidaRepository.save(runas); //logger.info("salvando runa: " + runas.getRunaId()); //runas.setRunaId(jogador.getRunes().get(1).getRuneId()); //runasPartidaRepository.save(runas); //logger.info("salvando runa: " + runas.getRunaId()); logger.info("partida salva: id da Partida" + partidaEntity.getIdPartida()); return(partidaEntity); }
public MatchHistoryElement(MatchReference matchReference, Dictionary <string, ChampionStatic> champions) { Reference = matchReference; ChampionName = champions.Values.Single(x => x.Id == matchReference.ChampionID).Name; }
public MatchesViewModel(MatchReference item) { MatchInformation = item; }