public void CalculateNba(NbaGame nbaGame) { Dictionary <string, Dictionary <string, double> > modelData = nbaGame.ModelData; LoadTables(modelData); SetSecondFoulPossession(nbaGame); string saveFileName = GetSaveFullFileName(nbaGame); SaveModel(saveFileName); //LogArrayValues(); }
//private void LogArrayValues() //{ // CATable caTable = GetDefTable("OPP"); // string[] indexArray = { "iMTR", "iTVH", "iPLY", "iAlt", "iGL2" }; // // todo fails here // if (!caTable.SetIndexOrder(indexArray)) // { // string message = $"SetIndexOrder() failed: indexArray = {ConvertIndexArrayToString(indexArray)}"; // throw new Exception(message); // } // dynamic safeArray = caTable.GetSafeArray(); // Array array = (Array)safeArray; // WriteLine(array); // caTable = GetDefTable("FP"); // // todo missing SetIndexOrder()? // safeArray = caTable.GetSafeArray(); // array = (Array)safeArray; // WriteLine(array); //} private static string GetSaveFullFileName(NbaGame nbaGame) { const string dateFormat = "yyyymmd"; string dateTimeString = DateTime.Now.ToString(dateFormat); string saveFileName = $"{nbaGame.Away}_{nbaGame.Home}_{nbaGame.GameId}_{dateTimeString}.ana"; // todo directory is wrong for some reason? string baseDirectory = Utils.GetBaseDirectory(); string saveFullFileName = Path.Combine(baseDirectory, "AnalyticaSavedModels", saveFileName); Logger.Debug($"saveFullFileName = {saveFullFileName}"); return(saveFullFileName); }
// "assists" // "points" // "blocks" // "rebounds" // "steals" // "threepointattempted" // "threepointmade" // "turnovers" // "twopointattempted" // "twopointmade" // "freethrowattempted" // "freethrowmade" #endregion public List <NbaGame> GetGames() { List <NbaGame> gameEventList = new List <NbaGame>(); using (MySqlConnection mySqlConnection = MySqlConnection) { mySqlConnection.Open(); const string storedProcedure = "pbp.GetGames"; using (MySqlCommand mySqlCommand = new MySqlCommand(storedProcedure, mySqlConnection)) { mySqlCommand.CommandType = CommandType.StoredProcedure; using (MySqlDataReader mySqlDataReader = mySqlCommand.ExecuteReader()) { if (!mySqlDataReader.HasRows) { const string error = "GetGameEvents() has no rows"; string message = $"{error,40}, {storedProcedure,40}\n"; Write(message); return(gameEventList); } while (mySqlDataReader.Read()) { NbaGame nbaGame = new NbaGame { GameId = mySqlDataReader.GetGuid("comp_id"), GameTime = mySqlDataReader.GetDateTime("game_time"), AwayTeamId = mySqlDataReader.GetGuid("away_team_id"), HomeTeamId = mySqlDataReader.GetGuid("home_team_id"), Away = mySqlDataReader.GetString("away"), Home = mySqlDataReader.GetString("home") }; gameEventList.Add(nbaGame); } return(gameEventList); } } } }
private void SetSecondFoulPossession(NbaGame nbaGame) { CATable caTable = GetDefTable("EGT"); string[] indexArray = { "S" }; int seconds = nbaGame.NbaScore.Seconds; if (!caTable.SetDataByLabels(seconds, indexArray)) { string message = $"SetDataByLabels() failed: seconds = {seconds}, indexArray1 = {ConvertIndexArrayToString(indexArray)}"; Logger.Error(message); throw new Exception(message); } indexArray = new[] { "F" }; int foul = nbaGame.Foul; if (!caTable.SetDataByLabels(foul, indexArray)) { string message = $"SetDataByLabels() failed: foul = {foul}, indexArray2 = {ConvertIndexArrayToString(indexArray)}"; throw new Exception(message); } indexArray = new[] { "P" }; string possession = $"{nbaGame.Possession}"; Logger.Info($"possession = {possession}, indexArray3 = {ConvertIndexArrayToString(indexArray)}"); // todo bug here if (!caTable.SetDataByLabels(possession, indexArray)) { throw new Exception($"SetDataByLabels() failed: possession = {possession}, indexArray3 = {ConvertIndexArrayToString(indexArray)}"); } if (!caTable.Update()) { throw new Exception("Update() failed"); } }