示例#1
0
        private void IdReceived(int obj)
        {
            TrainingSession t = TrainingSessionService.GetByid(obj);

            // retrieve the good picture in regards to the available seats
            var pictureTraining = "";

            if (t.AvailableSeat == 0)
            {
                pictureTraining = "unavailable.png";
            }
            else if (t.AvailableSeat < 3)
            {
                pictureTraining = "warning.png";
            }

            PictureTrainingSessionViewModel pictureTrainingSessionViewModels = new PictureTrainingSessionViewModel(t, pictureTraining)
            {
                AvailableSeat = t.AvailableSeat, Date = t.Date, Id = t.Id, PictureTraining = pictureTraining
            };


            Items.Add(pictureTrainingSessionViewModels);
            List <PictureTrainingSessionViewModel> trainingSessions = Items.OrderBy(s => s.Date).ToList();

            Items.Clear();

            foreach (PictureTrainingSessionViewModel item in trainingSessions)
            {
                Items.Add(item);
            }
        }
示例#2
0
        public async Task Run_For_5_Generations()
        {
            StartTrainingSessionRequest startTrainingSessionRequest = new StartTrainingSessionRequest
            {
                Id             = Guid.NewGuid(),
                DateTime       = DateTime.Now,
                TrainingRoomId = TrainingRoomId,
                UserId         = UserId
            };
            StartTrainingSessionResponse startTrainingSessionResponse = await TrainingSessionService.StartTrainingSessionAsync(startTrainingSessionRequest);

            Guid trainingSessionId = startTrainingSessionResponse.TrainingSession.Id;

            int generations = 5;
            PostOrganismsScoreResponse postOrganismsScoreResponse = default;

            for (int i = 1; i < generations; i++)
            {
                GetOrganismsRequest  getOrganismsRequest  = GetOrganismsRequest(trainingSessionId);
                GetOrganismsResponse getOrganismsResponse = await TrainingSessionService.GetOrganismsAsync(getOrganismsRequest);

                PostOrganismsScoreRequest postOrganismsScoreRequest = PostOrganismsScoreRequest(trainingSessionId, getOrganismsResponse);
                postOrganismsScoreResponse = await TrainingSessionService.PostOrganismsScoreAsync(postOrganismsScoreRequest);
            }

            Assert.IsTrue(postOrganismsScoreResponse.Success);
            Assert.AreEqual("Successfully updated the organisms and advanced a generation!", postOrganismsScoreResponse.Message);
        }
示例#3
0
        public async Task StartTrainingSessionAsync_Should_Create_A_New_Session()
        {
            StartTrainingSessionRequest  startTrainingSessionRequest  = StartTrainingSessionRequest(TrainingRoomId, UserId);
            StartTrainingSessionResponse startTrainingSessionResponse = await TrainingSessionService.StartTrainingSessionAsync(startTrainingSessionRequest);

            Assert.IsTrue(startTrainingSessionResponse.Success);
        }
示例#4
0
        public async Task StartTrainingSessionAsync_Should_Fail_Due_To_Unknown_TrainingRoom_Id()
        {
            StartTrainingSessionRequest  startTrainingSessionRequest  = StartTrainingSessionRequest(Guid.NewGuid(), UserId);
            StartTrainingSessionResponse startTrainingSessionResponse = await TrainingSessionService.StartTrainingSessionAsync(startTrainingSessionRequest);

            Assert.IsFalse(startTrainingSessionResponse.Success);
            Assert.AreEqual("Training room does not exist.", startTrainingSessionResponse.Message);
        }
示例#5
0
        public async Task EndTrainingSessionAsync_Should_Fail_Due_To_Unknown_TrainingSession_Id()
        {
            EndTrainingSessionRequest  endTrainingSessionRequest  = EndTrainingSessionRequest(Guid.NewGuid());
            EndTrainingSessionResponse endTrainingSessionResponse = await TrainingSessionService.EndTrainingSessionAsync(endTrainingSessionRequest);

            Assert.IsFalse(endTrainingSessionResponse.Success);
            Assert.AreEqual("Training session does not exist.", endTrainingSessionResponse.Message);
        }
