示例#1
0
        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);
        }
示例#4
0
 public MatchHistoryElement(MatchReference matchReference, Dictionary <string, ChampionStatic> champions)
 {
     Reference    = matchReference;
     ChampionName = champions.Values.Single(x => x.Id == matchReference.ChampionID).Name;
 }
示例#5
0
 public MatchesViewModel(MatchReference item)
 {
     MatchInformation = item;
 }