Exemple #1
0
        private void ExecuteClearCommand()
        {
            Task.Run(() =>
            {
                System.Windows.MessageBoxResult msgResult = System.Windows.MessageBoxResult.No;
                System.Windows.Application.Current.Dispatcher.Invoke((Action)(() =>
                {
                    msgResult = System.Windows.MessageBox.Show("Are you sure you want to clear all PBI Logger data?", "Confirm", System.Windows.MessageBoxButton.YesNo);
                }));

                if (msgResult == System.Windows.MessageBoxResult.Yes)
                {
                    if (CottonDBMS.DataModels.Helpers.NetworkHelper.HasNetwork())
                    {
                        if (PBISyncHelper.IsRunning)
                        {
                            Messenger.Default.Send <BusyMessage>(new BusyMessage {
                                IsBusy = true, Message = "Waiting for background sync to complete."
                            });
                            BridgeSyncProcessHelper.WaitForSyncToStop();
                        }
                        else
                        {
                            //run the sync to send data collected this also ensure after it completes
                            //it will not start again during the reset operation
                            Messenger.Default.Send <BusyMessage>(new BusyMessage {
                                IsBusy = true, Message = "Sending collected data."
                            });
                            PBISyncHelper.RunSync();
                            PBISyncHelper.WaitForCompletion();
                        }

                        Messenger.Default.Send <BusyMessage>(new BusyMessage {
                            IsBusy = true, Message = "Clearing data..."
                        });
                        using (var dp = SimpleIoc.Default.GetInstance <IUnitOfWorkFactory>().CreateUnitOfWork())
                        {
                            dp.BaleScanRepository.ClearScanData();
                            dp.SettingsRepository.UpsertSetting(BridgeSettingKeys.LAST_SYNC_TIME, DateTime.Now.AddYears(-1).ToString());
                            dp.SaveChanges();
                        }

                        Messenger.Default.Send <BusyMessage>(new BusyMessage {
                            IsBusy = false, Message = ""
                        });
                        Messenger.Default.Send <DataRefreshedMessage>(new DataRefreshedMessage());
                    }
                    else
                    {
                        System.Windows.Application.Current.Dispatcher.Invoke((Action)(() =>
                        {
                            msgResult = System.Windows.MessageBox.Show("Cannot clear data no network connection");
                        }));
                    }
                }
            });
        }
        protected override void OpenStartPage()
        {
            Task.Run(() =>
            {
                BridgeSyncProcessHelper.Init("BridgeApp");
            });

            IdlePageViewModel vm = new IdlePageViewModel(NavService);

            NavService.ShowPage(PageType.IDLE_PAGE, false, vm);
            vm.Initialize();
        }
        protected override void OpenFirstRunPage()
        {
            //settings have not been saved so let's open the first run wizard
            INavigationService    navService = SimpleIoc.Default.GetInstance <INavigationService>();
            SettingsPageViewModel vm         = new SettingsPageViewModel(navService);

            vm.AllowPortSelection               = false;
            vm.AllowPortBarCodeSelection        = false;
            vm.AllowWeighInPageTimeOutSelection = false;
            vm.IsFirstLaunch = true;
            NavService.ShowPage(PageType.SETTINGS_PAGE, false, vm);
            vm.Initialize();
            BridgeSyncProcessHelper.SetAppName("BridgeFeederApp");
        }
        private void ExecuteSyncCommand()
        {
            Task.Run(() =>
            {
                try
                {
                    if (BridgeSyncProcessHelper.SyncProcessRunning())
                    {
                        Messenger.Default.Send <BusyMessage>(new BusyMessage {
                            IsBusy = true, Message = "Performing data sync."
                        });
                        CottonDBMS.DataModels.Helpers.NetworkHelper.WaitForSyncToStop();
                        Messenger.Default.Send <BusyMessage>(new BusyMessage {
                            IsBusy = false, Message = ""
                        });
                    }
                    else
                    {
                        if (!CottonDBMS.DataModels.Helpers.NetworkHelper.HasNetwork())
                        {
                            Messenger.Default.Send <BusyMessage>(new BusyMessage {
                                IsBusy = true, Message = "No network.  Unable to sync."
                            });
                            System.Threading.Thread.Sleep(4000);
                            Messenger.Default.Send <BusyMessage>(new BusyMessage {
                                IsBusy = false, Message = ""
                            });
                            return;
                        }

                        Messenger.Default.Send <BusyMessage>(new BusyMessage {
                            IsBusy = true, Message = "Performing data sync."
                        });
                        BridgeSyncProcessHelper.RunSync(System.Reflection.Assembly.GetExecutingAssembly().Location, false);
                        Messenger.Default.Send <BusyMessage>(new BusyMessage {
                            IsBusy = false, Message = ""
                        });
                    }
                    Messenger.Default.Send <DataRefreshedMessage>(new DataRefreshedMessage());
                }
                catch (Exception exc)
                {
                    Logging.Logger.Log(exc);
                    Messenger.Default.Send <BusyMessage>(new BusyMessage {
                        IsBusy = false, Message = ""
                    });
                }
            });
        }
        private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
        {
            try
            {
                if (shellVM != null)
                {
                    shellVM.Cleanup();
                }

                BridgeSyncProcessHelper.Cancel();
                Messenger.Default.Unregister <ContentPageChangedMessage>(this);
                Logging.Logger.CleanUp();
            }
            catch (Exception exc)
            {
                Logging.Logger.Log(exc);
            }
        }
        private void Timer_Elapsed(object sender, ElapsedEventArgs e)
        {
            if (!executingTimer) //prevent long execution of handler from overlapping later callbacks
            {
                executingTimer = true;

                if (lastActivity.AddMinutes(2) < DateTime.Now)
                {
                    Messenger.Default.Send <InactiveMessage>(new InactiveMessage());
                }


                CurrentTime = DateTime.Now.ToString("MM/dd/yyyy hh:mm tt");

                if (String.IsNullOrEmpty(Version))
                {
                    Version = "VERSION " + Assembly.GetExecutingAssembly().GetName().Version.ToString();
                }

                //try to connect to reader
                if (AllowRFIDReaderConnect)
                {
                    connectToReader();
                }

                using (var dp = SimpleIoc.Default.GetInstance <IUnitOfWorkFactory>().CreateUnitOfWork())
                {
                    if (AllowBarcoderConnect)
                    {
                        connectBarCodeReader(dp);
                    }

                    if (AllowScaleConnect)
                    {
                        connectScaleReader(dp);
                    }
                }

                if (EnableProcessSync)
                {
                    if (!BridgeSyncProcessHelper.Initialized && !NavService.IsOpen(PageType.SETTINGS_PAGE)) //make sure sync timer is running but not if in first setup
                    {
                        BridgeSyncProcessHelper.Init();
                    }

                    if (BridgeSyncProcessHelper.SyncProcessRunning())
                    {
                        SyncStatus = "SYNCING";
                    }
                    else
                    {
                        SyncStatus = "WAITING";
                    }
                }

                if (AllowRFIDReaderConnect)
                {
                    TagsInBuffer = TagDataProvider.TagsInBuffer();
                }

                executingTimer = false;
            }
        }