Exemplo n.º 1
0
        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
                });
            });
        }
Exemplo n.º 2
0
        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
                    });
                });
            }
        }