// POST: /Analytics/ByProjectChart public ActionResult ByProjectChart(ByProjectViewModel model) { //projectDb.Projects.Where(x => x.IsParent.Equals(true)).GroupBy(y => y.City).Select(y => new MyViewModel{Name = y.Key}) List<Project> projList = new List<Project>(); findSubProjects(model.ProjectName, projList); /* from student in db.Students group student by student.EnrollmentDate into dateGroup */ List<string> projNameList = new List<string>(); List<double> projFundList = new List<double>(); for(int i=0; i < projList.Count; i++){ projNameList.Add(projList.ElementAt(i).Name + " (Rs." + projList.ElementAt(i).TotalAllocatedAmount + ")"); projFundList.Add(projList.ElementAt(i).TotalAllocatedAmount); } Project parent = projController.FindProjectByName(model.ProjectName); if (parent != null) { var remaining = parent.TotalAllocatedAmount - parent.TotalSpentAmount; projNameList.Add(model.ProjectName + " (Rs." + remaining + ")"); projFundList.Add(remaining); } var xValue = projNameList.ToArray(); var yValue = projFundList.ToArray(); ViewBag.xCol = xValue; ViewBag.yCol = yValue; return PartialView(); //ByProjectChart }
// GET: Analytics public ActionResult AnalyticsView(string ProjectName) { var model = new ByProjectViewModel(); var totalFund = projectDb.Funds.ToList().Sum(f => Convert.ToDouble(f.TotalAmount)); var result = projectDb.Projects.ToList().Where(p => p.IsParent).OrderBy(p => p.Name).Select(pp => new {pp.Name, amount = Convert.ToDouble(pp.TotalAllocatedAmount)}).ToArray(); /* var yValues = (from p in projectDb.Projects join f in projectDb.FundProjects on p.Id equals f.ProjectId group f by f.ProjectId into projGroup select new { pName = amount = projGroup.Sum(fp => Convert.ToDouble(fp.TotalAmount)) });*/ List<string> projNameList = new List<string>(); List<double> projellocatedList = new List<double>(); double projectsTotal = 0; for (int index = 0; index < result.Length; index++) { projNameList.Add(result.ElementAt(index).Name); projellocatedList.Add(result.ElementAt(index).amount); projectsTotal += result.ElementAt(index).amount; } if (totalFund > projectsTotal) { projNameList.Add("Unallocated"); projellocatedList.Add(totalFund - projectsTotal); } var xValue = projNameList.ToArray(); var yValue = projellocatedList.ToArray(); ViewBag.xCol = xValue; ViewBag.yCol = yValue; if (ProjectName != null) { var listLocations = projectDb.Projects.Where(r => r.Name.Equals(ProjectName)).OrderBy(r => r.Name).ToList().Select(rr => new SelectListItem { Value = rr.Location.ToString(), Text = rr.Location }).ToList(); model.LocationList = (IEnumerable<SelectListItem>)listLocations; return PartialView("ByProjectChart"); } var list = projectDb.Projects.OrderBy(r => r.Name).ToList().Select(rr => new SelectListItem { Value = rr.Name.ToString(), Text = rr.Name }).ToList(); model.ProjectList = (IEnumerable<SelectListItem>)list; model.LocationList = null; return View(model); }
// GET: Analytics public ActionResult AnalyticsView(string ProjectName) { var model = new ByProjectViewModel(); /* if (ProjectName != null) { var listLocations = projectDb.Projects.Where(r => r.Name.Equals(ProjectName)).OrderBy(r => r.Name).ToList().Select(rr => new SelectListItem { Value = rr.Location.ToString(), Text = rr.Location }).ToList(); model.LocationList = (IEnumerable<SelectListItem>)listLocations; return PartialView("ByProjectChart"); }*/ var list = projectDb.Projects.OrderBy(r => r.Name).ToList().Select(rr => new SelectListItem { Value = rr.Name.ToString(), Text = rr.Name }).ToList(); model.ProjectList = (IEnumerable<SelectListItem>)list; model.LocationList = null; return View(model); }
public ActionResult ProjectsFundsChart() { var model = new ByProjectViewModel(); var totalFund = projectDb.Funds.ToList().Sum(f => Convert.ToDouble(f.TotalAmount)); var result = projectDb.Projects.ToList().Where(p => p.IsParent).OrderBy(p => p.Name).Select(pp => new { pp.Name, amount = Convert.ToDouble(pp.TotalAllocatedAmount) }).ToArray(); List<string> projNameList = new List<string>(); List<double> projellocatedList = new List<double>(); double projectsTotal = 0; for (int index = 0; index < result.Length; index++) { var tempAmount = (result.ElementAt(index).amount) * 100 / totalFund; projNameList.Add(result.ElementAt(index).Name + " (" + tempAmount + "%)"); projellocatedList.Add(tempAmount); projectsTotal += tempAmount; } if (totalFund > projectsTotal) { var diff = (totalFund - projectsTotal) * 100 / totalFund; projNameList.Add("Unallocated" + " (" + diff + "%)"); projellocatedList.Add(diff); } var xValue = projNameList.ToArray(); var yValue = projellocatedList.ToArray(); ViewBag.xCol = xValue; ViewBag.yCol = yValue; return PartialView(); }