using System; using System.Collections.Generic; using System.IO.Ports; using System.Linq; using System.Text; using System.Threading; using System.Threading.Channels; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; using System.Xml.Serialization; using System.Windows.Threading; using System.Diagnostics; using SafeBagDE70.Services; namespace SafeBagDE70 { /// /// Interaction logic for MainWindow.xaml /// /// public partial class MainWindow : HandyControl.Controls.Window { private WelcomeUC _welcomeUC; private DepositSMUCv2 _depositUC; private CollectionUC _collectionUC; private InformationUC _informationUC; private ErrorUC _errorUC; private UserControl _currentUC; private UserControl _prevUC; private TimeoutUC _timeoutUC; private MaintainanceUC _maintainanceUC; private EndSessionUC _endSessionUC; private object objLock = new object(); public MainWindow() { InitializeComponent(); Loaded += MainWindow_Loaded; } private void MainWindow_Loaded(object sender, RoutedEventArgs e) { AppData.Init(); if (_welcomeUC == null) _welcomeUC = new WelcomeUC(); if (_collectionUC == null) _collectionUC = new CollectionUC(); if (_informationUC == null) _informationUC = new InformationUC(); if (_errorUC == null) _errorUC = new ErrorUC(); if (_depositUC == null) _depositUC = new DepositSMUCv2(); if (_timeoutUC == null) _timeoutUC = new TimeoutUC(); if (_maintainanceUC == null) _maintainanceUC = new MaintainanceUC(); if (_endSessionUC == null) _endSessionUC = new EndSessionUC(); gridMain.Children.Add(_welcomeUC); gridMain.Children.Add(_depositUC); gridMain.Children.Add(_collectionUC); gridMain.Children.Add(_informationUC); gridMain.Children.Add(_errorUC); gridMain.Children.Add(_timeoutUC); gridMain.Children.Add(_maintainanceUC); gridMain.Children.Add(_endSessionUC); ShowWelcomeScreen(); //ShowDepositScreen(); } public void HideAll() { lock(objLock) { foreach (var item in gridMain.Children) { if (item != null) (item as UserControl).Visibility = Visibility.Hidden; } //_collectionUC.Visibility = Visibility.Hidden; //_informationUC.Visibility = Visibility.Hidden; //_errorUC.Visibility = Visibility.Hidden; //_depositUC.Visibility = Visibility.Hidden; //_welcomeUC.Visibility = Visibility.Hidden; //_maintainanceUC.Visibility=Visibility.Hidden; //_endSessionUC.Visibility = Visibility.Hidden; SoundManager.StopWarningSound(); } } public void ShowEndSessionScreen() { _prevUC = _currentUC; HideAll(); _endSessionUC.Visibility= Visibility.Visible; } public void ShowInformationScreen(string strInfor,bool bContinue=false,bool bPlaySound=true,List lstControls=null) { _prevUC = _currentUC; _currentUC = _informationUC; HideAll(); _informationUC.Visibility = Visibility.Visible; _informationUC.ShowInfor(strInfor, bContinue, bPlaySound,lstControls); } public void ShowErrorScreen(string strError) { _prevUC = _currentUC; _currentUC = _errorUC; HideAll(); _errorUC.Visibility = Visibility.Visible; _errorUC.ShowInfor(strError); } public void ShowWelcomeScreen() { _depositUC.StopTimers(); _depositUC.StopWelcomeTimer(); _prevUC = _currentUC; _currentUC = _welcomeUC; HideAll(); _welcomeUC.Init(); _welcomeUC.Visibility = Visibility.Visible; } public void ShowDepositScreen(bool bInit=true) { _depositUC.ResetTimers(); _prevUC = _currentUC; _currentUC = _depositUC; HideAll(); _depositUC.Visibility = Visibility.Visible; if(bInit) { _depositUC.EndTransaction(); _depositUC.InitTransaction(); } } public void ShowCollectionScreen() { _prevUC = _currentUC; _currentUC = _collectionUC; HideAll(); _collectionUC.Init(); _collectionUC.Visibility = Visibility.Visible; } public bool IsMaintainanceScreen() { return _currentUC == _maintainanceUC; } public DepositSMUCv2 GetDepositScreen() { return _depositUC; } public void ShowMaintainanceScreen() { _prevUC = _currentUC; HideAll(); _maintainanceUC.Visibility = Visibility.Visible; } public void ShowTimeoutScreen() { _prevUC = _currentUC; HideAll(); _timeoutUC.Visibility = Visibility.Visible; } public void StopTimers() { _depositUC.StopTimers(); } public void ResetTimers() { _depositUC.ResetTimers(); } public void BackScreen() { HideAll(); _prevUC.Visibility = Visibility.Visible; _currentUC = _prevUC; } } }