public YahooTeamResource() { TeamLogo = new YahooTeamLogo(); TeamRosterAdds = new YahooTeamRosterAdds(); TeamManagersList = new List <YahooManager>(); PrimaryTeamManager = new YahooManager(); }
// STATUS [ June 8, 2019 ] : this works /// <summary> /// Create a list of all yahoo managers in the league /// The manager data in the requested json is found nested under league standings /// Relies on the 'CreateYahooManagerModel()' method to instantiate each Yahoo Managers /// </summary> /// <param name="NumberOfTeams"> /// The total number of teams in the league /// Assumes 1 manager per team; if a team is co-managed it just gives you one mgr for that team /// </param> /// <example> /// var listOfManagers = GetListOfAllManagersInLeague(10); /// </example> public List <YahooManager> GetListOfAllManagersInLeague(int NumberOfTeams) { List <YahooManager> yManagerList = new List <YahooManager>(); for (var counter = 0; counter <= NumberOfTeams - 1; counter++) { YahooManager yM = CreateYahooManagerModel(counter); yManagerList.Add(yM); } return(yManagerList); }
// STATUS [ June 9, 2019 ] : this works /// <summary> /// If the team has co-managers, populate remaining properties with this code /// If the team only has one manager, populate remaining properties with 'PopulateTeamBaseWithOneManager()' method /// This is ultimately called in the 'CreateYahooTeamBaseModel()' method /// </summary> /// <param name="tB">todo: describe tB parameter on PopulateTeamBaseWithCoManagers</param> /// <param name="managerPath">todo: describe managerPath parameter on PopulateTeamBaseWithCoManagers</param> /// <param name="teamManagersList">todo: describe teamManagersList parameter on PopulateTeamBaseWithCoManagers</param> /// <example> /// PopulateTeamBaseWithCoManagers(tB, managerPath, teamManagersList); /// </example> /// <returns> /// A List of YahooManagers with manager details for each of the co-managers /// </returns> private List <YahooManager> PopulateTeamBaseWithCoManagers([FromQuery] YahooTeamResource tB, [FromQuery] JToken managerPath, List <YahooManager> teamManagersList) { Console.WriteLine($"{tB.TeamName} has multiple managers"); int countOfItemsInJArray = managerPath.Children().Count(); for (var i = 0; i <= countOfItemsInJArray - 1; i++) { tB.PrimaryTeamManager.ManagerId = managerPath[i]["manager_id"].ToString(); string nickname = ""; tB.PrimaryTeamManager.NickName = nickname = managerPath[i]["nickname"].ToString(); Console.WriteLine($"generating managers for {nickname}"); tB.PrimaryTeamManager.Guid = managerPath[i]["guid"].ToString(); // tB.PrimaryTeamManager.IsCommissioner = managerPath[i]["is_commissioner"].ToString(); // tB.PrimaryTeamManager.IsCurrentLogin = managerPath[i]["is_current_login"].ToString(); // some managers may keep their email address private / hidden; if that's the case, you'll get an error; // this checks if there is an email; if there isn't, it sets the email as 'hidden' so you don't get an error try { tB.PrimaryTeamManager.Email = managerPath[i]["email"].ToString(); } catch (Exception ex) { Console.WriteLine(ex); tB.PrimaryTeamManager.Email = "hidden"; } tB.PrimaryTeamManager.ImageUrl = managerPath[i]["image_url"].ToString(); YahooManager manager = new YahooManager { ManagerId = managerPath[i]["manager_id"].ToString(), NickName = managerPath[i]["nickname"].ToString(), Guid = managerPath[i]["guid"].ToString(), // IsCommissioner = managerPath[i]["is_commissioner"].ToString(), // IsCurrentLogin = managerPath[i]["is_current_login"].ToString(), Email = tB.PrimaryTeamManager.Email, ImageUrl = managerPath[i]["image_url"].ToString(), }; teamManagersList.Add(manager); tB.TeamManagersList.Add(manager); } // _h.Dig(teamManagersList); return(teamManagersList); }
// STATUS [ June 8, 2019 ] : this kind of works but not sure if it's needed // Right now the JObject is the LeagueStandings json; would need to dig to get all managers // public JObject GetAllYahooManagersJObject () // { // string leagueKey = _yahooApiRequestController.GetTheGameIsTheGameLeagueKey(); // // Create the uri that will be used to generate the appropriate json // // Use Lg. Standings endpoint because mgr. details are nested in league standings json // var uriLeagueStandings = endPoints.LeagueStandingsEndPoint(leagueKey).EndPointUri; // JObject leagueStandings = _yahooApiRequestController.GenerateYahooResourceJObject(uriLeagueStandings); // // _h.Dig(leagueStandings); // return leagueStandings; // } #endregion YAHOO MANAGER - PRIMARY METHODS ------------------------------------------------------------ #region PRINTING PRESS ------------------------------------------------------------ public static void PrintYahooManagerDetails(YahooManager yM) { Console.WriteLine(); Console.WriteLine("------------------------------------"); Console.WriteLine("### YAHOO MANAGER DETAILS ###"); Console.WriteLine("------------------------------------"); Console.WriteLine($"Y! MGR RECORD ID | {yM.YahooManagerRecordId}"); Console.WriteLine($"MANAGER ID | {yM.ManagerId}"); Console.WriteLine($"NICKNAME | {yM.NickName}"); Console.WriteLine($"GUID | {yM.Guid}"); Console.WriteLine($"IS COMMISH? | {yM.IsCommissioner}"); Console.WriteLine($"IS CURRENT LOGIN? | {yM.IsCurrentLogin}"); Console.WriteLine($"EMAIL | {yM.Email}"); Console.WriteLine($"IMAGE | {yM.ImageUrl}"); Console.WriteLine("------------------------------------"); Console.WriteLine(); }
public static void Run() { // Factory design pattern is used internally from these there // classes (YahooManager, GmailManager, HotmailManager) var yahooServiceManager = new YahooManager(); var gmailServiceManager = new GmailManager(); var hotmailServiceManager = new HotmailManager(); Console.WriteLine(); yahooServiceManager.SentEmail(); Console.WriteLine(); gmailServiceManager.SentEmail(); Console.WriteLine(); hotmailServiceManager.SentEmail(); Console.WriteLine(); Console.WriteLine("******************************************"); Console.WriteLine(); }
// 1 : DJB // 2 : DSch // 3 : CSt // 4 : SpMc // 5 : PJB // 6 : JB // 7 : Pants // 8 : JCuz // 9 : DBra // 10: MC #region YAHOO MANAGER - PRIMARY METHODS ------------------------------------------------------------ // STATUS [ June 8, 2019 ] : this works /// <summary> /// Instantiate new instance of a yahoo manager /// The manager data in the requested json is found nested under league standings /// </summary> /// <param name="managerId"> /// A number 0 - X; Where X is the total number of teams in the league; /// Basically every manager has their own single number Id; /// Select the Id of the Manager you would want to view /// </param> /// <example> /// var yahooManager = CreateYahooManagerModel(1); /// </example> /// <returns> /// A new YahooManager /// </returns> public YahooManager CreateYahooManagerModel(int managerId) { // _h.StartMethod(); string leagueKey = _yahooApiRequestController.GetTheGameIsTheGameLeagueKey(); // Console.WriteLine($"MANAGER CONTROLLER > leagueKey: {leagueKey}"); // Create the uri that will be used to generate the appropriate json // Use Lg. Standings endpoint because mgr. details are nested in league standings json var uriLeagueStandings = _endPoints.LeagueStandingsEndPoint(leagueKey).EndPointUri; JObject leagueStandings = _yahooApiRequestController.GenerateYahooResourceJObject(uriLeagueStandings); YahooManager yM = new YahooManager { // these pull from the yahoo response (xml or json) to set each item ManagerId = _endPoints.TeamItem(leagueStandings, managerId, "ManagerId"), NickName = _endPoints.TeamItem(leagueStandings, managerId, "Nickname"), Guid = _endPoints.TeamItem(leagueStandings, managerId, "Guid"), }; // Only the commish of the league will have the "IsCommissioner" field try { yM.IsCommissioner = _endPoints.TeamItem(leagueStandings, managerId, "IsCommissioner"); } catch (Exception ex) { Console.WriteLine("ERROR IN: YahooManagerController.CreateYahooManagerModel() --> user not the commish"); } // "IsCurrentLogin" will only return data of current user is fetching their league's data try { yM.IsCurrentLogin = _endPoints.TeamItem(leagueStandings, managerId, "IsCurrentLogin"); } catch (Exception ex) { Console.WriteLine("ERROR IN: YahooManagerController.CreateYahooManagerModel() --> user not looged in "); } // Yahoo managers can hide their email; if hidden, you'll get an error try { yM.Email = _endPoints.TeamItem(leagueStandings, managerId, "Email"); } catch (Exception ex) { Console.WriteLine("ERROR IN: YahooManagerController.CreateYahooManagerModel() --> User has no email"); } yM.ImageUrl = _endPoints.TeamItem(leagueStandings, managerId, "ImageUrl"); // PrintYahooManagerDetails(yM); return(yM); }