Exemplo n.º 1
0
        internal void FillAnalytics()
        {
            if (_controller.SelectedApplication == null)
            {
                return;
            }

            IsLoading(true);

            _appNameLabel.Text = _controller.SelectedApplication.Name.UppercaseFirst();

            Task.Run(async() =>
            {
                var audienceAnalytics = _controller.LoadAudienceAnalytics(_controller.SelectedApplication.OwnerName, _controller.SelectedApplication.Name);
                var sessionAnalytics  = _controller.LoadSessionAnalytics(_controller.SelectedApplication.OwnerName, _controller.SelectedApplication.Name);

                await Runtime.RunInMainThread(() =>
                {
                    _devicesPlotView.Model   = _controller.CreatePiePlotModel(audienceAnalytics, Models.AudienceAnalyticsType.Devices);
                    _countriesPlotView.Model = _controller.CreatePiePlotModel(audienceAnalytics, Models.AudienceAnalyticsType.Countries);
                    _languagesPlotView.Model = _controller.CreatePiePlotModel(audienceAnalytics, Models.AudienceAnalyticsType.Languages);
                    _usersPlotView.Model     = _controller.CreateBarPlotModel(audienceAnalytics);

                    _devicesPlotView.SetSizeRequest(200, 200);
                    _devicesPlotView.ShowAll();

                    _countriesPlotView.SetSizeRequest(200, 200);
                    _countriesPlotView.ShowAll();

                    _devicesPlotView.SetSizeRequest(200, 200);
                    _devicesPlotView.ShowAll();

                    _usersPlotView.ShowAll();

                    _durationsStore.Clear();

                    foreach (var item in sessionAnalytics.Durations)
                    {
                        var row = _durationsStore.AddRow();
                        _durationsStore.SetValue(row, _descriptionField, item.Description);
                        _durationsStore.SetValue(row, _countField, item.Count);
                    }

                    _statisticsStore.Clear();

                    foreach (var item in sessionAnalytics.Statistics)
                    {
                        var row = _statisticsStore.AddRow();
                        _statisticsStore.SetValue(row, _statisticsDescriptionField, item.Description);
                        _statisticsStore.SetValue(row, _statisticsCountField, item.Count);
                        _statisticsStore.SetValue(row, _statisticsChangeField, item.Change);
                    }

                    IsLoading(false);
                });
            });
        }