コード例 #1
0
        private List <GeneratedVictim> GroupByDept(List <Victim> victimInputs, GenerateOptions options)
        {
            List <Victim> sortedVictims = victimInputs.OrderBy(p => p.Dept).ThenBy(q => q.Name).ToList();
            DateTime      sendOutTime   = options.StartAtDateTime;

            List <GeneratedVictim> output = new List <GeneratedVictim>();

            foreach (Victim victim in sortedVictims)
            {
                sendOutTime = GenerateNextSendOutTime(sendOutTime, options);

                GeneratedVictim generatedVictim = new GeneratedVictim(victim.Name, victim.Email, sendOutTime, victim.Dept);

                sendOutTime = sendOutTime.AddMinutes(options.MinutesBetweenScheduledEmails);

                output.Add(generatedVictim);
            }

            return(output.OrderBy(p => p.SendOutTime).ToList());
        }
コード例 #2
0
        private List <GeneratedVictim> RandomizeVictims(List <Victim> victimInputs, GenerateOptions options)
        {
            DateTime sendOutTime = options.StartAtDateTime;

            List <GeneratedVictim> output = new List <GeneratedVictim>();

            Console.WriteLine("Shuffling...");
            List <Victim> shuffled = victimInputs.OrderBy(a => Guid.NewGuid()).ToList();

            foreach (Victim victim in shuffled)
            {
                sendOutTime = GenerateNextSendOutTime(sendOutTime, options);

                GeneratedVictim generatedVictim = new GeneratedVictim(victim.Name, victim.Email, sendOutTime, victim.Dept);

                sendOutTime = sendOutTime.AddMinutes(options.MinutesBetweenScheduledEmails);

                output.Add(generatedVictim);
            }

            return(output.OrderBy(p => p.SendOutTime).ToList());
        }