Пример #1
0
        public Dashboard(ILiveDataService liveDataService)
        {
            AddProperty <string>("Download").SubscribeTo(liveDataService.Download);
            AddProperty <string>("Upload").SubscribeTo(liveDataService.Upload);
            AddProperty <string>("Latency").SubscribeTo(liveDataService.Latency);
            AddProperty <int>("Users").SubscribeTo(liveDataService.Users);
            AddProperty <int[]>("Traffic").SubscribeTo(liveDataService.Traffic);
            AddProperty <int[]>("ServerUsage").SubscribeTo(liveDataService.ServerUsage);
            AddProperty <int[]>("Utilization").SubscribeTo(liveDataService.Utilization);

            AddProperty <Activity[]>("RecentActivities").SubscribeTo(liveDataService.RecentActivity.Select(value =>
            {
                var activities = new Queue <Activity>(Get <Activity[]>("RecentActivities")?.Reverse() ?? new Activity[] { });
                activities.Enqueue(new Activity
                {
                    PersonName = value.PersonName,
                    Status     = value.Status,
                    Route      = this.Redirect(AppLayout.FormPagePath, value.Id.ToString())
                });

                if (activities.Count > 4)
                {
                    activities.Dequeue();
                }

                return(activities.Reverse().ToArray());
            }));

            // Regulate data update interval to no less than every 200 msecs.
            _subscription = Observable
                            .Interval(TimeSpan.FromMilliseconds(200))
                            .StartWith(0)
                            .Subscribe(_ => PushUpdates());
        }
Пример #2
0
        public Dashboard(ILiveDataService liveDataService)
        {
            AddProperty <RenderDataModel>("ImageRender").SubscribeTo(liveDataService.ImageRender);

            // Regulate data update interval to no less than every 200 msecs.
            _subscription = Observable.Interval(TimeSpan.FromMilliseconds(200)).StartWith(0)
                            .Subscribe(_ => PushUpdates());
        }
Пример #3
0
 public WebhooksController(IQueue <string> payloadQueue,
                           ISignatureVerifier signatureVerifier,
                           ILogger <WebhooksController> logger,
                           IEmployeeService employeeService,
                           ILiveDataService service)
 {
     _signatureVerifier = signatureVerifier;
     _logger            = logger;
     _employeeService   = employeeService;
     _contactObservable = service.RecentActivity as ContactObservable;
 }
Пример #4
0
        public Dashboard(ILiveDataService liveDataService)
        {
            AddProperty <string>("Download")
            .WithAttribute(new { Label = "Download", Icon = "cloud_download" })
            .SubscribeTo(liveDataService.Download);

            AddProperty <string>("Upload")
            .WithAttribute(new { Label = "Upload", Icon = "cloud_upload" })
            .SubscribeTo(liveDataService.Upload);

            AddProperty <string>("Latency")
            .WithAttribute(new { Label = "Latency", Icon = "network_check" })
            .SubscribeTo(liveDataService.Latency);

            AddProperty <int>("Users")
            .WithAttribute(new { Label = "Users", Icon = "face" })
            .SubscribeTo(liveDataService.Users);

            AddProperty <int[]>("Traffic").SubscribeTo(liveDataService.Traffic);

            AddProperty <int[]>("Utilization")
            .WithAttribute(new ChartAttribute {
                Labels = new string[] { "Memory", "Disk", "Network" }
            })
            .SubscribeTo(liveDataService.Utilization);

            AddProperty <int[]>("ServerUsage").SubscribeTo(liveDataService.ServerUsage)
            .WithAttribute(new ChartAttribute {
                Labels = new string[] { "dns", "sql", "nethst", "w2k", "ubnt", "uat", "ftp", "smtp", "exch", "demo" }
            });

            AddProperty <Activity[]>("RecentActivities")
            .SubscribeTo(liveDataService.RecentActivity.Select(value =>
            {
                var activities = new Queue <Activity>(Get <Activity[]>("RecentActivities")?.Reverse() ?? new Activity[] { });
                activities.Enqueue(value);
                if (activities.Count > 4)
                {
                    activities.Dequeue();
                }

                return(activities.Reverse().ToArray());
            }));

            // Regulate data update interval to no less than every 200 msecs.
            _subscription = Observable
                            .Interval(TimeSpan.FromMilliseconds(200))
                            .StartWith(0)
                            .Subscribe(_ => PushUpdates());
        }