public void TestThatDispatchCallsHandleCommunication()
        {
            var communicationRepositoryMock = MockRepository.GenerateMock <ICommunicationRepository>();

            var dispatcherBase = new MyDispatcher <IIdentifiable>(communicationRepositoryMock);

            Assert.That(dispatcherBase, Is.Not.Null);
            Assert.That(dispatcherBase.HandleCommunicationHasBeenCalled, Is.False);

            dispatcherBase.Dispatch(DomainObjectMockBuilder.BuildStakeholderMock(), MockRepository.GenerateMock <IIdentifiable>(), DomainObjectMockBuilder.BuildTranslationInfoMock());
            Assert.That(dispatcherBase.HandleCommunicationHasBeenCalled, Is.True);
        }
Пример #2
0
 public ServerForm()
 {
     InitializeComponent();
     UIDispatcher = new MyDispatcher();
     AppDomain.CurrentDomain.UnhandledException += CommonBehavior.OnUnhandledException;
     TbIp.Text        = CommonBehavior.GetLocalIPAddress().ToString();
     BtnBrowse.Click += (s, e) =>
     {
         CommonBehavior.BrowseHandler(TbPath, LvTracks.Items);
         Dispatcher.Set();
         Dispatcher.Reset();
     };
 }
        public void TestThatDispatchCallsTranslateWhenDomainObjectIsTranslatable()
        {
            var communicationRepositoryMock = MockRepository.GenerateMock <ICommunicationRepository>();

            var domainObjectMock    = MockRepository.GenerateMock <ITranslatable>();
            var translationInfoMock = DomainObjectMockBuilder.BuildTranslationInfoMock();

            var dispatcherBase = new MyDispatcher <ITranslatable>(communicationRepositoryMock);

            Assert.That(dispatcherBase, Is.Not.Null);

            dispatcherBase.Dispatch(DomainObjectMockBuilder.BuildStakeholderMock(), domainObjectMock, translationInfoMock);

            domainObjectMock.AssertWasCalled(m => m.Translate(Arg <CultureInfo> .Is.Equal(translationInfoMock.CultureInfo)));
        }
        public void TestThatDispatchThrowsArgumentNullExceptionWhenTranslationInfoIsNull()
        {
            var communicationRepositoryMock = MockRepository.GenerateMock <ICommunicationRepository>();

            var dispatcherBase = new MyDispatcher <IIdentifiable>(communicationRepositoryMock);

            Assert.That(dispatcherBase, Is.Not.Null);

            var exception = Assert.Throws <ArgumentNullException>(() => dispatcherBase.Dispatch(DomainObjectMockBuilder.BuildStakeholderMock(), MockRepository.GenerateMock <IIdentifiable>(), null));

            Assert.That(exception, Is.Not.Null);
            Assert.That(exception.ParamName, Is.Not.Null);
            Assert.That(exception.ParamName, Is.Not.Empty);
            Assert.That(exception.ParamName, Is.EqualTo("translationInfo"));
            Assert.That(exception.InnerException, Is.Null);
        }
Пример #5
0
        public ClientForm()
        {
            Dispatcher = new MyDispatcher();
            AppDomain.CurrentDomain.UnhandledException += CommonBehavior.OnUnhandledException;

            InitializeComponent();
            BtnBrowse.Click       += (s, e) => RefreshLocalTracks();
            TbIp.Text              = CommonBehavior.GetLocalIPAddress().ToString();
            Playlist               = new PlayListViewItemCollection(LvLocalList, Wmp);
            CbRepeat.SelectedIndex = 0;

            InitializeRepeatTypeCombobox();

            Wmp.currentPlaylist    = Wmp.newPlaylist("no title", "");
            Wmp.CurrentItemChange += OnWmpMediaChange;
            Wmp.PlayStateChange   += OnWmpPlayStateChange;
            Wmp.MediaError        += OnWmpMediaError;
            TrackBarTimer.Tick    += TrackBarUpdateTick;
        }
Пример #6
0
        public void testRollbackDuplicate()
        {
            int              count      = 10000;
            ConnectionAudit  audit      = new ConnectionAudit();
            List <MessageId> list       = new List <MessageId>();
            MyDispatcher     dispatcher = new MyDispatcher();

            ProducerId pid = new ProducerId();

            pid.ConnectionId = "test";
            pid.SessionId    = 0;
            pid.Value        = 1;

            ActiveMQDestination destination = new ActiveMQQueue("TEST.QUEUE");
            Message             message     = new Message();

            message.Destination = destination;

            for (int i = 0; i < count; i++)
            {
                MessageId id = new MessageId();
                id.ProducerId         = pid;
                id.ProducerSequenceId = i;
                list.Add(id);

                message.MessageId = id;
                Assert.IsFalse(audit.IsDuplicate(dispatcher, message));
            }

            int index = list.Count - 1 - audit.AuditDepth;

            for (; index < list.Count; index++)
            {
                MessageId id = list[index];
                message.MessageId = id;
                Assert.IsTrue(audit.IsDuplicate(dispatcher, message), "duplicate msg:" + id);
                audit.RollbackDuplicate(dispatcher, message);
                Assert.IsFalse(audit.IsDuplicate(dispatcher, message), "error: duplicate msg:" + id);
            }
        }
