public string SiteNum() { var obj = new JArray(); List <string> sites = GetAllSites(); //get all projects's sites, class and Purpose List <Users> user = db.Users.ToList(); List <Projects> project = db.Projects.ToList(); var result = from p in project join u in user on p.UserId equals u.UserId select new { u.Site, u.Class }; foreach (var item in sites) { List <Chart.SiteData> datas = new List <Chart.SiteData>(); var a = result.Where(p => p.Site == item).GroupBy(x => x.Class).Select(c => new { Char = c.Key, Count = c.Count() }).ToList(); if (a.Count() != 0) { for (int i = 0; i < a.Count(); i++) { var b = a[i]; Chart.SiteData temp = new Chart.SiteData(); temp.ClassName = b.Char; temp.Num = b.Count; datas.Add(temp); } } else { //沒有資料填無 Chart.SiteData temp = new Chart.SiteData(); temp.ClassName = "無"; temp.Num = 1; datas.Add(temp); } SiteArray ary = new SiteArray(); ary.Site = item; ary.SiteData = datas; obj.Add(JObject.FromObject(ary)); } var convertJson = JsonConvert.SerializeObject(obj, Formatting.Indented); return(convertJson); }
public string AllSiteNum() { //get all projects's sites and Purpose List <Users> user = db.Users.ToList(); List <Projects> project = db.Projects.ToList(); var result = from p in project join u in user on p.UserId equals u.UserId select new { u.Site, p.Purpose }; //get all sites List <string> sites = GetAllSites(); var obj = new JArray(); //User的Site foreach (var item in sites) { List <Chart.SiteData> datas = new List <Chart.SiteData>(); String[] purpose = { "尋找關鍵因子", "預測迴歸趨勢", "時間序列分析" }; for (int i = 0; i < purpose.Count(); i++) { Chart.SiteData temp = new Chart.SiteData(); temp.ClassName = purpose[i]; temp.Num = result.Where(p => p.Purpose == purpose[i] && p.Site == item).Count(); datas.Add(temp); } SiteArray ary = new SiteArray(); ary.Site = item; ary.SiteData = datas; obj.Add(JObject.FromObject(ary)); } var convertJson = JsonConvert.SerializeObject(obj, Formatting.Indented); return(convertJson); }