示例#1
0
        public void LoadData()
        {
            SaveData data;

            NewModel();
            SetupModel setupModel = new SetupModel(_context);

            setupModel.Initialize();
            ParticipantsModel participantsModel = new ParticipantsModel(_context);

            participantsModel.Initialize();
            PreferencesModel preferencesModel = new PreferencesModel(_context);

            preferencesModel.Initialize();
            AlgorithmModel algorithmModel = new AlgorithmModel(_context);

            algorithmModel.Initialize();

            _model.SaveAsData("");
            data = _persistence.MockData;

            NewModel();
            _persistence.MockData = data;
            _model.LoadData("");
            Assert.AreEqual(data, _persistence.Data);
        }
示例#2
0
        public void NewAlgorithmModel()
        {
            NewModel();
            SetupModel setupModel = _model.NewSetupModel();

            setupModel.Initialize();
            ParticipantsModel participantsModel = _model.NewParticipantsModel();

            participantsModel.Initialize();
            PreferencesModel preferencesModel = _model.NewPreferencesModel();

            preferencesModel.Initialize();
            AlgorithmModel algorithmModel = _model.NewAlgorithmModel();

            algorithmModel.Initialize();
            _context.AlgorithmsChanged = false;

            algorithmModel.CreateGaleShapleyAlgorithm();
            Assert.AreEqual(1, _context.Algorithms.Count());

            AlgorithmVisitor _visitor = new AlgorithmVisitor(null, () => Assert.Fail());

            _visitor.Visit(_context.Algorithms[0].Element);
            Assert.IsTrue(_context.AlgorithmsChanged);
        }
示例#3
0
        public async Task <ParticipantsModel> GetParticipants()
        {
            var model = new ParticipantsModel();
            var users = new List <string>();

            try
            {
                using (SqlConnection connection = new SqlConnection(_conn))
                {
                    await connection.OpenAsync();

                    using (SqlCommand command = new SqlCommand(@"dbo.[GetParticipants]", connection))
                    {
                        command.CommandType = CommandType.StoredProcedure;

                        using (SqlDataReader reader = await command.ExecuteReaderAsync())
                        {
                            while (await reader.ReadAsync())
                            {
                                users.Add(await reader.GetFieldValueAsync <string>(0));
                            }
                            reader.Close();
                        }
                    }
                    connection.Close();
                }
                model.Participants = users;
            }
            catch (Exception e)
            {
                throw e;
            }

            return(model);
        }
示例#4
0
 public ActionResult <ParticipantsModel> AddParticipant(ParticipantsModel participant)
 {
     if (participants.CreateNewParticipant(events.GetEvent(participant.eventId), divers.Get1Diver(participant.diverId)))
     {
         return(Ok());
     }
     return(BadRequest());
 }
        public ParticipantsViewModel(ParticipantsModel model, IContext context)
        {
            _model   = model;
            _context = context;

            ToSetupCommand       = new DelegateCommand(param => OnToSetupCommand());
            ToPreferencesCommand = new DelegateCommand(param => OnToPreferencesCommand());

            RefreshPage();
        }
示例#6
0
 /// <summary>
 /// Create new model
 /// </summary>
 private void NewModel()
 {
     _context = new ModelContext
     {
         TotalSize    = 10,
         SetupChanged = true
     };
     _model = new ParticipantsModel(_context);
     _model.Initialize();
     _context.ParticipantsChanged = false;
 }
示例#7
0
        private void NewViewModel()
        {
            _context   = new ModelContext();
            _model     = new ParticipantsModel(_context);
            _viewModel = new ParticipantsViewModel(_model, _context);

            SetupModel setupModel = new SetupModel(_context);

            setupModel.Initialize();

            _viewModel.RefreshPage();
        }
示例#8
0
        public void NewParticipantsModel()
        {
            NewModel();
            SetupModel setupModel = _model.NewSetupModel();

            setupModel.Initialize();
            ParticipantsModel participantsModel = _model.NewParticipantsModel();

            participantsModel.Initialize();
            _context.ParticipantsChanged = false;

            participantsModel.EditParticipant(0, "test");
            Assert.AreEqual("test", _context.Participants[0].Name);
            Assert.IsTrue(_context.ParticipantsChanged);
        }
        public bool CreateNewParticipant(EventsModel evt, DiverModel diver)
        {
            ParticipantsModel entry = new ParticipantsModel();

            entry.Event = evt;   //Foreign key
            entry.Diver = diver; //Foreign key
            entry.Score = 0;
            db.participants.Add(entry);
            db.SaveChanges();
            if (db.participants.Contains(entry))
            {
                return(true);
            }
            return(false);
        }
