Exemplo n.º 1
0
        /// <summary>
        /// Update the current view model to 'viewModel'
        /// </summary>
        /// <param name="viewModel">The new ViewModel</param>
        private void ChangeViewModel(IScreenViewModel viewModel)
        {
            // Make sure the collection of View Models contains this viewModel
            if (!ScreensViewModels.Contains(viewModel))
            {
                ScreensViewModels.Add(viewModel);
            }

            // Use the selected view model
            CurrentScreenViewModel = ScreensViewModels.FirstOrDefault(vm => vm == viewModel);
        }
Exemplo n.º 2
0
        public ApplicationViewModel(Person connectedPerson, IMessageBoxService messageBoxService)
            : base(messageBoxService)
        {
            _connectedPersonID = connectedPerson.personID;

            // Create a list of all possible screens
            List <IScreenViewModel> allScreens = new List <IScreenViewModel>();

            allScreens.Add(new SchoolInfoViewModel(connectedPerson));
            allScreens.Add(new ContactsInfoViewModel(connectedPerson));
            allScreens.Add(new StudentGradesViewModel(connectedPerson, messageBoxService));
            allScreens.Add(new WeeklyScheduleViewModel(connectedPerson));
            allScreens.Add(new CalenderViewModel(connectedPerson));
            allScreens.Add(new MessagesDisplayViewModel(connectedPerson));

            allScreens.Add(new CreateMessageViewModel(connectedPerson, RefreshScreensCommand, messageBoxService));
            allScreens.Add(new LessonSummaryViewModel(connectedPerson, RefreshScreensCommand, messageBoxService));
            allScreens.Add(new GradesReportViewModel(connectedPerson, RefreshScreensCommand, messageBoxService));
            allScreens.Add(new EventManagementViewModel(connectedPerson, RefreshScreensCommand, messageBoxService));
            allScreens.Add(new ClassManagementViewModel(connectedPerson, RefreshScreensCommand, messageBoxService));
            allScreens.Add(new RoomManagementViewModel(connectedPerson, RefreshScreensCommand, messageBoxService));
            allScreens.Add(new CourseManagementViewModel(connectedPerson, RefreshScreensCommand, messageBoxService));
            allScreens.Add(new LessonManagementViewModel(connectedPerson, RefreshScreensCommand, messageBoxService));
            allScreens.Add(new UserCreationViewModel(connectedPerson, RefreshScreensCommand, messageBoxService));
            allScreens.Add(new UserUpdateViewModel(connectedPerson, RefreshScreensCommand, messageBoxService));
            allScreens.Add(new SchoolManagementViewModel(connectedPerson, RefreshScreensCommand, messageBoxService));

            // Use only the screens that are relevent to the current user
            foreach (IScreenViewModel screen in allScreens)
            {
                if (screen.HasRequiredPermissions)
                {
                    screen.Initialize(connectedPerson);
                    ScreensViewModels.Add(screen);
                }
            }

            // Set starting page
            CurrentScreenViewModel = ScreensViewModels[0];
        }