public ActionResult LoadProject(int projectId) { ProjectRepository repo = new ProjectRepository(); dynamic config; Project project = repo.LoadProject(projectId, out config); if (project == null) { return(HttpNotFound()); } if (!project.IsSample) { if (!User.Identity.IsAuthenticated) { return(HttpNotFound()); //td: right error } if (User.Identity.GetUserId() != project.UserID) { return(HttpNotFound()); //td: right error } } var path = new Scope(null) as dynamic; path.ToolPath = Path.Combine(Server.MapPath("~/App_Data"), "Tools"); IRuntimeProject runtime = _manager.createRuntime(project.ProjectType, project.Name, config, path, new ProjectStorage(project)); foreach (var file in project.ProjectFiles) { runtime.add(file.Name, file.ID, file.Contents); } Session["project"] = runtime; if (!project.IsSample) { Session["projectId"] = project.ID; } else { Session["SampleProjectId"] = project.ID; } return(Json(new { defaultFile = runtime.defaultFile(), tree = new[] { projectTree(project, runtime) } }, JsonRequestBehavior.AllowGet)); }
private TreeNode projectTree(Project project, IRuntimeProject runtime) { TreeNode result = new TreeNode { label = project.Name, icon = "fa-sitemap", actions = new[] { new TreeNodeAction { id = "add-class", icon = "fa-plus-circle" } }, children = project.ProjectFiles .Where(projectFile => !projectFile.isHidden) .Select <ProjectFile, TreeNode>(projectFile => { return(new TreeNode { label = projectFile.Name, icon = "fa-code", action = "select-file", data = projectFile.Name, actions = new[] { new TreeNodeAction { id = "remove-file", icon = "fa-times-circle-o" }, new TreeNodeAction { id = "open-tab", icon = "fa-arrow-circle-o-right" }, }.Union(runtime.fileActions(projectFile.Name)) }); }) }; return(result); }
private TreeNode projectTree(Project project, IRuntimeProject runtime) { TreeNode result = new TreeNode { label = project.Name, icon = "fa-sitemap", actions = new[] { new TreeNodeAction { id = "add-class", icon = "fa-plus-circle" } } , children = project.ProjectFiles .Where(projectFile => !projectFile.isHidden) .Select<ProjectFile, TreeNode>(projectFile => { return new TreeNode { label = projectFile.Name, icon = "fa-code", action = "select-file", data = projectFile.Name, actions = new[] { new TreeNodeAction { id = "remove-file", icon = "fa-times-circle-o" }, new TreeNodeAction { id = "open-tab", icon = "fa-arrow-circle-o-right" }, }.Union(runtime.fileActions(projectFile.Name)) }; }) }; return result; }