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()); }
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()); }