如何获得DotNet.HighChart每天的新用户数

时间:2014-10-22 13:44:22

标签: c# highcharts asp.net-mvc-5

我在我的项目中集成了DotNet Chart,并试图查看我是否可以获得每个月注册的用户数量,并在该月份的天数中重复使用

我有一个用户模型,其中一个属性是SignUp日期,那么请问我该如何使用它来提取数据数天并在图表中显示

//
    // GET: /AppUser/Details/5 - returns all App Users
   // [Route("users/")]
    public ActionResult Chart()
    {
       //This is were and getting the data from database, Please how can I break It down?
       var users = _appUserService.GetAllUsers().Where(x => x.SignupDate == DateTime.Now); 

        DotNet.Highcharts.Highcharts chart = new DotNet.Highcharts.Highcharts("chart")
        .SetXAxis(new XAxis
        {
            Categories = new[] { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", 
                                "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31" }
        })
        .InitChart(new Chart { DefaultSeriesType = ChartTypes.Line })
        .SetTitle(new Title { Text = "User Registration per Day" })
        .SetSubtitle(new Subtitle { Text = "Total Count" })
        .SetYAxis(new YAxis { Title = new YAxisTitle { Text = "Approximate Count" } })
        .SetSeries(new Series
        {
            Name = "Monthly Days",
            Data = new Data(new object[] { 29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4, 29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4, 29.9, 71.5, 106.4, 129.2, 144.0, 176.0 })
        });

        return View(chart);
    }

1 个答案:

答案 0 :(得分:0)

我终于明白了 这就是

 // Quering all Newly Registered Users by Day
        var queryUsers = _appUserService.GetAllUsers()
            .Where(w => w.SignupDate.Month == DateTime.Now.Month)
            .GroupBy(g => g.SignupDate.Day)
            .OrderBy(o => o.Key)
            .Select(grp => new { Day = grp.Key, Count = grp.Count() });

        int[] userCategories = queryUsers.Select(x => x.Day).ToArray();
        string[] resultUserCategories = userCategories.Select(x => x.ToString()).ToArray();

        int[] userData = queryUsers.Select(x => x.Count).ToArray();
        object[] userObjArry = userData.Cast<object>().ToArray();

        DotNet.Highcharts.Highcharts userChart = new DotNet.Highcharts.Highcharts("userchart")

        .SetXAxis(new XAxis
        {
            Categories = resultUserCategories
        }

        )
        .InitChart(new Chart { DefaultSeriesType = ChartTypes.Line })
        .SetTitle(new Title { Text = "Daily Record" })
        .SetSubtitle(new Subtitle { Text = "Total Count" })
        .SetYAxis(new YAxis { Title = new YAxisTitle { Text = "Approximate Count" } })

        .SetSeries(new[]{
        new Series
        {
            Name = Convert.ToString("Number of New Users"),
            Data = new Data(userObjArry)
        }
        });


        return PartialView("_Users", userChart);