public ServerMetricNetworkValuesWindow(ServerMetric serverMetric)
        {
            InitializeComponent();

            this.ServerMetric = serverMetric;

            if (this.ServerMetric.TimeSeries.NetworkValues.Count() > 0)
            {
                PpsInSeriesCollection = new SeriesCollection
                {
                    new LineSeries
                    {
                        Title  = "PPS In",
                        Values = this.GetChartValues(this.ServerMetric.TimeSeries.NetworkValues[0].PPSIn)
                    }
                };

                PpsOutSeriesCollection = new SeriesCollection
                {
                    new LineSeries
                    {
                        Title  = "PPS Out",
                        Values = this.GetChartValues(this.ServerMetric.TimeSeries.NetworkValues[0].PPSOut)
                    }
                };

                BandwidthInSeriesCollection = new SeriesCollection
                {
                    new LineSeries
                    {
                        Title  = "Bandwidth In",
                        Values = this.GetChartValues(this.ServerMetric.TimeSeries.NetworkValues[0].BandwithIn)
                    }
                };

                BandwidthOutSeriesCollection = new SeriesCollection
                {
                    new LineSeries
                    {
                        Title  = "Bandwidth Out",
                        Values = this.GetChartValues(this.ServerMetric.TimeSeries.NetworkValues[0].BandwithOut)
                    }
                };
            }
            else
            {
                this.ShowMessageAsync("note", "no entries available");
            }

            DataContext = this;
        }
        public ServerMetricCpuValuesWindow(ServerMetric serverMetric)
        {
            InitializeComponent();

            this.ServerMetric = serverMetric;

            SeriesCollection = new SeriesCollection
            {
                new LineSeries
                {
                    Title  = "CPU-Values",
                    Values = this.GetChartValues(this.ServerMetric.TimeSeries.CpuValues)
                }
            };

            DataContext = this;
        }
        public ServerMetricDiskValuesWindow(ServerMetric serverMetric)
        {
            InitializeComponent();

            this.ServerMetric = serverMetric;

            IopsReadSeriesCollection = new SeriesCollection
            {
                new LineSeries
                {
                    Title  = "IOPS Read",
                    Values = this.GetChartValues(this.ServerMetric.TimeSeries.DiskValues[0].IOPSRead)
                }
            };

            IopsWriteSeriesCollection = new SeriesCollection
            {
                new LineSeries
                {
                    Title  = "IOPS Write",
                    Values = this.GetChartValues(this.ServerMetric.TimeSeries.DiskValues[0].IOPSWrite)
                }
            };

            BandwidthReadSeriesCollection = new SeriesCollection
            {
                new LineSeries
                {
                    Title  = "Bandwidth Read",
                    Values = this.GetChartValues(this.ServerMetric.TimeSeries.DiskValues[0].BandwithRead)
                }
            };

            BandwidthWriteSeriesCollection = new SeriesCollection
            {
                new LineSeries
                {
                    Title  = "Bandwidth Write",
                    Values = this.GetChartValues(this.ServerMetric.TimeSeries.DiskValues[0].BandwithWrite)
                }
            };

            DataContext = this;
        }
        private async void ServerNetworkMetricsContextMenu_Click(object sender, RoutedEventArgs e)
        {
            lkcode.hetznercloudapi.Api.Server server = this.ServerDataGrid.SelectedItem as lkcode.hetznercloudapi.Api.Server;

            ServerMetric serverMetric = null;

            try
            {
                this.AddLogMessage(string.Format("get network metrics for server '{0}'", server.Name));

                serverMetric = await server.GetMetrics(ServerMetricType.NETWORK, DateTimeHelper.GetAsIso8601String(DateTime.Now.AddDays(-30)), DateTimeHelper.GetAsIso8601String(DateTime.Now));

                this.AddLogMessage(string.Format("success: get network metrics for server '{0}'", server.Name));
            }
            catch (Exception err)
            {
                this.AddLogMessage(string.Format("error: {0}", err.Message));
            }

            ServerMetricNetworkValuesWindow win = new ServerMetricNetworkValuesWindow(serverMetric);

            win.Show();
        }
        public ServerMetricCpuValuesWindow(ServerMetric serverMetric)
        {
            InitializeComponent();

            this.ServerMetric = serverMetric;

            ChartValues <double> cpuValues = new ChartValues <double>();

            foreach (ServerMetricCpuValue cpuValue in ServerMetric.TimeSeries.CpuValues)
            {
                cpuValues.Add(cpuValue.Value);
            }

            SeriesCollection = new SeriesCollection
            {
                new LineSeries
                {
                    Title  = "CPU-Values",
                    Values = cpuValues
                }
            };

            DataContext = this;
        }
 ///GENMHASH:4AB2D6CDCFE00A6C02A7E1E798E9A763:C0C35E00AF4E17F141675A2C05C7067B
 internal ServerMetricImpl(ServerMetric innerObject)
     : base(innerObject)
 {
 }