Пример #7
0
        public void StartUp()
        {
            if (App == null)
            {
                Thread newWindowThread = new Thread((input) =>
                {
                    SynchronizationContext.SetSynchronizationContext(new DispatcherSynchronizationContext(Dispatcher.CurrentDispatcher));

                    App = new App();
                    App.ShutdownMode = ShutdownMode.OnExplicitShutdown;
                    var foo          = new Uri("pack://application:,,,/DefaultViews;component/Resources/CommonStyles.xaml", UriKind.Absolute);
                    Application.Current.Resources.MergedDictionaries.Add(new ResourceDictionary()
                    {
                        Source = foo
                    });
                    var foo2 = new Uri("pack://application:,,,/DefaultViews;component/Resources/DataTemplates.xaml", UriKind.Absolute);
                    Application.Current.Resources.MergedDictionaries.Add(new ResourceDictionary()
                    {
                        Source = foo2
                    });
                    var foo3 = new Uri("pack://application:,,,/DefaultViews;component/Resources/LiveDataTemplates.xaml", UriKind.Absolute);
                    Application.Current.Resources.MergedDictionaries.Add(new ResourceDictionary()
                    {
                        Source = foo3
                    });

                    App.Run();
                });

                newWindowThread.SetApartmentState(ApartmentState.STA);
                newWindowThread.IsBackground = true;

                newWindowThread.Start();
                do
                {
                    Thread.Sleep(10);
                    Dispatcher = Dispatcher.FromThread(newWindowThread);
                } while (Dispatcher == null);
            }
            var dispatcher = new MyDispatcher(Dispatcher);

            IoCContainer.Kernel = new StandardKernel();
            IoCContainer.Kernel.Bind <IWaitOverlayProvider>().To <WaitOverlayProvider>().InSingletonScope();
            IoCContainer.Kernel.Bind <ITicketHandler>().To <TicketHandler>().InSingletonScope();

            ChangeTracker = new ChangeTracker();
            IoCContainer.Kernel.Bind <IChangeTracker>().ToConstant <IChangeTracker>(ChangeTracker).InSingletonScope();
            IoCContainer.Kernel.Bind <IStationRepository>().To <StationRepository>().InSingletonScope();


            MessageMediator     = new MyMessageMediator();
            MyRegionManager     = new MyRegionManager();
            TranslationProvider = MockRepository.GenerateStub <ITranslationProvider>();
            LineSr                 = MockRepository.GenerateStub <ILineSr>();
            Repository             = MockRepository.GenerateStub <IRepository>();
            WsdlRepository         = MockRepository.GenerateStub <IWsdlRepository>();
            ConfidenceFactor       = MockRepository.GenerateStub <IConfidenceFactor>();
            TransactionQueueHelper = MockRepository.GenerateStub <ITransactionQueueHelper>();

            IoCContainer.Kernel.Bind <IMediator>().ToConstant <IMediator>(MessageMediator).InSingletonScope();
            IoCContainer.Kernel.Bind <IMyRegionManager>().ToConstant <IMyRegionManager>(MyRegionManager).InSingletonScope();
            IoCContainer.Kernel.Bind <IDispatcher>().ToConstant <IDispatcher>(dispatcher).InSingletonScope();
            IoCContainer.Kernel.Bind <IRepository>().ToConstant <IRepository>(Repository).InSingletonScope();
            IoCContainer.Kernel.Bind <ILineSr>().ToConstant <ILineSr>(LineSr).InSingletonScope();
            IoCContainer.Kernel.Bind <ITranslationProvider>().ToConstant <ITranslationProvider>(TranslationProvider).InSingletonScope();
            IoCContainer.Kernel.Bind <IWsdlRepository>().ToConstant <IWsdlRepository>(WsdlRepository).InSingletonScope();
            IoCContainer.Kernel.Bind <IConfidenceFactor>().ToConstant <IConfidenceFactor>(ConfidenceFactor).InSingletonScope();
            IoCContainer.Kernel.Bind <ITransactionQueueHelper>().ToConstant <ITransactionQueueHelper>(TransactionQueueHelper).InSingletonScope();

            long lastTicketNumber  = 0;
            long lastTransactionId = 0;

            WsdlRepository.Stub(x => x.GetBusinessProps(null, out lastTicketNumber, out lastTransactionId)).Return(1).IgnoreArguments();
            Repository.Stub(x => x.FindMatches(null, null, null, null, null)).Return(new SortableObservableCollection <IMatchVw>()).IgnoreArguments();
            TransactionQueueHelper.Stub(x => x.GetCountTransactionQueue()).Return(1).IgnoreArguments();

            TranslationProvider.Stub(x => x.Translate(MultistringTags.TERMINAL_RESULTS_MINUS_X_DAYS)).Return("{0}");
            TranslationProvider.Stub(x => x.Translate(MultistringTags.TERMINAL_MANIPULATION_FEE)).Return("ManipulationFee");
            TranslationProvider.Stub(x => x.Translate(MultistringTags.TERMINAL_BONUS)).Return("bonus");
            TranslationProvider.Stub(x => x.Translate(MultistringTags.TERMINAL_MINBET)).Return("min bet");
            TranslationProvider.Stub(x => x.Translate(MultistringTags.TERMINAL_MAXBET)).Return("max bet");
            TranslationProvider.Stub(x => x.Translate(MultistringTags.TERMINAL_MAXWIN)).Return("Max Win");
            TranslationProvider.Stub(x => x.Translate(MultistringTags.TERMINAL_AVAILABLE_CASH)).Return("Available cash");
            TranslationProvider.Stub(x => x.Translate(MultistringTags.TERMINAL_ODD)).Return("Odd:");
            TranslationProvider.Stub(x => x.Translate(MultistringTags.TERMINAL_PRINT_STAKE_TOTAL)).Return("Total Stake");
            TranslationProvider.Stub(x => x.Translate(MultistringTags.CLOSE)).Return("Close");
            TranslationProvider.Stub(x => x.Translate(MultistringTags.OUTRIGHTS)).Return("Outrights");
            TranslationProvider.Stub(x => x.Translate(MultistringTags.TERMINAL_PLEASE_ADD_AMOUNT)).Return("{0}");
            TranslationProvider.Stub(x => x.Translate(MultistringTags.HELLO_MSG)).Return("hello {0}");
            TranslationProvider.Stub(x => x.Translate(MultistringTags.TERMINAL_CHANGE_PASSWORD)).Return("change password");
            TranslationProvider.Stub(x => x.Translate(MultistringTags.TERMINAL_FORM_ALL)).Return("all");
            TranslationProvider.Stub(x => x.Translate(MultistringTags.TERMINAL_TICKETWON)).Return("all");
            TranslationProvider.Stub(x => x.Translate(MultistringTags.TERMINAL_TICKETWON)).Return("won");
            TranslationProvider.Stub(x => x.Translate(MultistringTags.TERMINAL_TICKETLOST)).Return("lost");
            TranslationProvider.Stub(x => x.Translate(MultistringTags.TERMINAL_FORM_CANCELLED)).Return("canceled");
            TranslationProvider.Stub(x => x.Translate(MultistringTags.TERMINAL_TICKETOPEN)).Return("open");
            TranslationProvider.Stub(x => x.Translate(MultistringTags.SHOW_SELECTED)).Return("show selected");
            TranslationProvider.Stub(x => x.Translate(MultistringTags.TERMINAL_NAVIGATION_FORWARD)).Return("forward");
            TranslationProvider.Stub(x => x.Translate(MultistringTags.SHOP_FORM_NO_CONNECTION_TO_SERVER)).Return("no conenction");
            TranslationProvider.Stub(x => x.Translate(MultistringTags.TRANSFER_TO_ACCOUNT)).Return("to account");
            TranslationProvider.Stub(x => x.Translate(MultistringTags.TERMINAL_FORM_STATION_LOCKED_BY_ADMIN)).Return("locked by admin");
            TranslationProvider.Stub(x => x.Translate(MultistringTags.TERMINAL_CASH_LOCKED)).Return("locked cash");
            TranslationProvider.Stub(x => x.Translate(MultistringTags.TERMINAL_FORM_REQUIRED)).Return("required");
        }
