public JsonResult MarkModule(int id, DashboardModel.State state) { var im = _modules.Single(x => x.Id == id); var pending = Pending; if (!checkRequirements(im)) { return Json(new { success = false, error = "Not all required modules are installed or pending." }); } var ex = pending.Find(m => m.ID == id); if (ex != null) pending.Remove(ex); pending.Add(new DashboardModel.Module(im.Id, im.Version, im.Name, state, im.Requirements.RequredModules)); return Json(new { success = true }); }
private void getRequiredModules(DashboardModel.Module dmm, List<DashboardModel.Module> ordered, List<DashboardModel.Module> all) { foreach (var id in dmm.Required) { var rm = all.Find(m => m.ID == id); if (rm != null) { getRequiredModules(rm, ordered, all); } } if (!ordered.Contains(dmm)) ordered.Add(dmm); }
public ActionResult Dashboard() { DashboardModel model = new DashboardModel() { Modules = GetDashboardModules() }; return View("Dashboard", model); }