private void btnResetClass_Click(object sender, RoutedEventArgs e)
        {
            List <Participant> participants = new List <Participant>();

            foreach (var pe in dgParticipants.SelectedItems.Cast <ParticipantEdit>())
            {
                participants.Add(pe.Participant);
            }

            ClassAssignment ca = new ClassAssignment(_dm.GetParticipantClasses());

            ca.Assign(participants);
        }
        public void ClassAssignmentTest()
        {
            List <ParticipantClass> classes = new List <ParticipantClass>();

            classes.Add(new ParticipantClass("1M", null, "Class1", new ParticipantCategory('M'), 2009, 1));
            classes.Add(new ParticipantClass("1W", null, "Class1", new ParticipantCategory('W'), 2009, 2));
            classes.Add(new ParticipantClass("2M", null, "Class1", new ParticipantCategory('M'), 2011, 3));
            classes.Add(new ParticipantClass("2W", null, "Class1", new ParticipantCategory('W'), 2011, 4));

            Participant p2008M = new Participant {
                Year = 2008, Sex = new ParticipantCategory('M')
            };
            Participant p2008W = new Participant {
                Year = 2008, Sex = new ParticipantCategory('W')
            };
            Participant p2009M = new Participant {
                Year = 2009, Sex = new ParticipantCategory('M')
            };
            Participant p2009W = new Participant {
                Year = 2009, Sex = new ParticipantCategory('W')
            };
            Participant p2010M = new Participant {
                Year = 2010, Sex = new ParticipantCategory('M')
            };
            Participant p2010W = new Participant {
                Year = 2010, Sex = new ParticipantCategory('W')
            };
            Participant p2011M = new Participant {
                Year = 2011, Sex = new ParticipantCategory('M')
            };
            Participant p2011W = new Participant {
                Year = 2011, Sex = new ParticipantCategory('W')
            };
            Participant p2012M = new Participant {
                Year = 2012, Sex = new ParticipantCategory('M')
            };
            Participant p2012W = new Participant {
                Year = 2012, Sex = new ParticipantCategory('W')
            };

            ClassAssignment ca = new ClassAssignment(classes);

            // Test ClassAssignment.DetermineClass
            Assert.AreEqual("1M", ca.DetermineClass(p2008M).Id);
            Assert.AreEqual("1W", ca.DetermineClass(p2008W).Id);
            Assert.AreEqual("1M", ca.DetermineClass(p2009M).Id);
            Assert.AreEqual("1W", ca.DetermineClass(p2009W).Id);
            Assert.AreEqual("2M", ca.DetermineClass(p2010M).Id);
            Assert.AreEqual("2W", ca.DetermineClass(p2010W).Id);
            Assert.AreEqual("2M", ca.DetermineClass(p2011M).Id);
            Assert.AreEqual("2W", ca.DetermineClass(p2011W).Id);
            Assert.IsNull(ca.DetermineClass(p2012M));
            Assert.IsNull(ca.DetermineClass(p2012W));


            // Test ClassAssignment.Assign
            List <Participant> participants = new List <Participant>();

            participants.Add(p2008M);
            participants.Add(p2008W);
            participants.Add(p2009M);
            participants.Add(p2009W);
            participants.Add(p2010M);
            participants.Add(p2010W);
            participants.Add(p2011M);
            participants.Add(p2011W);
            participants.Add(p2012M);
            participants.Add(p2012W);
            ca.Assign(participants);
            foreach (var p in participants)
            {
                Assert.AreEqual(ca.DetermineClass(p), p.Class);
            }
        }
        private void btnAssignClasses_Click(object sender, RoutedEventArgs e)
        {
            ClassAssignment ca = new ClassAssignment(_dm.GetParticipantClasses());

            ca.Assign(_dm.GetParticipants());
        }