예제 #1
0
 public static GameStat ConvertType2(DTOStatExtended o)
 {
     return(new GameStat()
     {
         LeagueID = o.LeagueID,
         GameID = o.GameID,
         TeamID = o.TeamID,
         PlayerID = o.PlayerID,
         Value = o.Value,
         StatType = ConvertType(o),
         StatStates = o.States.Select(s => (StatStates)s).ToList()
     });
 }
예제 #2
0
 public static StatType ConvertType(DTOStatExtended o)
 {
     return(new StatType()
     {
         DefaultShow = o.DefaultShow,
         DisplayName = o.DisplayName,
         ID = o.StatTypeID,
         IsCalculated = o.IsCalculated,
         Name = o.Name,
         GridDisplayOrder = o.GridDisplayOrder,
         ValueType = (ValueTypes)o.ValueType,
         SelectionDisplayOrder = o.SelectionDisplayOrder
     });
 }
예제 #3
0
        public List <DTOStatExtended> GetStats(int?gameID = null, int?playerID = null, int?teamID = null, int?leagueID = null, DataCache dataCache = null)
        {
            var stats                 = new List <DTOStatExtended>();
            var dataSetResult         = new DataSet();
            var dataTableResultStats  = new DataTable();
            var dataTableResultStates = new DataTable();
            var cacheKey              = new CacheKey(gameID, teamID, playerID, null);

            if (dataCache != null && dataCache.StatsResult != null && dataCache.StatsResult.ContainsKey(cacheKey))
            {
                dataTableResultStats  = dataCache.StatsResult[cacheKey];
                dataTableResultStates = dataCache.StatesResult[cacheKey];
            }
            else
            {
                var parameters = new List <SqlParameter>();
                if (gameID.HasValue)
                {
                    parameters.Add(CreateSqlParameter("@GameID", SqlDbType.Int, gameID));
                }
                if (playerID.HasValue)
                {
                    parameters.Add(CreateSqlParameter("@PlayerID", SqlDbType.Int, playerID.Value));
                }
                if (teamID.HasValue)
                {
                    parameters.Add(CreateSqlParameter("@TeamID", SqlDbType.Int, teamID.Value));
                }
                if (leagueID.HasValue)
                {
                    parameters.Add(CreateSqlParameter("@LeagueID", SqlDbType.Int, leagueID.Value));
                }
                dataSetResult = SQLGetDataSet("GetStats", parameters);
                if (dataCache == null)
                {
                    dataCache = new DataCache();
                }
                dataTableResultStats  = dataSetResult.Tables[0];
                dataTableResultStates = dataSetResult.Tables[1];
                dataCache.StatsResult.Add(cacheKey, dataTableResultStats);
                dataCache.StatesResult.Add(cacheKey, dataTableResultStates);
            }
            foreach (DataRow dr in dataTableResultStats.Rows)
            {
                var stat = new DTOStatExtended()
                {
                    ID            = (int)dr["ID"],
                    GameID        = (int)dr["GameID"],
                    LeagueID      = (int)dr["LeagueID"],
                    SportID       = (int)dr["SportID"],
                    GroupID       = dr["GroupID"] == DBNull.Value ? (int?)null : (int)dr["GroupID"],
                    Value         = (int)dr["Value"],
                    StatTypeID    = (int)dr["StatTypeID"],
                    PlayerID      = dr["PlayerID"] == DBNull.Value ? (int?)null : (int)dr["PlayerID"],
                    TeamID        = (int)dr["TeamID"],
                    DefaultShow   = (bool)dr["DefaultShow"],
                    DisplayName   = dr["DisplayName"].ToString(),
                    IsCalculated  = (bool)dr["IsCalculated"],
                    AutoGenerated = (bool)dr["IsCalculated"],
                    Name          = dr["Name"].ToString(),
                };

                string filter = string.Format("GameID = {0} AND PlayerID = {1} AND StatID = {2}", stat.GameID, stat.PlayerID.HasValue ? stat.PlayerID.ToString() : "null", stat.ID);
                foreach (DataRow drState in dataTableResultStates.Select(filter))
                {
                    int stateID = (int)drState["StateID"];
                    stat.States.Add(stateID);
                }

                stats.Add(stat);
            }
            return(stats);
        }