示例#6
0
        /// <summary>
        /// Register a user to a training Session and publish it to add the training to user's trainings list
        /// </summary>
        /// <param name="obj">The training on which the user would like to register </param>
        private async void SaveRegister(PictureTrainingSessionViewModel obj)
        {
            try
            {
                // If there is not a single seat available for this training session, we show an alert.
                if (obj.AvailableSeat <= 0)
                {
                    await Application.Current.MainPage.DisplayAlert("Aucune place disponible pour cette session.", "", "OK");

                    return;
                }

                bool answer = await Application.Current.MainPage.DisplayAlert("Confirmation d'inscription", "Êtes-vous sûr de vouloir vous inscrire à la session du : " + obj.Date, "Oui", "Non");

                if (answer)
                {
                    int userId = int.Parse(Application.Current.Properties["UserId"].ToString());

                    //Register the user to the training Session in parameter
                    int add = TrainingSessionService.SaveRegister(userId, obj.Id);

                    if (add != 0)
                    {
                        TrainingSession t = new TrainingSession()
                        {
                            Id            = obj.Id,
                            AvailableSeat = obj.AvailableSeat,
                            Date          = obj.Date
                        };
                        //Update the number of available seats
                        t.AvailableSeat -= 1;
                        TrainingSessionService.Update(t);

                        //Remove the session into the available sessions for the user.
                        ObservableCollection <TrainingSession> trainingSessions = new ObservableCollection <TrainingSession>(TrainingSessionService.GetAllByUserId(userId));

                        if (trainingSessions != null)
                        {
                            Items.Remove(obj);
                        }

                        //Event publish to refresh the user's trainings list
                        Event.GetEvent <SentEvent>().Publish(obj.Id);
                        Event.GetEvent <RefreshAvailableTrainingSessionsListEvent>().Publish();

                        await Application.Current.MainPage.DisplayAlert("Validation", "Vous êtes désormais inscrit à la session du : " + obj.Date, "Ok");
                    }
                    else
                    {
                        //Message d'erreur;
                    }
                }
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }
示例#7
0
        public AddSessionScheduleView(ScheduleService scheduleService,
                                      TrainingSessionService sessionService,
                                      TrainingSessionListViewModel sessionList) : this()
        {
            _sessionListViewModel = sessionList;

            _scheduleToAdd = new AddSessionScheduleViewModel(scheduleService, sessionList.SelectedTrainingSession);
            DataContext    = _scheduleToAdd;
        }
示例#8
0
 public MyTrainingsPageViewModel(INavigationService navigationService, TrainingSessionService trainingSessionService, IEventAggregator eventAggregator)
     : base(navigationService, trainingSessionService)
 {
     Title      = "Mes sessions";
     Unregister = new DelegateCommand <TrainingSession>(SaveUnregister);
     Event      = eventAggregator;
     Event.GetEvent <SentEvent>().Subscribe(IdReceived);
     InitializeItems();
 }
示例#9
0
        public AddSessionView(TrainingSessionListViewModel trainingSessionListViewModel, TrainingSessionService trainingSessionService, CourseService courseService) : this()
        {
            _trainingSessionListViewModel = trainingSessionListViewModel;
            _trainingSessionService       = trainingSessionService;
            _courseService = courseService;

            _sessionToAdd = new AddTrainingSessionViewModel(trainingSessionService, courseService);
            DataContext   = _sessionToAdd;
        }
示例#10
0
        public async Task EndTrainingSessionAsync_Should_Successfully_End_The_TrainingSession()
        {
            StartTrainingSessionRequest  startTrainingSessionRequest  = StartTrainingSessionRequest(TrainingRoomId, UserId);
            StartTrainingSessionResponse startTrainingSessionResponse = await TrainingSessionService.StartTrainingSessionAsync(startTrainingSessionRequest);

            Guid trainingSessionId = startTrainingSessionResponse.TrainingSession.Id;
            EndTrainingSessionRequest  endTrainingSessionRequest  = EndTrainingSessionRequest(trainingSessionId);
            EndTrainingSessionResponse endTrainingSessionResponse = await TrainingSessionService.EndTrainingSessionAsync(endTrainingSessionRequest);

            Assert.IsTrue(endTrainingSessionResponse.Success);
        }
示例#11
0
        public EditSessionViewModel(TrainingSessionService trainingSessionService, CourseService courseService, TrainingSessionViewModel sessionToEdit)
        {
            _trainingSessionService = trainingSessionService;
            _courseService          = courseService;
            SessionToEdit           = sessionToEdit;

            CourseList     = new ObservableCollection <DataLayer.EfClasses.Course>(courseService.GetCourses());
            SelectedCourse = CourseList.First(c => c.CourseName == sessionToEdit.CourseName);

            CopyEditableFields(sessionToEdit);
        }
示例#12
0
 /// <summary>
 /// Constructor of the viewModel
 /// </summary>
 /// <param name="trainingSessionService"></param>
 /// <param name="navigationService"></param>
 /// <param name="eventAggregator"></param>
 public TrainingSessionsListPageViewModel(TrainingSessionService trainingSessionService, INavigationService navigationService, IEventAggregator eventAggregator)
     : base(navigationService, trainingSessionService)
 {
     Title        = "Futures sessions";
     SwitchToggle = new DelegateCommand(SwitchToggled);
     Register     = new DelegateCommand <PictureTrainingSessionViewModel>(SaveRegister);
     // If we disable it, it will initialize the list with default values.
     this.DisableSwitch();
     Event = eventAggregator;
     Event.GetEvent <SentEventUnregister>().Subscribe(IdReceived);
     Event.GetEvent <RefreshAvailableTrainingSessionsListEvent>().Subscribe(RefreshAvailableTrainingSessionsList);
 }
示例#13
0
        private void IdReceived(int id)
        {
            Items.Add(TrainingSessionService.GetByid(id));
            List <TrainingSession> trainingSessions = Items.OrderBy(s => s.Date).ToList();

            Items.Clear();

            foreach (TrainingSession item in trainingSessions)
            {
                Items.Add(item);
            }
        }
示例#14
0
        public AddTrainingSessionViewModel(TrainingSessionService trainingSessionService, CourseService courseService)
        {
            _trainingSessionService = trainingSessionService;
            _courseService          = courseService;

            CourseList = new ObservableCollection <DataLayer.EfClasses.Course>(_courseService.GetCourses());

            if (CourseList.Count > 0)
            {
                SelectedCourse = CourseList.First();
            }
        }
示例#15
0
        public TrainingLogPageViewModel(TrainingSessionService trainingSessionService, DialogFactory dialogs)
        {
            _trainingSessionService = trainingSessionService;
            _dialogs = dialogs;

            OpenAddSessionDialogCommand  = new Command(OpenAddSessionDialogAsync);
            OpenEditSessionDialogCommand = new Command <TrainingSession>(OpenEditSessionDialogAsync);
            DeleteSessionCommand         = new Command <TrainingSession>(DeleteSession);

            OpenExportDialogCommand = new Command(OpenExportDialog);

            LoadTrainingSessionsAsync();
        }
示例#16
0
        public MainWindow()
        {
            InitializeComponent();

            // GenerateMockData.GenerateAllData();

            MainContext = new TecContext();

            _candidateService       = new CandidateService(MainContext);
            _candidateListViewModel = new CandidateListViewModel(_candidateService);

            _companyService       = new CompanyService(MainContext);
            _companyListViewModel = new CompanyListViewModel(_companyService);

            _qualificationService       = new QualificationService(MainContext);
            _qualificationListViewModel = new QualificationListViewModel(_qualificationService);

            _jobHistoryService       = new JobHistoryService(MainContext);
            _jobHistoryListViewModel = new JobHistoryListViewModel(_jobHistoryService);

            _placementService       = new PlacementService(MainContext);
            _placementListViewModel = new PlacementListViewModel(_placementService);

            _openingService       = new OpeningService(MainContext);
            _openingListViewModel = new OpeningListViewModel(_openingService);

            _courseService       = new CourseService(MainContext);
            _courseListViewModel = new CourseListViewModel(_courseService);

            _trainingSessionService       = new TrainingSessionService(MainContext);
            _scheduleService              = new ScheduleService(MainContext);
            _trainingSessionListViewModel = new TrainingSessionListViewModel(_trainingSessionService);


            CandidateTab.DataContext     = _candidateListViewModel;
            CompanyTab.DataContext       = _companyListViewModel;
            QualificationTab.DataContext = _qualificationListViewModel;
            HistoryTab.DataContext       = _jobHistoryListViewModel;
            OpeningTab.DataContext       = _openingListViewModel;
            PlacementTab.DataContext     = _placementListViewModel;
            CourseTab.DataContext        = _courseListViewModel;
            SessionTab.DataContext       = _trainingSessionListViewModel;
        }
示例#17
0
        public async Task GetOrganismsAsync_Should_Successfully_Return_15_Organisms()
        {
            StartTrainingSessionRequest startTrainingSessionRequest = new StartTrainingSessionRequest
            {
                Id             = Guid.NewGuid(),
                DateTime       = DateTime.Now,
                TrainingRoomId = TrainingRoomId,
                UserId         = UserId
            };
            StartTrainingSessionResponse startTrainingSessionResponse = await TrainingSessionService.StartTrainingSessionAsync(startTrainingSessionRequest);

            Guid trainingSessionId = startTrainingSessionResponse.TrainingSession.Id;

            GetOrganismsRequest  getOrganismsRequest  = GetOrganismsRequest(trainingSessionId);
            GetOrganismsResponse getOrganismsResponse = await TrainingSessionService.GetOrganismsAsync(getOrganismsRequest);

            Assert.IsTrue(getOrganismsResponse.Success);
            Assert.AreEqual(OrganismCount, getOrganismsResponse.Organisms.Count);
        }
示例#18
0
        private async void SaveUnregister(TrainingSession obj)
        {
            try
            {
                bool answer = await Application.Current.MainPage.DisplayAlert("Confirmation d'annulation", "Êtes-vous sûr de vouloir vous désinscrire à la session du : " + obj.Date, "Oui", "Non");

                if (answer)
                {
                    int userId = int.Parse(Application.Current.Properties["UserId"].ToString());

                    //Register the user to the training Session in parameter
                    int delete = TrainingSessionService.SaveUnregister(userId, obj.Id);


                    if (delete != 0)
                    {
                        obj.AvailableSeat += 1;
                        TrainingSessionService.Update(obj);

                        ObservableCollection <TrainingSession> trainingSessions = new ObservableCollection <TrainingSession>(TrainingSessionService.GetAllByUserId(userId));

                        if (trainingSessions != null)
                        {
                            Items.Remove(obj);
                        }

                        //Event publish to refresh the user's trainings list
                        Event.GetEvent <SentEventUnregister>().Publish(obj.Id);
                        Event.GetEvent <RefreshAvailableTrainingSessionsListEvent>().Publish();

                        await Application.Current.MainPage.DisplayAlert("Confirmation", "Vous êtes désinscrit à la session du : " + obj.Date, "Ok");
                    }
                    else
                    {
                        //Message d'erreur;
                    }
                }
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }
示例#19
0
        public async Task PostOrganismsAsync_Should_Successfully_Start_A_New_Generation()
        {
            StartTrainingSessionRequest startTrainingSessionRequest = new StartTrainingSessionRequest
            {
                Id             = Guid.NewGuid(),
                DateTime       = DateTime.Now,
                TrainingRoomId = TrainingRoomId,
                UserId         = UserId
            };
            StartTrainingSessionResponse startTrainingSessionResponse = await TrainingSessionService.StartTrainingSessionAsync(startTrainingSessionRequest);

            Guid trainingSessionId = startTrainingSessionResponse.TrainingSession.Id;

            GetOrganismsRequest  getOrganismsRequest  = GetOrganismsRequest(trainingSessionId);
            GetOrganismsResponse getOrganismsResponse = await TrainingSessionService.GetOrganismsAsync(getOrganismsRequest);

            PostOrganismsScoreRequest  postOrganismsScoreRequest  = PostOrganismsScoreRequest(trainingSessionId, getOrganismsResponse);
            PostOrganismsScoreResponse postOrganismsScoreResponse = await TrainingSessionService.PostOrganismsScoreAsync(postOrganismsScoreRequest);

            Assert.IsTrue(postOrganismsScoreResponse.Success);
            Assert.AreEqual("Successfully updated the organisms and advanced a generation!", postOrganismsScoreResponse.Message);
        }
示例#20
0
 public ViewModelBase(INavigationService navigationService, TrainingSessionService trainingSessionService)
 {
     NavigationService      = navigationService;
     TrainingSessionService = trainingSessionService;
 }
示例#21
0
 public TrainingSessionsResultsPageViewModel(INavigationService navigationService, TrainingSessionService trainingSessionService)
     : base(navigationService, trainingSessionService)
 {
     Title = "Mes résultats";
     InitializeItems();
 }
示例#22
0
        private void InitializeItems()
        {
            IEnumerable <ResultTrainingSessionViewModel> LstTrainingSession = TrainingSessionService.GetResultsByUserId(int.Parse(Application.Current.Properties["UserId"].ToString()));

            Items = new ObservableCollection <ResultTrainingSessionViewModel>(LstTrainingSession);
        }
示例#23
0
 private void InitializeItems()
 {
     LstTrainingSession = TrainingSessionService.GetAllByUserId(int.Parse(Application.Current.Properties["UserId"].ToString()));
     Items = new ObservableCollection <TrainingSession>(LstTrainingSession);
 }
示例#24
0
 public EditSessionView(TrainingSessionViewModel sessionToEdit, TrainingSessionService sessionService, CourseService courseService) : this()
 {
     _sessionToEdit = new EditSessionViewModel(sessionService, courseService, sessionToEdit);
     DataContext    = _sessionToEdit;
 }
示例#25
0
 /// <summary>
 /// Get the next available training sessions ordered by date.
 /// </summary>
 /// <returns>A collection of <see cref="TrainingSession"/>.</returns>
 private IEnumerable <PictureTrainingSessionViewModel> GetAvailableTrainingSessions()
 {
     return(TrainingSessionService
            .GetAllAvailable(int.Parse(Application.Current.Properties["UserId"].ToString()))
            .OrderBy(s => s.Date));
 }