private void InitPayment()
        {
            Debug.Log("CashmaticApp", "InitPayment");
            int amountLeft = Global.subtotale;

            if (_ob.panda.OnPayment)
            {
                int saldato = CashmaticCommands.ReadSaldato();
                amountLeft = Global.subtotale - saldato;
            }
            else
            {
                CashmaticCommands.DeleteCashmaticFiles();
                CashmaticCommands.WriteSubtotale(Global.subtotale);
                _ob.panda.OnPayment = true;
            }

            tblPrice.Text = String.Format("{0:0.00}€", amountLeft / (double)100);

            SetSaldatoChangeListener();
            SetPagatoChangeListener();
            SetErogatoChangeListener();
            SetNonerogatoChangeListener();
            SetErogazioneChangeListener();
        }
        private void OnErogazioneChange(object source, FileSystemEventArgs e)
        {
            Debug.Log("CashmaticApp", "OnErogazioneChange");
            FileInfo file = new FileInfo(e.FullPath);

            while (Helper.isFileLocked(file))
            {
                Thread.Sleep(50);
            }
            try
            {
                int saldato    = CashmaticCommands.ReadSaldato();
                int erogazione = CashmaticCommands.ReadErogazione();
                int pagato     = CashmaticCommands.ReadPagato();
                saldato = (Global.subtotale - saldato);

                if (saldato < 0)
                {
                    saldato = saldato * -1;
                }
                saldato = saldato - erogazione;

                Application.Current.Dispatcher.BeginInvoke(
                    DispatcherPriority.Background, new Action(() => tblPrice.Text = String.Format("{0:0.00}€", saldato / (double)100)));

                pagato = pagato - erogazione;

                if (pagato == Global.subtotale)
                {
                    file.Delete();
                    StopListeners();
                    Application.Current.Dispatcher.BeginInvoke(
                        DispatcherPriority.Background, new Action(() => Application.Current.MainWindow.Content = new ThankYouCash(_ob)));
                }
            }
            catch (Exception ex)
            {
                Debug.Log("CashmaticApp", ex.ToString());
            }
        }
        private void OnChangeSaldato(object source, FileSystemEventArgs e)
        {
            Debug.Log("CashmaticApp", "OnChangeSaldato");
            FileInfo file = new FileInfo(e.FullPath);

            while (Helper.isFileLocked(file))
            {
                Thread.Sleep(50);
            }
            try
            {
                int saldato = CashmaticCommands.ReadSaldato();
                Global.pagato = saldato;
                saldato       = Global.subtotale - saldato;

                int signChanger = saldato < 0 ? -1:1;
                if (saldato <= 0)
                {
                    Application.Current.Dispatcher.BeginInvoke(
                        DispatcherPriority.Background, new Action(() => tblPrice.Foreground = green));
                }

                Application.Current.Dispatcher.BeginInvoke(
                    DispatcherPriority.Background, new Action(() => tblPrice.Text = String.Format("{0:0.00}€", (saldato * signChanger) / (double)100)));

                if (signChanger < 0)
                {
                    Application.Current.Dispatcher.BeginInvoke(
                        DispatcherPriority.Background, new Action(() => tblRemaining.Text = (string)FindResource("titleRemainReturn")));
                }
            }
            catch (Exception ex)
            {
                Debug.Log("CashmaticApp", ex.ToString());
            }
        }