public async Task <IActionResult> GetMembersByTimePeriodAsJson(CancellationToken cancellationToken)
        {
            String accessToken = await this.HttpContext.GetTokenAsync("access_token");

            ChartJsLineChartDataViewModel viewModel =
                await this.ApiClient.GetNumberOfMembersByTimePeriodReport(accessToken, "Year", this.User.Identity as ClaimsIdentity, cancellationToken);

            return(this.Json(viewModel));
        }
        public void ModelFactory_ConvertFrom_GetNumberOfMembersByTimePeriodReportResponse_ConvertedSuccessfully()
        {
            ModelFactory factory = new ModelFactory();

            GetNumberOfMembersByTimePeriodReportResponse apiResponse = ModelFactoryTestData.GetNumberOfMembersByTimePeriodReportResponse();

            ChartJsLineChartDataViewModel viewModel = factory.ConvertFrom(apiResponse);

            viewModel.Labels.ShouldNotBeEmpty();
            viewModel.Datasets.ShouldNotBeEmpty();
            viewModel.Datasets.Count.ShouldBe(1);
            viewModel.Datasets.First().Label.ShouldBe("Number Of Members");
            foreach (MembersByTimePeriodResponse membersByTimePeriodResponse in apiResponse.MembersByTimePeriodResponse)
            {
                viewModel.Labels.ShouldContain(membersByTimePeriodResponse.Period);
                viewModel.Datasets.First().Data.ShouldContain(membersByTimePeriodResponse.NumberOfMembers);
            }
        }
Exemple #3
0
        /// <summary>
        /// Converts from.
        /// </summary>
        /// <param name="apiResponse">The API response.</param>
        /// <returns></returns>
        public ChartJsLineChartDataViewModel ConvertFrom(GetNumberOfMembersByTimePeriodReportResponse apiResponse)
        {
            ChartJsLineChartDataViewModel viewModel = new ChartJsLineChartDataViewModel();

            ChartJsLineChartDataDataSet dataSet = new ChartJsLineChartDataDataSet();

            foreach (MembersByTimePeriodResponse membersByTimePeriodResponse in apiResponse.MembersByTimePeriodResponse)
            {
                dataSet.Label = "Number Of Members";
                dataSet.Data.Add(membersByTimePeriodResponse.NumberOfMembers);
                dataSet.LineTension          = 0.4;
                dataSet.BackgroundColor      = Color.CadetBlue.ToHex();
                dataSet.PointBackgroundColor = Color.Coral.ToHex();
                dataSet.PointRadius          = 3;
                dataSet.PointBorderWidth     = 2;
                dataSet.PointHitRadius       = 10;

                viewModel.Labels.Add(membersByTimePeriodResponse.Period);
            }

            viewModel.Datasets.Add(dataSet);

            return(viewModel);
        }