// STATUS [ July 15, 2019 ] : this works // STEP 1 /// <summary> /// Get the current seasons hitting leaders; Endpoint parameters passed as parameters to method /// </summary> /// <remarks> /// Parameters for 'HittingLeadersEndPoint' (i.e. numberToReturn, year, sortColumn) are passed as parameters to the method /// See: https://appac.github.io/mlb-data-api-docs/#reports-hitting-leaders-get /// </remarks> /// <param name="numberToReturn"> /// The number of hitters to return in the results (e.g. 50 would show you the top 50 leaders) /// </param> /// <param name="year"> /// The year that you want to retrieve the leaders for (e.g. 2018 gets you leaders for 2018 mlb season) /// </param> /// <param name="sortColumn"> /// This is the stat you want to retrieve the leaders for (e.g., Hr, Rbi etc) /// See: View 'LeadingHitter' model for options that you can sort by for this method /// </param> /// <example> /// var hittingLeaders = CreateHittingLeadersModel(5, "2019", "hr"); /// </example> /// <returns> /// A list of instantiated 'LeadingHitter' for 'numberToReturn' number of hitters /// </returns> public List <LeadingHitter> CreateHittingLeadersModel(int numberToReturn, string year, string sortColumn) { var newEndPoint = _endPoints.HittingLeadersEndPoint(numberToReturn, year, sortColumn); C.WriteLine(newEndPoint); var postmanRequest = _postman.CreatePostmanRequest(newEndPoint, "HittingLeaders"); var postmanResponse = _postman.GetPostmanResponse(postmanRequest); IRestResponse response = postmanResponse.Response; JObject leadersJObject = _apiInfrastructure.CreateModelJObject(response); JToken leadersJToken = _apiInfrastructure.CreateModelJToken(leadersJObject, "HittingLeaders"); int jTokenChildrenCount = leadersJToken.Count <object>(); C.WriteLine($"jTokenChildrenCount: {jTokenChildrenCount}"); List <LeadingHitter> listOfPlayers = new List <LeadingHitter>(); LeadingHitter newLeadingHitterInstance = new LeadingHitter(); for (var counter = 0; counter < jTokenChildrenCount; counter++) { newLeadingHitterInstance = _apiInfrastructure.CreateInstanceOfModel ( leadersJToken[counter], newLeadingHitterInstance, "LeadingHitter" ) as LeadingHitter; listOfPlayers.Add(newLeadingHitterInstance); } foreach (var player in listOfPlayers) { C.WriteLine(player.NameLastCommaFirst); } return(listOfPlayers); }
// STATUS [ July 15, 2019 ] : this works /// <summary> /// View instantiated PlayerSearch object /// </summary> /// <param name="playerLastName">todo: describe playerLastName parameter on ViewPlayerSearchModel</param> /// <remarks> /// See: https://appac.github.io/mlb-data-api-docs/#player-data-player-search-get /// </remarks> /// <returns> /// Instantiated PlayerSearch /// </returns> public List <PlayerSearch> ViewPlayerSearchModel(string playerLastName) { IRestResponse response = GetPlayerSearchModelPostmanResponse(playerLastName); JObject playerJObject = _apiInfrastructure.CreateModelJObject(response); JToken playerJToken = _apiInfrastructure.CreateModelJToken(playerJObject, "PlayerSearch"); int jTokenChildrenCount = playerJToken.Count <object>(); List <PlayerSearch> listOfPlayers = new List <PlayerSearch>(); PlayerSearch newPlayerSearchInstance = new PlayerSearch(); for (var counter = 0; counter < jTokenChildrenCount; counter++) { PlayerSearch playerSearchInstance = _apiInfrastructure.CreateInstanceOfModel ( playerJToken[counter], newPlayerSearchInstance, "PlayerSearch" ) as PlayerSearch; listOfPlayers.Add(playerSearchInstance); } return(listOfPlayers); }