Пример #8
0
        //private static readonly ILog Log = LogManager.GetLogger(typeof(App));
        /// <summary>
        /// Raises the <see cref="E:System.Windows.Application.Startup"/> event.
        /// </summary>
        /// <param name="e">A <see cref="T:System.Windows.StartupEventArgs"/> that contains the event data.</param>
        protected override void OnStartup(StartupEventArgs e)
        {
            int id = 0;

            Int32.TryParse(e.Args.FirstOrDefault(), out id);
            //var id = Convert.ToInt32(e.Args.FirstOrDefault());

            Log.Debug("start terminalwindow");

            // Check how many total processes have the same name as the current one
            if (!IsSingleInstance())
            {
                Environment.Exit(1);
            }

            AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;

            ControlAero(false);


            IoCContainer.Kernel = new StandardKernel();
            IoCContainer.Kernel.Bind <IRepository>().To <Repository>().InSingletonScope();
            IoCContainer.Kernel.Bind <IMessageStorage>().To <MessageStorage>().InSingletonScope();
            IoCContainer.Kernel.Bind <IStationRepository>().To <StationRepository>().InSingletonScope();
            IoCContainer.Kernel.Bind <ILineProvider>().To <OldLineProvider>().InSingletonScope();
            //IoCContainer.Kernel.Bind<IWsdlRepository>().To<WcfService.WsdlRepository>().InSingletonScope();
            IoCContainer.Kernel.Bind <IChangeTracker>().To <ChangeTracker>().InSingletonScope();
            IoCContainer.Kernel.Bind <ILanguageRepository>().To <LanguageRepository>().InSingletonScope();
            IoCContainer.Kernel.Bind <IMediator>().To <MyMessageMediator>().InSingletonScope();
            IoCContainer.Kernel.Bind <IDatabaseManager>().To <DbManager>().InSingletonScope();
            IoCContainer.Kernel.Bind <IWaitOverlayProvider>().To <WaitOverlayProvider>().InSingletonScope();
            IoCContainer.Kernel.Bind <ISelectDate>().To <DateHelper>().InSingletonScope();
            IoCContainer.Kernel.Bind <IErrorWindowService>().To <ErrorWindowService>().InSingletonScope();
            IoCContainer.Kernel.Bind <IQuestionWindowService>().To <QuestionWindowService>().InSingletonScope();
            IoCContainer.Kernel.Bind <ITicketHandler>().To <TicketHandler>().InSingletonScope();
            IoCContainer.Kernel.Bind <ITicketActions>().To <TicketActions>().InSingletonScope();
            IoCContainer.Kernel.Bind <IPrinterHandler>().To <PrinterHandler>().InSingletonScope();
            IoCContainer.Kernel.Bind <IMyRegionManager>().To <MyRegionManager>().InSingletonScope();
            IoCContainer.Kernel.Bind <IBusinessPropsHelper>().To <BusinessPropsHelper>().InSingletonScope();
            IoCContainer.Kernel.Bind <IDataBinding>().To <DataBinding>().InSingletonScope();
            IoCContainer.Kernel.Bind <IEnterPinWindowService>().To <EnterPinWindowService>().InSingletonScope();
            IoCContainer.Kernel.Bind <ILiveStreamService>().To <LiveStreamService>().InSingletonScope();
            IoCContainer.Kernel.Bind <ILineSr>().To <SharedLineSr>().InSingletonScope();
            IoCContainer.Kernel.Bind <IConfidenceFactor>().To <ConfidenceFactor>().InSingletonScope();
            IoCContainer.Kernel.Bind <ITransactionQueueHelper>().To <TransactionQueueHelper>().InSingletonScope();
            IoCContainer.Kernel.Bind <ITicketSaveHandler>().To <TicketSaveHandler>().InSingletonScope();
            IoCContainer.Kernel.Bind <INDEServer>().ToConstant(new NDEServer("terminal")).InSingletonScope();
            IoCContainer.Kernel.Bind <IProcessExecutor>().To <ProcessExecutor>().InSingletonScope();
            IoCContainer.Kernel.Bind <IStationSettings>().To <StationSettings>().InSingletonScope();
            if (e.Args.Contains("testmode"))
            {
                StationRepository.IsTestMode = true;
                IoCContainer.Kernel.Bind <IWsdlRepository>().To <WcfService.TestWsdlRepository>().InSingletonScope();
                IoCContainer.Kernel.Bind <ITranslationProvider>().To <TestDBTranslationProvider>().InSingletonScope();
                DbManager.Instance.DropDatabase(true);
            }
            else
            {
                IoCContainer.Kernel.Bind <IWsdlRepository>().To <WcfService.WsdlRepository>().InSingletonScope();
                IoCContainer.Kernel.Bind <ITranslationProvider>().To <DBTranslationProvider>().InSingletonScope();
            }

            if (!Debugger.IsAttached)
            {
                Process proc2 = new Process(); // clear internet explorer cache
                proc2.StartInfo.FileName    = "RunDll32.exe";
                proc2.StartInfo.Arguments   = "InetCpl.cpl,ClearMyTracksByProcess 255";
                proc2.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
                proc2.Start();
            }
            //StyleHelper.CreateStyleForwardersForDefaultStyles();
            var mainScreen = Screen.AllScreens.First(s => s.Primary);

            if (mainScreen.WorkingArea.Width < 1920)
            {
                ChangeTracker.Screen2WindowScale = (double)mainScreen.WorkingArea.Width / 1920.0d / 1.08d;
            }

            _startWindow         = new StartWindow();
            _startWindow.Topmost = !Debugger.IsAttached;
            _startWindow.Show();

            if (StationRepository.StationNumber != "0000" && StationRepository.LayoutName == null)
            {
                StationRepository.Refresh();
            }
            var LayoutName = MyRegionManager.DefaultLayout;

            if (!string.IsNullOrEmpty(StationRepository.LayoutName))
            {
                LayoutName = StationRepository.LayoutName;
            }

            // TODO: Using a custom IoC container like Unity? Register it here:
            // Catel.IoC.ServiceLocator.Default.RegisterExternalContainer(MyUnityContainer);
            var foo = new Uri("pack://application:,,,/" + LayoutName + ";component/Resources/CommonStyles.xaml", UriKind.Absolute);

            Application.Current.Resources.MergedDictionaries.Add(new ResourceDictionary()
            {
                Source = foo
            });
            var foo2 = new Uri("pack://application:,,,/" + LayoutName + ";component/Resources/DataTemplates.xaml", UriKind.Absolute);

            Application.Current.Resources.MergedDictionaries.Add(new ResourceDictionary()
            {
                Source = foo2
            });
            var foo3 = new Uri("pack://application:,,,/" + LayoutName + ";component/Resources/LiveDataTemplates.xaml", UriKind.Absolute);

            Application.Current.Resources.MergedDictionaries.Add(new ResourceDictionary()
            {
                Source = foo3
            });


            try
            {
                ResolveImagePath resolveImagePath = new ResolveImagePath();
                var images = Directory.GetFiles(WorkingDirectory + ImageRelativePath + LayoutName, "*.png");
                foreach (var image in images)
                {
                    resolveImagePath.Path = Path.GetFileName(image);
                    resolveImagePath.ProvideValue(null);
                }
            }
            catch (Exception ex)
            {
                Log.Error(ex.Message, ex);
            }



            if (id != 0)
            {
                Process[] processlist = Process.GetProcesses();
                foreach (Process theprocess in processlist)
                {
                    if (theprocess.Id == id)
                    {
                        theprocess.Kill();
                        break;
                    }
                }
            }
            base.OnStartup(e);

            _startWindow.SetMessage("Initializing...");
            Log.Debug("start window show");


            // AppDomain.CurrentDomain.UnhandledException += AppDomainUnhandledException;

            try
            {
                Log.Debug("IOC kernel start");



                var dispatcher = new MyDispatcher(Dispatcher.CurrentDispatcher);

                IoCContainer.Kernel.Bind <IDispatcher>().ToConstant <IDispatcher>(dispatcher).InSingletonScope();

                if (GetRestartErrorsNumber() >= _iErrorFileMaximumEntries)
                {
                    Thread.Sleep(2000);
                    var f = new FatalCrashWindow();
                    f.ShowDialog();
                }

                //STARTING IN TEST MODE

                Log.Debug("IOC kernel end");

                //if (!System.Diagnostics.Debugger.IsAttached)
                //{
                //    SetTimeZone(0, false);
                //}
                //SetTimeZone(0, false);


                //_startWindow.SetMessage("Clearing Database...");
                Log.Debug("clear updater files");


                // check if we still have to finish Update
                if (File.Exists(Directory.GetCurrentDirectory().ToString() + "\\SportBetting.Updater1.exe"))
                {
                    try
                    {
                        File.Delete(Directory.GetCurrentDirectory().ToString() + "\\SportBetting.Updater.exe");
                        File.Move(Directory.GetCurrentDirectory().ToString() + "\\SportBetting.Updater1.exe", Directory.GetCurrentDirectory().ToString() + "\\SportBetting.Updater.exe");
                        File.Delete(Directory.GetCurrentDirectory().ToString() + "\\SportBetting.Updater.pdb");
                        File.Move(Directory.GetCurrentDirectory().ToString() + "\\SportBetting.Updater1.pdb", Directory.GetCurrentDirectory().ToString() + "\\SportBetting.Updater.pdb");
                    }
                    catch (Exception)
                    {
                        //
                    }
                }

                //if (Convert.ToBoolean(ConfigurationManager.AppSettings["DoAutoUpdate"]))
                //{
                string  sVersion = string.Empty;
                Updater up       = new Updater();
                up.IsError = false;
                Log.Debug("updater start");
                string sProcessName  = System.Diagnostics.Process.GetCurrentProcess().ProcessName;
                string sAssemblyName = "SportBetting.WPF.Prism.exe";

                if (!Debugger.IsAttached && up.DoBinariesUpdate(out sVersion, ref _autoEvent, ref _startWindow) == 1)
                //if (up.DoBinariesUpdate(out sVersion, ref _autoEvent, ref _startWindow) == 1)
                {
                    _startWindow.SetMessage("Clearing Database...");
                    Log.Debug("clear db start");

                    Log.Debug("clear db end");

                    if (_autoEvent.WaitOne(420000)) //wait download complete for 60 seconds
                    {
                        if (!up.IsError)
                        {
                            // continue if there're no errors during directories copy and extraction zip file

                            // start updater
                            Process proc = new Process();
                            proc.StartInfo.FileName    = Directory.GetCurrentDirectory() + "\\SportBetting.Updater.exe";
                            proc.StartInfo.Arguments   = " " + sProcessName + "|" + sAssemblyName + "|" + sVersion;
                            proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
                            proc.Start();

                            Environment.Exit(0);
                        }
                        else
                        {
                            // log error while copy / extract
                            _startWindow.SetMessage("Error while copy / extract files");
                        }
                    }
                    else
                    {
                        // log timeout issue
                        // update wasn't downloaded.
                        _startWindow.SetMessage("Update downloading timed out. Will try next time.");
                    }
                }
                //}

                _startWindow.SetMessage("Starting Station. Please wait...");
                Log.Debug("init db end");
                //DbManager.Instance.DeleteOldObjects();
                if (!InitDatabase())
                {
                    return;
                }
                Log.Debug("show wait window");

                IoCContainer.Kernel.Get <IStationRepository>().LastPrintedObjects = string.Empty;

                var myRegionManager = IoCContainer.Kernel.Get <IMyRegionManager>();

                var waitOverlay = new WaitOverlayProvider();
                waitOverlay.ShowWaitOverlay();

                //var mainScreen = Screen.AllScreens.First(s => s.Primary);

                Log.Debug("checking mode. Monitor width = " + mainScreen.WorkingArea.Width.ToString());

                if ((ConfigurationManager.AppSettings["Is34Mode"] ?? string.Empty).Trim().ToLowerInvariant() == "true")
                {
                    ChangeTracker.Is34Mode = true;
                }
                else if ((ConfigurationManager.AppSettings["Is34Mode"] ?? string.Empty).Trim().ToLowerInvariant() == "false")
                {
                    ChangeTracker.Is34Mode = false;
                }
                else
                {
                    Log.Debug("checking mode. Is34Mode not found in config");
                    if (mainScreen.WorkingArea.Width == 1280 && mainScreen.WorkingArea.Width > mainScreen.WorkingArea.Height)
                    {
                        ChangeTracker.Is34Mode = true;
                    }
                    else
                    {
                        ChangeTracker.Is34Mode = false;
                    }
                }

                if (!ChangeTracker.Is34Mode)
                {
                    if ((ConfigurationManager.AppSettings["landscape_mode"] ?? string.Empty).Trim().ToLowerInvariant() == "true")
                    {
                        ChangeTracker.IsLandscapeMode = true;
                    }
                    else if ((ConfigurationManager.AppSettings["landscape_mode"] ?? string.Empty).Trim().ToLowerInvariant() == "false")
                    {
                        ChangeTracker.IsLandscapeMode = false;
                    }
                    else
                    {
                        Log.Debug("checking mode. landscape_mode not found in config");

                        if (mainScreen.WorkingArea.Width > mainScreen.WorkingArea.Height)
                        {
                            ChangeTracker.IsLandscapeMode = true;
                        }
                    }
                }

                Log.Debug("init main window");

                var mainWindowView = myRegionManager.FindWindowByViewModel <MainViewModel>();
                ChangeTracker.MainWindow = mainWindowView;
                MaximizeWindow(ChangeTracker.MainWindow, mainScreen);

                //if (!bool.Parse(ConfigurationManager.AppSettings["fullscreen"]))
                SetWindowSettings(ChangeTracker.MainWindow);

                Current.MainWindow        = ChangeTracker.MainWindow;
                Current.ShutdownMode      = ShutdownMode.OnMainWindowClose;
                ViewObjectBase.Dispatcher = Current.MainWindow.Dispatcher;
                Log.Debug("close start window");
                _startWindow.Close();
                Current.MainWindow.Show();
                Log.Debug("show main window");

                // close starter window
            }
            catch (Exception ex)
            {
                HandleException(ex);
            }
        }
