コード例 #1
0
ファイル: Filesystem.cs プロジェクト: denn-yakovlev/CodeShare
        public void Mount(object sender, ConnToProjectEventArgs e)
        {
            var project = dbInteractor.Projects.Read(e.ProjectId);

            foreach (var file in project.Files)
            {
                var       pathParts = file.Path.Split("/", StringSplitOptions.RemoveEmptyEntries);
                Directory previous  = Root;
                for (int i = 0; i < pathParts.Length - 1; i++)
                {
                    previous = previous.Dir(pathParts[i]);
                }
                previous.File(pathParts.Last());
            }
        }
コード例 #2
0
ファイル: Filesystem.cs プロジェクト: denn-yakovlev/CodeShare
        public void Unmount(object sender, ConnToProjectEventArgs e)
        {
            var project      = dbInteractor.Projects.Read(e.ProjectId);
            var projectDir   = Root.Items.SingleOrDefault(item => item.Name == e.ProjectId) as Directory;
            var projectFiles = GetAllFilesFrom(projectDir);

            if (projectDir != null)
            {
                Root.Items.Remove(projectDir);
            }
            dbInteractor.Projects.Update(
                e.ProjectId,
                new Models.Project
            {
                Name        = project.Name,
                Description = project.Description,
                Owner       = project.Owner,
                Files       = projectFiles.Select(f => f.ToModel())
            }
                );
        }