/// <summary>
        /// Um dos 3 maiores (1, 2 ou 3)
        /// Ou o maior vencedor da semana
        /// </summary>
        /// <param name="id">Colocação</param>
        /// <returns>Jogador nessa colocação, em caso de erro retorna mensagem</returns>
        // GET: api/WeekWinners/2
        public PlayerWeekStats Get(int id)
        {
            PlayerWeekStats P   = new PlayerWeekStats();
            List <string[]> LTD = Database.DatabaseConnect.GetWeekWins();

            if ((id < 1) || id > 3) //Ajusta índice
            {
                id = 1;
            }
            if (LTD.Count == 3) //Tem top 3
            {
                string[] p = LTD[id - 1];
                P.Name = p[0];
                P.WSO  = p[1];
                P.WSTw = p[2];
                P.WSTh = p[3];
                P.WSF  = p[4];
            }
            else //Erro
            {
                string[] message = LTD[0];
                P.Name = "Erro";
                P.WSO  = message[0];
                P.WSTw = message[1];
                P.WSTh = "";
                P.WSF  = "";
            }
            return(P);
        }
예제 #2
0
        public static WeekStatsPlayerDocument FromCoreEntity(PlayerWeekStats stats, Dictionary <string, Guid> nflIdMap)
        {
            var result = new WeekStatsPlayerDocument
            {
                PlayerId = nflIdMap[stats.NflId],
                TeamId   = stats.TeamId,
                Season   = stats.Week.Season,
                Week     = stats.Week.Week
            };

            var playerStats = new Dictionary <MongoWeekStatType, double>();

            foreach (KeyValuePair <WeekStatType, double> statKv in stats.Stats)
            {
                if (WeekStatCategory.DST.Contains(statKv.Key))
                {
                    continue;
                }

                if (WeekStatCategory.Pass.Contains(statKv.Key))
                {
                    result.HasPass = true;
                }
                if (WeekStatCategory.Rush.Contains(statKv.Key))
                {
                    result.HasRush = true;
                }
                if (WeekStatCategory.Receive.Contains(statKv.Key))
                {
                    result.HasReceive = true;
                }
                if (WeekStatCategory.Return.Contains(statKv.Key))
                {
                    result.HasReturn = true;
                }
                if (WeekStatCategory.Misc.Contains(statKv.Key))
                {
                    result.HasMisc = true;
                }
                if (WeekStatCategory.Kick.Contains(statKv.Key))
                {
                    result.HasKick = true;
                }
                if (WeekStatCategory.IDP.Contains(statKv.Key))
                {
                    result.HasIdp = true;
                }

                playerStats[(MongoWeekStatType)statKv.Key] = statKv.Value;
            }

            result.Stats = playerStats;
            return(result);
        }
예제 #3
0
        public static WeekStatsDstDocument FromCoreEntity(PlayerWeekStats stats)
        {
            int teamId = Teams.GetIdFromNflId(stats.NflId);

            var dstStats = new Dictionary <MongoWeekStatType, double>();

            foreach (KeyValuePair <WeekStatType, double> statKv in stats.Stats)
            {
                if (WeekStatCategory.DST.Contains(statKv.Key))
                {
                    dstStats[(MongoWeekStatType)statKv.Key] = statKv.Value;
                }
            }

            return(new WeekStatsDstDocument
            {
                TeamId = teamId,
                Season = stats.Week.Season,
                Week = stats.Week.Week,
                Stats = dstStats
            });
        }
예제 #4
0
        public static bool TryGetReturnSql(this PlayerWeekStats stats,
                                           Dictionary <string, Guid> nflIdMap, out WeekStatsReturnSql sql)
        {
            sql = null;

            var returnStats = stats.GetReturnStats();

            if (!returnStats.Any() || !nflIdMap.TryGetValue(stats.NflId, out Guid id))
            {
                return(false);
            }

            sql = new WeekStatsReturnSql
            {
                PlayerId = id,
                TeamId   = stats.TeamId,
                Season   = stats.Week.Season,
                Week     = stats.Week.Week
            };

            sql.UpdateFromStats(returnStats);
            return(true);
        }
예제 #5
0
        public static bool TryGetDstSql(this PlayerWeekStats stats,
                                        Dictionary <string, Guid> nflIdMap, out WeekStatsDstSql sql)
        {
            sql = null;

            var dstStats = stats.GetDstStats();

            if (!dstStats.Any() || !nflIdMap.TryGetValue(stats.NflId, out Guid id))
            {
                return(false);
            }

            int teamId = Teams.GetIdFromNflId(stats.NflId);

            sql = new WeekStatsDstSql
            {
                TeamId = teamId,
                Season = stats.Week.Season,
                Week   = stats.Week.Week
            };

            sql.UpdateFromStats(dstStats);
            return(true);
        }