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()); } }
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()) } ); }