Example #1
0
        protected override void OnInitialized()
        {
            Log.LogInformation("-> Configure.OnInitialized");

            if (Program.ClockToConfigure == null)
            {
                Nav.NavigateTo("/");
                return;
            }

            Host                 = Program.ClockToConfigure.Host;
            Clock                = Program.ClockToConfigure.CurrentClock;
            Host.UpdateUi       += HandlerUpdateUi;
            Host.RequestRefresh += HandlerRequestRefresh;

            CurrentClockMessage = Program.ClockToConfigure.CurrentClock.Message;
            CurrentEditContext  = new EditContext(CurrentClockMessage);
            CurrentEditContext.OnValidationStateChanged += CurrentEditContextOnValidationStateChanged;

            Log.LogInformation("OnInitialized ->");
        }
Example #2
0
        static void Main()
        {
            log.Info("Entering Application");

            IUnityContainer container = new UnityContainer();
            IDictionary <string, object> mainOjectMap;

            MainObjectBuilder mainObjectBuilder = new MainObjectBuilder(container);

            mainOjectMap = mainObjectBuilder.BuildMainObject();

            AutoMapBuilder autoMapBuilder = new AutoMapBuilder();

            autoMapBuilder.BuildAutoMap();

            HostConfiguration config = new HostConfiguration
            {
                UrlReservations = { CreateAutomatically = true }
            };

            log.Info("Open Connection to Server");
            Uri       uri = new Uri("http://localhost:2202");
            NancyHost host;

            try
            {
                host = new NancyHost(new CustomNancyBootstrapper(container), config, uri);
            }
            catch (Exception e)
            {
                throw e;
            }

            var signalRHostBaseAddress        = "http://+:8885";
            SignalRHost <Startup> signalRHost = SignalRHostBuilder <Startup> .BuildSignalRHost(signalRHostBaseAddress);

            try
            {
                log.Info("Starting Server Host");
                host.Start();
                Console.WriteLine($"Server is up : {uri.AbsoluteUri}");

                signalRHost.Open();
                Console.WriteLine(string.Format("Host Connection opened at: {0}", signalRHostBaseAddress));

                // example how to broadcast message to specific connection id
                //var context = GlobalHost.ConnectionManager.GetHubContext<MonitorHub>();
                //context.Clients.Client("connection id").addMessage("message");

                // read active connections every 5 seconds
                Thread readConnectionThread = new Thread(ReadConnections);
                readConnectionThread.Start();

                Console.ReadLine();
            }
            catch (Exception e)
            {
                Console.WriteLine(e.StackTrace);
            }
            finally
            {
                host.Stop();
                signalRHost.Close();
                Console.WriteLine(string.Format("SignalR Host closed: {0}", signalRHostBaseAddress));
            }
        }
Example #3
0
        protected override async Task OnInitializedAsync()
        {
            Log.LogInformation("-> Host.OnInitializedAsync");

#if !DEBUG
            if (Branding.MustAuthorize)
            {
                var authState = await AuthenticationStateTask;

                if (authState == null ||
                    authState.User == null ||
                    authState.User.Identity == null ||
                    !authState.User.Identity.IsAuthenticated)
                {
                    Log.LogWarning("Unauthenticated");
                    return;
                }
            }
#endif

            if (Program.ClockToConfigure == null)
            {
                Handler = new SignalRHost(
                    Config,
                    LocalStorage,
                    Log,
                    Http,
                    Nav,
                    Session);
            }
            else
            {
                Handler = Program.ClockToConfigure.Host;
                Program.ClockToConfigure.Host = null;
            }

            Log.LogTrace("Check authorization");
            await Handler.CheckAuthorize();

            if (Handler.IsAuthorized != null &&
                !Handler.IsAuthorized.Value)
            {
                Log.LogError("No authorization");
                return;
            }
            else if (!Handler.IsConnected &&
                     Handler.IsInError)
            {
                Log.LogError("Offline");
                return;
            }

            if (Branding.AllowSessionSelection)
            {
                await Handler.CheckState();
            }

            Handler.UpdateUi       += HandlerUpdateUi;
            Handler.RequestRefresh += HandlerRequestRefresh;
            await Handler.Connect();
        }