public AttendanceViewModel(IStudentsRepository studentsRepository, BiometricsRepository biometricsRepository, RelBiometricsRepository relBiometricsRepository, AttendancesRepository attendancesRepository)
        {
            _studentsRepository      = studentsRepository;
            _biometricsRepository    = biometricsRepository;
            _relBiometricsRepository = relBiometricsRepository;
            _attendancesRepository   = attendancesRepository;

            Initialize(true);
            _attendanceLogs     = new ObservableCollection <AttendanceLog>();
            _mainClockViewModel = ContainerHelper.Container.Resolve <MainClockViewModel>();
            ResendCommand       = new RelayCommand(OnResend);
            Start();    //Begin capture
        }
        public MainWindowViewModel()
        {
            LoadConfiguration();
            SMSSetup.Instance.StartSMSService();
            _loginViewModel            = ContainerHelper.Container.Resolve <LoginViewModel>();
            _menuViewModel             = ContainerHelper.Container.Resolve <MenuViewModel>();
            _mainClockViewModel        = ContainerHelper.Container.Resolve <MainClockViewModel>();
            _attendanceViewModel       = ContainerHelper.Container.Resolve <AttendanceViewModel>();
            _sectionViewModel          = ContainerHelper.Container.Resolve <SectionViewModel>();
            _groupViewModel            = ContainerHelper.Container.Resolve <GroupViewModel>();
            _studentViewModel          = ContainerHelper.Container.Resolve <StudentViewModel>();
            _reportViewModel           = ContainerHelper.Container.Resolve <ReportViewModel>();
            _addEditStudentViewModel   = ContainerHelper.Container.Resolve <AddEditStudentViewModel>();
            _settingsViewModel         = ContainerHelper.Container.Resolve <SettingsViewModel>();
            _configManagementViewModel = ContainerHelper.Container.Resolve <ConfigManagementViewModel>();
            _userManagementViewModel   = ContainerHelper.Container.Resolve <UserManagementViewModel>();

            LogoutCommand = new RelayCommand(OnLogout);

            //Setup Window Content
            _currentViewModel = _loginViewModel;
            _menu             = null;
            _adminMode        = false;

            _loginViewModel.LoginRequested += NavToMenu;
            _loginViewModel.EntryRequested += NavToFreeLogin;

            _menuViewModel.NavToAttendanceRequested += NavToAttendance;
            _menuViewModel.NavToSettingsRequested   += NavToSettings;
            _menuViewModel.NavToStudentRequested    += NavToStudent;
            _menuViewModel.NavToSectionRequested    += NavToSection;
            _menuViewModel.NavToGroupRequested      += NavToGroup;
            _menuViewModel.NavToReportRequested     += NavToReport;

            _studentViewModel.AddRequested   += NavToAddStudent;
            _studentViewModel.EditRequested  += NavToEditStudent;
            _addEditStudentViewModel.Done    += NavToStudent;
            _addEditStudentViewModel.EditMode = false;

            _settingsViewModel.NavToHomeRequested   += NavToHome;
            _settingsViewModel.NavToConfigRequested += NavToConfig;
            _settingsViewModel.NavToUserRequested   += NavToUser;
        }