private void RegisterHandlers() { var broker = Broker.GetBroker(); broker.RegisterHandler <GetScreenSizeRequest>(request => { var screens = System.Windows.Forms.Screen.AllScreens; var responce = new GetScreenSizeResponce { Height = (int)SystemParameters.VirtualScreenHeight, Width = (int)SystemParameters.VirtualScreenWidth, Screens = screens.Select(s => new ScreenSize { Left = s.Bounds.X, Top = s.Bounds.Y, Width = s.Bounds.Width, Height = s.Bounds.Height }) }; return(responce); }); broker.RegisterHandler <GetFontsRequest>(request => { return(new GetFontsResponce { Fonts = System.Drawing.FontFamily.Families.Select(f => f.Name) }); }); broker.RegisterHandler <StartShowRequest>(request => { var requestData = request as StartShowRequest; Dispatcher.Invoke(() => { _window.Height = requestData.Screens.Displays.Max(d => d.Top + d.Height) - requestData.Screens.Displays.Min(d => d.Top); _window.Width = requestData.Screens.Displays.Max(d => d.Left + d.Width) - requestData.Screens.Displays.Min(d => d.Left); _window.Left = requestData.Screens.Displays.Min(d => d.Left); _window.Top = requestData.Screens.Displays.Min(d => d.Top); var bc = new Media.BrushConverter(); var border = new Border(); if (ColorConverter.TryToParseRGB(requestData.Background, out string colorHex)) { border.Background = (Media.Brush)bc.ConvertFrom(colorHex); } var canvas = new Canvas(); var blockBuilder = new BlockBuilder(); foreach (var block in requestData.Blocks) { var element = blockBuilder.BuildElement(block); if (element != null) { canvas.Children.Add(element); } } border.Child = canvas; _window.Content = border; _window.Show(); }); return(null); }); broker.RegisterHandler <StopShowRequest>(request => { Dispatcher.Invoke(() => { _window.Visibility = Visibility.Hidden; }); return(null); }); broker.RegisterHandler <GetVersionRequest>(request => { var version = Assembly.GetExecutingAssembly().GetName().Version; return(new GetVersionResponce { Major = version.Major, Minor = version.Minor, Build = version.Build }); }); }
protected override void ApplicationStartup(TinyIoCContainer container, IPipelines pipelines) { //var config = container.Resolve<IConfigSettings>(); container.AttachNancyBundle <BundleConfig>(cfg => { cfg.AddContentGroup(new CssBundles()); cfg.AddContentGroup(new VendorJsBundles()); cfg.AddContentGroup(new AppJsBundles()); cfg.AddContentGroup(new MasterJsBundle()); }); container.Register <IConfiguration, Configuration>(); container.Register <IUnitOfWorkFactory, UnitOfWorkFactory>(); container.Register <ICryptoProvider, CryptoProvider>(); container.Register <IAccountController, AccountController>(); container.Register <ISystemController, SystemController>(); container.Register <IBlockController, BlockController>(); container.Register <IOperationController, OperationController>(); container.Register <ISerializationController, SerializationController>(); CustomStatusCode.AddCode(404); pipelines.OnError += (ctx, ex) => { return(null); }; var config = container.Resolve <IConfiguration>(); if (config.BrokerType.Equals("Fake", System.StringComparison.InvariantCultureIgnoreCase)) { var broker = Broker.GetBroker(); broker.RegisterHandler <GetScreenSizeRequest>((request) => { var height = 480; var width = 640; var responce = new GetScreenSizeResponce { Height = height * 2, Width = width * 2, Screens = new ScreenSize[] { new ScreenSize { Height = height, Width = width, Top = 0, Left = 0 }, new ScreenSize { Height = height, Width = width, Top = 0, Left = width }, new ScreenSize { Height = height, Width = width, Top = height, Left = 0 }, new ScreenSize { Height = height, Width = width, Top = height, Left = width } } }; return(responce); }); broker.RegisterHandler <GetFontsRequest>(request => { return(new GetFontsResponce { Fonts = new string[] { "Arial", "Calibri", "Comic Sans MS", "Consolas", "Courier New", "Tahoma", "Times New Roman" } }); }); broker.RegisterHandler <StartShowRequest>(reqest => { return(null); }); broker.RegisterHandler <GetVersionRequest>(request => { return(new GetVersionResponce { Major = 12, Minor = 34, Build = 56 }); }); } }