Пример #9
0
        protected override void OnStartup(StartupEventArgs e)
        {
            base.OnStartup(e);

            IoCContainer.Kernel = new StandardKernel();
            IoCContainer.Kernel.Bind <IRepository>().To <Repository>().InSingletonScope();
            IoCContainer.Kernel.Bind <IStationRepository>().To <StationRepository>().InSingletonScope();
            IoCContainer.Kernel.Bind <IMessageStorage>().To <MessageStorage>().InSingletonScope();
            IoCContainer.Kernel.Bind <ILineProvider>().To <OldLineProvider>().InSingletonScope();
            //IoCContainer.Kernel.Bind<IWsdlRepository>().To<WcfService.WsdlRepository>().InSingletonScope();
            IoCContainer.Kernel.Bind <IChangeTracker>().To <ChangeTracker>().InSingletonScope();
            IoCContainer.Kernel.Bind <ILanguageRepository>().To <LanguageRepository>().InSingletonScope();
            IoCContainer.Kernel.Bind <IMediator>().To <MyMessageMediator>().InSingletonScope();
            IoCContainer.Kernel.Bind <IDatabaseManager>().To <DbManager>().InSingletonScope();
            IoCContainer.Kernel.Bind <IWaitOverlayProvider>().To <WaitOverlayProvider>().InSingletonScope();
            IoCContainer.Kernel.Bind <ISelectDate>().To <DateHelper>().InSingletonScope();
            IoCContainer.Kernel.Bind <IErrorWindowService>().To <ErrorWindowService>().InSingletonScope();
            IoCContainer.Kernel.Bind <IQuestionWindowService>().To <QuestionWindowService>().InSingletonScope();
            IoCContainer.Kernel.Bind <ITicketHandler>().To <TicketHandler>().InSingletonScope();
            IoCContainer.Kernel.Bind <ITicketActions>().To <TicketActions>().InSingletonScope();
            IoCContainer.Kernel.Bind <IPrinterHandler>().To <PrinterHandler>().InSingletonScope();
            IoCContainer.Kernel.Bind <IMyRegionManager>().To <MyRegionManager>().InSingletonScope();
            IoCContainer.Kernel.Bind <IBusinessPropsHelper>().To <BusinessPropsHelper>().InSingletonScope();
            IoCContainer.Kernel.Bind <IDataBinding>().To <DataBinding>().InSingletonScope();
            IoCContainer.Kernel.Bind <IEnterPinWindowService>().To <EnterPinWindowService>().InSingletonScope();
            IoCContainer.Kernel.Bind <ILiveStreamService>().To <LiveStreamService>().InSingletonScope();
            IoCContainer.Kernel.Bind <ILineSr>().To <SharedLineSr>().InSingletonScope();
            IoCContainer.Kernel.Bind <IConfidenceFactor>().To <ConfidenceFactor>().InSingletonScope();
            IoCContainer.Kernel.Bind <ITransactionQueueHelper>().To <TransactionQueueHelper>().InSingletonScope();
            IoCContainer.Kernel.Bind <ITicketSaveHandler>().To <TicketSaveHandler>().InSingletonScope();

            var dispatcher = new MyDispatcher(Dispatcher);

            IoCContainer.Kernel.Bind <IDispatcher>().ToConstant <IDispatcher>(dispatcher).InSingletonScope();


            var mainScreen = Screen.AllScreens.First(s => s.Primary);

            Log.Debug("checking mode. Monitor width = " + mainScreen.WorkingArea.Width.ToString());
            if ((ConfigurationManager.AppSettings["Is34Mode"] ?? string.Empty).Trim().ToLowerInvariant() == "true")
            {
                ChangeTracker.Is34Mode = true;
            }
            else if ((ConfigurationManager.AppSettings["Is34Mode"] ?? string.Empty).Trim().ToLowerInvariant() == "false")
            {
                ChangeTracker.Is34Mode = false;
            }
            else
            {
                Log.Debug("checking mode. Is34Mode not found in config");
                if (mainScreen.WorkingArea.Width == 1280 && mainScreen.WorkingArea.Width > mainScreen.WorkingArea.Height)
                {
                    ChangeTracker.Is34Mode = true;
                }
                else
                {
                    ChangeTracker.Is34Mode = false;
                }
            }

            if (!ChangeTracker.Is34Mode)
            {
                if ((ConfigurationManager.AppSettings["landscape_mode"] ?? string.Empty).Trim().ToLowerInvariant() == "true")
                {
                    ChangeTracker.IsLandscapeMode = true;
                }
                else if ((ConfigurationManager.AppSettings["landscape_mode"] ?? string.Empty).Trim().ToLowerInvariant() == "false")
                {
                    ChangeTracker.IsLandscapeMode = false;
                }
                else
                {
                    Log.Debug("checking mode. landscape_mode not found in config");

                    if (mainScreen.WorkingArea.Width > mainScreen.WorkingArea.Height)
                    {
                        ChangeTracker.IsLandscapeMode = true;
                    }
                }
            }

            int arg0 = 0;

            int.TryParse(e.Args[0], out arg0);

            bool arg1 = true;

            bool.TryParse(e.Args[1], out arg1);

            var webLive   = new WebLiveMonitorWindow();
            var viewModel = new WebLiveMonitorViewModel(arg0);

            webLive.DataContext  = viewModel;
            viewModel.ViewWindow = webLive;
            webLive.Show();


            MaximizeWindow(webLive, arg0, arg1);
            webLive.Show();
            webLive.WindowState = WindowState.Normal;
            webLive.WindowState = WindowState.Maximized;
        }
