public void Load()
        {
            NewModel();

            List <PreferenceSave> preferences = new List <PreferenceSave>();

            foreach (Participant participant in _context.Group1Participants)
            {
                preferences.Add(new PreferenceSave
                {
                    Id          = participant.ID,
                    Preferences = _context.Group2Participants.Select(x => x.ID).Reverse().ToList()
                });
            }
            foreach (Participant participant in _context.Group2Participants)
            {
                preferences.Add(new PreferenceSave
                {
                    Id          = participant.ID,
                    Preferences = _context.Group1Participants.Select(x => x.ID).Reverse().ToList()
                });
            }
            MockPersistence mockPersistence = new MockPersistence
            {
                MockData = new SaveData
                {
                    Preferences = preferences
                }
            };

            _context.Persistence = mockPersistence;
            _context.Persistence.Load("");

            _model.Load();
            for (int i = 0; i < 10; i++)
            {
                Assert.AreEqual(i, _context.Participants[i].ID);
                for (int j = 0; j < 5; j++)
                {
                    if (i < 5)
                    {
                        Assert.AreEqual(9 - j, _context.Priorities[i][j]);
                    }
                    else
                    {
                        Assert.AreEqual(4 - j, _context.Priorities[i][j]);
                    }
                }
            }
            Assert.IsTrue(_context.ParticipantsChanged);
        }
    public MainApp()
    {
        pm = new PreferencesModel(prefsPath);
        //dbm = new MySqlPartsDb();
        dbm         = new SqlPartsDb();
        mv          = new MainView();
        pm.Changed += new EventHandler(PrefsChanged);
        mv.PrefsView.OnSavePrefs               += pm.Save;
        mv.RawSqlView.OnSQLExecute             += SQLExecute;
        mv.PartsView.OnShowParts               += ShowParts;
        mv.PartsView.OnEditPart                += EditPart;
        mv.PartsView.OnNewPart                 += NewPart;
        mv.PartsView.OnDeletePart              += DeletePart;
        mv.PartsView.OnRepairMissingAttributes += RepairMissingAttributes;
        mv.PartEditView.OnSavePart             += SavePart;

        pm.Load();

        dbm.GetPartTypes(delegate(List <PartType> partTypes) {
            mv.PartsView.PartTypes = partTypes;
        }, null);
    }
    public MainApp()
    {
        pm = new PreferencesModel(prefsPath);
        //dbm = new MySqlPartsDb();
        dbm = new SqlPartsDb();
        mv = new MainView();
        pm.Changed += new EventHandler(PrefsChanged);
        mv.PrefsView.OnSavePrefs += pm.Save;
        mv.RawSqlView.OnSQLExecute += SQLExecute;
        mv.PartsView.OnShowParts += ShowParts;
        mv.PartsView.OnEditPart += EditPart;
        mv.PartsView.OnNewPart += NewPart;
        mv.PartsView.OnDeletePart += DeletePart;
        mv.PartsView.OnRepairMissingAttributes += RepairMissingAttributes;
        mv.PartEditView.OnSavePart += SavePart;

        pm.Load();

        dbm.GetPartTypes(delegate(List<PartType> partTypes) {
            mv.PartsView.PartTypes = partTypes;
        }, null);
    }