Example #1
0
        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));
        }
Example #2
0
        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);
        }
Example #3
0
        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;
        }