Пример #10
0
        public void StartUp()
        {
            IoCContainer.Kernel    = new StandardKernel();
            MyLineSr               = new Mock <ILineSr>();
            StationSettings        = new Mock <IStationSettings>();
            NDEServer              = new Mock <INDEServer>();
            TicketSaveHandler      = new Mock <ITicketSaveHandler>();
            TransactionQueueHelper = new Mock <ITransactionQueueHelper>();
            LineProvider           = new Mock <ILineProvider>();
            LiveStreamService      = new Mock <ILiveStreamService>();
            DataBinding            = new Mock <IDataBinding>();
            ErrorWindowService     = new Mock <IErrorWindowService>();
            BusinessPropsHelper    = new Mock <IBusinessPropsHelper>();
            MyRegionManager        = new Mock <IMyRegionManager>();
            TicketActions          = new Mock <ITicketActions>();
            PrinterHandler         = new Mock <IPrinterHandler>();
            TicketHandler          = new Mock <ITicketHandler>();
            MessageMediator        = new Mock <IMediator>();
            Repository             = new Mock <IRepository>();
            StationRepository      = new Mock <IStationRepository>();
            TranslationProvider    = new Mock <ITranslationProvider>();
            ChangeTracker          = new Mock <IChangeTracker>();
            WsdlRepository         = new Mock <IWsdlRepository>();
            LanguageRepository     = new Mock <ILanguageRepository>();
            WaitOverlayProvider    = new Mock <IWaitOverlayProvider>();
            SelectDate             = new Mock <ISelectDate>();
            QuestionWindowService  = new Mock <IQuestionWindowService>();



            ChangeTracker.Setup(x => x.SportFilters).Returns(new ObservableCollection <ComboBoxItemStringId>());
            ChangeTracker.Setup(x => x.TimeFilters).Returns(new ObservableCollection <ComboBoxItem>());
            ChangeTracker.Setup(x => x.SelectedTimeFilter).Returns(new ComboBoxItem("0", 0));
            ChangeTracker.Setup(x => x.SelectedSportFilter).Returns(new ComboBoxItemStringId("0", "0"));
            TranslationProvider.Setup(x => x.CurrentLanguage).Returns("EN");
            DataBinding.Setup(x => x.TipListInfo).Returns(new TipListInfo());

            ConfidenceFactor = new Mock <IConfidenceFactor>();

            Kernel.Bind <IMessageStorage>().To <MessageStorage>().InSingletonScope();
            Kernel.Bind <INDEServer>().ToConstant <INDEServer>(NDEServer.Object).InSingletonScope();
            Kernel.Bind <IStationSettings>().ToConstant <IStationSettings>(StationSettings.Object).InSingletonScope();
            Kernel.Bind <ITicketSaveHandler>().ToConstant <ITicketSaveHandler>(TicketSaveHandler.Object).InSingletonScope();
            Kernel.Bind <ITransactionQueueHelper>().ToConstant <ITransactionQueueHelper>(TransactionQueueHelper.Object).InSingletonScope();
            Kernel.Bind <ILineProvider>().ToConstant <ILineProvider>(LineProvider.Object).InSingletonScope();
            Kernel.Bind <ILineSr>().ToConstant <ILineSr>(MyLineSr.Object).InSingletonScope();
            Kernel.Bind <ILiveStreamService>().ToConstant <ILiveStreamService>(LiveStreamService.Object).InSingletonScope();
            Kernel.Bind <IDataBinding>().ToConstant <IDataBinding>(DataBinding.Object).InSingletonScope();
            Kernel.Bind <IBusinessPropsHelper>().ToConstant <IBusinessPropsHelper>(BusinessPropsHelper.Object).InSingletonScope();
            Kernel.Bind <IMyRegionManager>().ToConstant <IMyRegionManager>(MyRegionManager.Object).InSingletonScope();
            Kernel.Bind <ITicketActions>().ToConstant <ITicketActions>(TicketActions.Object).InSingletonScope();
            Kernel.Bind <IPrinterHandler>().ToConstant <IPrinterHandler>(PrinterHandler.Object).InSingletonScope();
            Kernel.Bind <ISelectDate>().ToConstant <ISelectDate>(SelectDate.Object).InSingletonScope();
            Kernel.Bind <IErrorWindowService>().ToConstant <IErrorWindowService>(ErrorWindowService.Object).InSingletonScope();
            Kernel.Bind <IRepository>().ToConstant <IRepository>(Repository.Object).InSingletonScope();
            Kernel.Bind <IMediator>().ToConstant <IMediator>(MessageMediator.Object).InSingletonScope();
            Kernel.Bind <IChangeTracker>().ToConstant <IChangeTracker>(ChangeTracker.Object).InSingletonScope();
            Kernel.Bind <IStationRepository>().ToConstant <IStationRepository>(StationRepository.Object).InSingletonScope();
            Kernel.Bind <IWsdlRepository>().ToConstant <IWsdlRepository>(WsdlRepository.Object).InSingletonScope();
            Kernel.Bind <ILanguageRepository>().ToConstant <ILanguageRepository>(LanguageRepository.Object).InSingletonScope();
            Kernel.Bind <IWaitOverlayProvider>().ToConstant <IWaitOverlayProvider>(WaitOverlayProvider.Object).InSingletonScope();
            Kernel.Bind <ITranslationProvider>().ToConstant <ITranslationProvider>(TranslationProvider.Object).InSingletonScope();
            Kernel.Bind <ITicketHandler>().ToConstant <ITicketHandler>(TicketHandler.Object).InSingletonScope();
            Kernel.Bind <IQuestionWindowService>().ToConstant <IQuestionWindowService>(QuestionWindowService.Object).InSingletonScope();
            Kernel.Bind <IConfidenceFactor>().ToConstant <IConfidenceFactor>(ConfidenceFactor.Object).InSingletonScope();

            StationRepository.Setup(x => x.HubSettings).Returns(new Dictionary <string, string>());
            StationRepository.Setup(x => x.StationNumber).Returns("123");
            StationRepository.Setup(x => x.IsReady).Returns(true);
            StationSettings.Setup(x => x.IsCashinOk).Returns(true);
            WsdlRepository.Setup(x => x.SecureKey).Returns("123");
            WsdlRepository.Setup(x => x.OpenSession(It.IsAny <string>(), true, string.Empty, string.Empty, false))
            .Returns(new SessionWS()
            {
                session_id = "123"
            });
            TranslationProvider.Setup(x => x.DefaultLanguage).Returns("EN");
            var newWindowThread = new Thread(() =>
            {
                Dispatcher.Run();
            });

            newWindowThread.SetApartmentState(ApartmentState.STA);
            newWindowThread.IsBackground = true;
            newWindowThread.Start();
            while (dispatcher == null)
            {
                Thread.Sleep(10);
                dispatcher = Dispatcher.FromThread(newWindowThread);
            }

            var dispatchermy = new MyDispatcher(dispatcher);

            IoCContainer.Kernel.Unbind <IDispatcher>();
            IoCContainer.Kernel.Bind <IDispatcher>().ToConstant <IDispatcher>(dispatchermy).InSingletonScope();
        }
        internal void CreateHubspotConnection(string prefixEndpoint)
        {
            try
            {
                if (_timer != null)
                {
                    _timer.Dispose();
                    _timer = null;
                }

                var hubConnection = new HubConnection(prefixEndpoint);
                var signalr       = hubConnection.CreateHubProxy("signalhub");
                signalr.On("requestCompleted", (List <RequestSummary> a) =>
                {
                    MyDispatcher.Invoke(delegate
                    {
                        foreach (var summary in a)
                        {
                            // prevent duplicate keys
                            if (Control.Model.Summaries.ContainsKey(summary.ID) == false)
                            {
                                Control.Model.Summaries.Add(new KeyValuePair <string, RequestSummaryVM>(summary.ID,
                                                                                                        new RequestSummaryVM(summary)));
                            }
                        }

                        var list = Control.FindName("TraceList") as ListView;
                        if (list == null)
                        {
                            return;
                        }
                        list.ScrollIntoView(list.Items.GetItemAt(list.Items.Count - 1));
                    });
                });

                signalr.On("requestRemoved", (List <string> a) =>
                {
                    MyDispatcher.Invoke(delegate
                    {
                        foreach (var id in a)
                        {
                            Control.Model.Summaries.Remove(id);
                        }
                    });
                });

                signalr.On("version", (Models.PrefixVersion version) =>
                {
                    MyDispatcher.Invoke(delegate
                    {
                        if (!string.IsNullOrWhiteSpace(version?.version))
                        {
                            Control.Model.Version = $"v{version.version}";
                        }
                    });
                });

                _hub = signalr;
                _connectionChecker = new ConnectionChecker(MyDispatcher, hubConnection, this);
                _timer             = new Timer(_connectionChecker.CheckStatus, null, 0, 1500);
            }
            catch (Exception e)
            {
                Debug.Write(e);
            }
        }