예제 #1
0
        /// <summary>
        /// return of the FaceitGUID and FaceitName based on the SteamID
        /// </summary>
        /// <param name="steamID"></param>
        /// <returns></returns>
        public Tuple <string, string> FaceitUserDetails(string steamID)
        {
            try
            {
                var             _faceitApi      = new Faceitapi();
                string          getPlayerGuid   = "";
                string          getPlayerName   = "";
                FaceitGameModel getFaceitPlayer = _faceitApi.getFaceitUserInfo(steamID);

                foreach (var Player in getFaceitPlayer.payload.players.results)
                {
                    if (Player.games.Count == 0)
                    {
                        continue;
                    }
                    for (int i = 0; i < Player.games.Count; i++)
                    {
                        if (Player.games[i].name == "csgo")
                        {
                            getPlayerName = Player.nickname;
                            getPlayerGuid = Player.guid;
                            return(Tuple.Create(getPlayerGuid, getPlayerName));
                        }
                    }
                }
                return(null);
            }
            catch
            {
                return(null);
            }
        }
예제 #2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="playerID"></param>
        /// <param name="nickname"></param>
        /// <returns>Last FaceitMatch</returns>
        public FaceitLastMatch[] getFaceitLastMatchDetails(string playerID, string nickname)
        {
            var model      = new Faceitmatch();
            var _faceitApi = new Faceitapi();

            FaceitLastMatch[] LastMatch = _faceitApi.getFaceitHistory(playerID);

            return(LastMatch);
        }
예제 #3
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="faceitId"></param>
        /// <param name="historyLength"></param>
        /// <param name="calculationLength"></param>
        /// <returns></returns>
        public Faceitmatch getFaceitMatchDetails(string playerID, string nickname)
        {
            var model      = new Faceitmatch();
            var _faceitApi = new Faceitapi();
            FaceitLiveMatchModel LiveMatch = _faceitApi.getFaceitLiveMatch(playerID);

            var x = LiveMatch;

            if (LiveMatch.payload.STATE != null)
            {
                var test        = LiveMatch.payload.STATE[0].teams.faction1.roster;
                int ownNumber   = (CheckFaction(LiveMatch.payload.STATE[0].teams.faction1.roster, playerID)) ? 1 : 2;
                int enemyNumber = (ownNumber == 1) ? 2 : 1;
                int Rostercount = LiveMatch.payload.STATE[0].teams.faction1.roster.Count;

                foreach (dynamic User in LiveMatch.payload.STATE[0].teams.faction1.roster)
                {
                    if (ownNumber == 1)
                    {
                        var FaceitUs = new FaceitUserInfos();
                        model.ownTeamName = LiveMatch.payload.STATE[0].teams.faction1.name;
                        model.ownTeamElo += _faceitApi.getFaceitUserDetails(User.nickname).payload.games.csgo.faceit_elo;
                    }
                    else
                    {
                        var FaceitUs = new FaceitUserInfos();
                        model.ownTeamName = LiveMatch.payload.STATE[0].teams.faction2.name;
                        model.ownTeamElo += _faceitApi.getFaceitUserDetails(User.nickname).payload.games.csgo.faceit_elo;
                    }
                }
                foreach (dynamic User in LiveMatch.payload.STATE[0].teams.faction2.roster)
                {
                    if (ownNumber == 2)
                    {
                        var FaceitUs = new FaceitUserInfos();
                        model.enemyTeamName = LiveMatch.payload.STATE[0].teams.faction1.name;
                        model.enemyTeamElo += _faceitApi.getFaceitUserDetails(User.nickname).payload.games.csgo.faceit_elo;
                    }
                    else
                    {
                        var FaceitUs = new FaceitUserInfos();
                        model.enemyTeamName = LiveMatch.payload.STATE[0].teams.faction2.name;
                        model.enemyTeamElo += _faceitApi.getFaceitUserDetails(User.nickname).payload.games.csgo.faceit_elo;
                    }
                }


                model.ownTeamElo   = model.ownTeamElo / Rostercount;
                model.enemyTeamElo = model.enemyTeamElo / Rostercount;

                model.ownTeamWinElo   = calculateRating(model.ownTeamElo, model.enemyTeamElo);
                model.enemyTeamWinElo = 50 - model.ownTeamWinElo;
                return(model);
            }
            return(null);
        }
        public FacaeitLifetimeStats getFaceitLifetimeStats(string faceitId, string faceitName)
        {
            var model      = new Faceitmatch();
            var _faceitApi = new Faceitapi();

            FacaeitLifetimeStats LastMatch = _faceitApi.getFaceitLifetimeStats(faceitId);

            LastMatch.lifetime.Elo   = _faceitApi.getFaceitUserDetails(faceitName).payload.games.csgo.faceit_elo;
            LastMatch.lifetime.Level = _faceitApi.getFaceitUserDetails(faceitName).payload.games.csgo.skill_level;
            return(LastMatch);
        }
예제 #5
0
        /// <summary>
        /// Get FaceitAvg Stats with the historyLength and the calculationLength
        /// </summary>
        /// <param name="faceitId"></param>
        /// <param name="historyLength"></param>
        /// <param name="calculationLength"></param>
        /// <returns></returns>
        public FaceitUserStats FaceitAvgElo(string faceitId, int historyLength = 50, int calculationLength = 20)
        {
            int count      = 0;
            var userStats  = new FaceitUserStats();
            var _faceitApi = new Faceitapi();

            FaceitLastMatch[] UserHistory = _faceitApi.getFaceitHistory(faceitId, historyLength);   //get Object of all Matches

            foreach (dynamic Matches in UserHistory)
            {
                if (Matches.gameMode == "5v5")
                {
                    count++;
                    userStats = getSumOfStats(Matches, userStats);

                    if (count >= calculationLength)
                    {
                        break;
                    }
                }
            }
            userStats = getAvgStats(userStats, count);
            return(userStats);
        }