public ActionResult ViewLeaderboard() { FungeyeDAL DAL = new FungeyeDAL(); List <UserMushroom> emails = DAL.GetAllUserMushrooms(); //select Email, count(distinct MushroomID) [UniqueIds], count(mushroomId) [Total] from UserMushroom group by email var groups = emails.GroupBy(x => x.Email).Select(x => new { EmailName = x.Key, EmailCount = x.Count() }).OrderBy(x => x.EmailCount).Reverse().ToList(); var uniqueC = DAL.GetUniqueMushroomCount(); var lst = (from res in groups join res2 in uniqueC on res.EmailName equals res2.Email select new Leaderboard { Email = res.EmailName, TotalCount = res.EmailCount, UniqueCount = res2.Count }).ToList(); ViewBag.Leaderboard = lst.OrderByDescending(x => x.TotalCount).ToList(); return(View()); }
public ActionResult UserMushroomMapView() { FungeyeDAL DAL = new FungeyeDAL(); List <UserMushroom> userMushrooms = DAL.GetAllUserMushrooms(); string result = ""; for (int i = 0; i < userMushrooms.Count; i++) { result += $"{{ \"title\": \"{userMushrooms[i].MushroomID}\", \"lat\": {userMushrooms[i].Latitude}, \"lng\": {userMushrooms[i].Longitude}, \"description\": \"{userMushrooms[i].UserDescription}\", \"address\": \"{userMushrooms[i].Address}\", \"ImageLink\": \"{userMushrooms[i].PictureURL}\"}},"; } string resul = result.Substring(0, result.Length - 1); string json = $"[{resul}]"; ViewBag.Json = json; return(View()); }
public ContentResult SortLeaderboard(string sortOption) { FungeyeDAL DAL = new FungeyeDAL(); List <UserMushroom> userMushrooms = DAL.GetAllUserMushrooms(); var groups = userMushrooms.GroupBy(x => x.Email).Select(x => new { EmailName = x.Key, EmailCount = x.Count() }).OrderBy(x => x.EmailCount).Reverse().ToList(); var uniqueC = DAL.GetUniqueMushroomCount(); var lst = (from res in groups join res2 in uniqueC on res.EmailName equals res2.Email select new Leaderboard { Email = res.EmailName, TotalCount = res.EmailCount, UniqueCount = res2.Count }).ToList(); if (sortOption == "totalCount") { lst = lst.OrderByDescending(x => x.TotalCount).ToList(); } else if (sortOption == "uniqueCount") { lst = lst.OrderByDescending(x => x.UniqueCount).ToList(); } else { lst = lst.OrderBy(x => x.Email).ToList(); } var list = JsonConvert.SerializeObject(lst, Formatting.None, new JsonSerializerSettings() { ReferenceLoopHandling = ReferenceLoopHandling.Ignore }); return(Content(list, "application/json")); }