コード例 #1
0
 public YahooTeamResource()
 {
     TeamLogo           = new YahooTeamLogo();
     TeamRosterAdds     = new YahooTeamRosterAdds();
     TeamManagersList   = new List <YahooManager>();
     PrimaryTeamManager = new YahooManager();
 }
コード例 #2
0
        // 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);
        }
コード例 #3
0
        // 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);
        }
コード例 #4
0
        // 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();
        }
コード例 #5
0
        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();
        }
コード例 #6
0
        // 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);
        }