示例#10
0
        public void NewPreferencesModel()
        {
            NewModel();
            SetupModel setupModel = _model.NewSetupModel();

            setupModel.Initialize();
            ParticipantsModel participantsModel = _model.NewParticipantsModel();

            participantsModel.Initialize();
            PreferencesModel preferencesModel = _model.NewPreferencesModel();

            preferencesModel.Initialize();
            _context.PreferencesChanged = false;

            preferencesModel.EditPreference(0, 0, 3);
            Assert.AreEqual(3, _context.Priorities[0][0]);
            Assert.IsTrue(_context.PreferencesChanged);
        }
        private void NewViewModel()
        {
            _context   = new ModelContext();
            _model     = new AlgorithmModel(_context);
            _viewModel = new AlgorithmViewModel(_model, _context);

            SetupModel setupModel = new SetupModel(_context);

            setupModel.Initialize();
            ParticipantsModel participantsModel = new ParticipantsModel(_context);

            participantsModel.Initialize();
            PreferencesModel preferencesModel = new PreferencesModel(_context);

            preferencesModel.Initialize();

            _viewModel.RefreshPage();
        }
示例#12
0
        public void NewRunModel()
        {
            StablePairsEvaluation          stablePairsEvaluation          = new StablePairsEvaluation();
            GroupHappinessEvaluation       groupHappinessEvaluation       = new GroupHappinessEvaluation();
            EgalitarianHappinessEvaluation egalitarianHappinessEvaluation = new EgalitarianHappinessEvaluation();

            NewModel();
            SetupModel setupModel = _model.NewSetupModel();

            setupModel.Initialize();
            ParticipantsModel participantsModel = _model.NewParticipantsModel();

            participantsModel.Initialize();
            PreferencesModel preferencesModel = _model.NewPreferencesModel();

            preferencesModel.Initialize();
            AlgorithmModel algorithmModel = _model.NewAlgorithmModel();

            algorithmModel.Initialize();
            RunModel runModel = _model.NewRunModel();

            runModel.Initialize();

            int  receivedEvents = 0;
            Task task;

            NewModel();

            runModel.AlgorithmStarted  += (object sender, AlgorithmEventArgs e) => receivedEvents++;
            runModel.AlgorithmFinished += (object sender, AlgorithmEventArgs e) =>
            {
                receivedEvents++;
                Assert.AreEqual(_context.Algorithms[e.Index].Algorithm.Evaluate(stablePairsEvaluation), e.StablePairs);
                Assert.AreEqual(_context.Algorithms[e.Index].Algorithm.Evaluate(groupHappinessEvaluation), e.GroupHappiness);
                Assert.AreEqual(_context.Algorithms[e.Index].Algorithm.Evaluate(egalitarianHappinessEvaluation), e.EgalitarianHappiness);
            };
            task = Task.Run(async() => {
                await runModel.RunSingleAlgorithm(0);
                Assert.AreEqual(2, receivedEvents);
            });
        }
示例#13
0
        private void NewModel()
        {
            _context = new ModelContext();
            SetupModel setupModel = new SetupModel(_context);

            setupModel.Initialize();
            ParticipantsModel participantsModel = new ParticipantsModel(_context);

            participantsModel.Initialize();
            PreferencesModel preferencesModel = new PreferencesModel(_context);

            preferencesModel.Initialize();
            AlgorithmModel algorithmModel = new AlgorithmModel(_context);

            algorithmModel.Initialize();
            algorithmModel.CreateGaleShapleyAlgorithm();
            algorithmModel.CreateGeneticAlgorithm();
            _model = new RunModel(_context);
            _model.Initialize();
            _context.AlgorithmsChanged = false;
        }
示例#14
0
        private void NewViewModel()
        {
            _context   = new ModelContext();
            _model     = new RunModel(_context);
            _viewModel = new RunViewModel(_model, _context);

            SetupModel setupModel = new SetupModel(_context);

            setupModel.Initialize();
            ParticipantsModel participantsModel = new ParticipantsModel(_context);

            participantsModel.Initialize();
            PreferencesModel preferencesModel = new PreferencesModel(_context);

            preferencesModel.Initialize();
            AlgorithmModel algorithmModel = new AlgorithmModel(_context);

            algorithmModel.Initialize();

            algorithmModel.CreateGaleShapleyAlgorithm();
            algorithmModel.CreateGeneticAlgorithm();

            _viewModel.RefreshPage();
        }
示例#15
0
        public void SaveData()
        {
            NewModel();
            SetupModel setupModel = new SetupModel(_context);

            setupModel.Initialize();
            ParticipantsModel participantsModel = new ParticipantsModel(_context);

            participantsModel.Initialize();
            PreferencesModel preferencesModel = new PreferencesModel(_context);

            preferencesModel.Initialize();
            AlgorithmModel algorithmModel = new AlgorithmModel(_context);

            algorithmModel.Initialize();

            _model.SaveAsData("");
            Assert.IsNotNull(_persistence.MockData);
            Assert.IsNotNull(_persistence.MockData.Group1Name);
            Assert.IsNotNull(_persistence.MockData.Group2Name);
            Assert.IsNotNull(_persistence.MockData.Participants);
            Assert.IsNotNull(_persistence.MockData.Preferences);
            Assert.IsNotNull(_persistence.MockData.Algorithms);
        }