コード例 #1
0
        /*
         * Pair each person in the shuffled list with the next person in the shuffled list (except for
         * the last person in the shuffled list, who is paired with the first person)
         */
        public static List <NameEmailModel> PairUp(List <NameEmailModel> nameEmails)
        {
            List <NameEmailModel> sortedEmails = new List <NameEmailModel>();

            for (int i = 0; i < nameEmails.Count; i++)
            {
                NameEmailModel pairing = new NameEmailModel();

                if (i != (nameEmails.Count - 1))
                {
                    // Each person in the shuffled list is allocated the next person in the list
                    string[] namePair  = new string[] { nameEmails[i].Name[0], nameEmails[i + 1].Name[0] };
                    string[] emailPair = new string[] { nameEmails[i].Email[0], nameEmails[i + 1].Email[0] };

                    pairing.Name  = namePair;
                    pairing.Email = emailPair;
                }
                else
                {
                    // The last person in the list is allocated the first person in the list
                    string[] namePair  = new string[] { nameEmails[i].Name[0], nameEmails[0].Name[0] };
                    string[] emailPair = new string[] { nameEmails[i].Email[0], nameEmails[0].Email[0] };

                    pairing.Name  = namePair;
                    pairing.Email = emailPair;
                }
                sortedEmails.Add(pairing);
            }
            return(sortedEmails);
        }
コード例 #2
0
        public async Task <IActionResult> SendEmail([Bind("Name,Email")] NameEmailModel nameEmailModel)
        {
            List <NameEmailModel> nameEmails = new List <NameEmailModel>();

            for (int i = 0; i < nameEmailModel.Name.Length; i++)
            {
                NameEmailModel nameEmail = new NameEmailModel();
                nameEmail.Name = new string[] { nameEmailModel.Name[i] };
                Console.WriteLine("Name: " + nameEmailModel.Name[i]);
                nameEmail.Email = new string[] { nameEmailModel.Email[i] };
                Console.WriteLine("Email: " + nameEmailModel.Email[i]);

                nameEmails.Add(nameEmail);
            }
            // Call ShuffleNames helper (list of names and emails in random order)
            HomeControllerHelpers.ShuffleNames(nameEmails);
            // Call PairUp helper (assign each giver's receiver as the next person in the shuffled list)
            List <NameEmailModel> pairedNames = HomeControllerHelpers.PairUp(nameEmails);

            // Call SendNow helper (email all players)
            HomeControllerHelpers.SendNow(pairedNames);

            return(RedirectToAction("Index"));
        }