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); } }
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); }
public async Task StartTrainingSessionAsync_Should_Create_A_New_Session() { StartTrainingSessionRequest startTrainingSessionRequest = StartTrainingSessionRequest(TrainingRoomId, UserId); StartTrainingSessionResponse startTrainingSessionResponse = await TrainingSessionService.StartTrainingSessionAsync(startTrainingSessionRequest); Assert.IsTrue(startTrainingSessionResponse.Success); }
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); }
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); }
/// <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); } }
public AddSessionScheduleView(ScheduleService scheduleService, TrainingSessionService sessionService, TrainingSessionListViewModel sessionList) : this() { _sessionListViewModel = sessionList; _scheduleToAdd = new AddSessionScheduleViewModel(scheduleService, sessionList.SelectedTrainingSession); DataContext = _scheduleToAdd; }
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(); }
public AddSessionView(TrainingSessionListViewModel trainingSessionListViewModel, TrainingSessionService trainingSessionService, CourseService courseService) : this() { _trainingSessionListViewModel = trainingSessionListViewModel; _trainingSessionService = trainingSessionService; _courseService = courseService; _sessionToAdd = new AddTrainingSessionViewModel(trainingSessionService, courseService); DataContext = _sessionToAdd; }
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); }
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); }
/// <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); }
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); } }
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(); } }
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(); }
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; }
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); }
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); } }
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); }
public ViewModelBase(INavigationService navigationService, TrainingSessionService trainingSessionService) { NavigationService = navigationService; TrainingSessionService = trainingSessionService; }
public TrainingSessionsResultsPageViewModel(INavigationService navigationService, TrainingSessionService trainingSessionService) : base(navigationService, trainingSessionService) { Title = "Mes résultats"; InitializeItems(); }
private void InitializeItems() { IEnumerable <ResultTrainingSessionViewModel> LstTrainingSession = TrainingSessionService.GetResultsByUserId(int.Parse(Application.Current.Properties["UserId"].ToString())); Items = new ObservableCollection <ResultTrainingSessionViewModel>(LstTrainingSession); }
private void InitializeItems() { LstTrainingSession = TrainingSessionService.GetAllByUserId(int.Parse(Application.Current.Properties["UserId"].ToString())); Items = new ObservableCollection <TrainingSession>(LstTrainingSession); }
public EditSessionView(TrainingSessionViewModel sessionToEdit, TrainingSessionService sessionService, CourseService courseService) : this() { _sessionToEdit = new EditSessionViewModel(sessionService, courseService, sessionToEdit); DataContext = _sessionToEdit; }
/// <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)); }