示例#1
0
        public WorkspaceTransactionRemove(WorkspaceDirectoryInfo WorkspaceRootDir, StreamDirectoryInfo StreamRootDir, Dictionary <FileContentId, TrackedFileInfo> ContentIdToTrackedFile)
        {
            this.NewWorkspaceRootDir    = new WorkspaceDirectoryInfo(WorkspaceRootDir.GetLocation());
            this.ContentIdToTrackedFile = ContentIdToTrackedFile;

            using (ThreadPoolWorkQueue Queue = new ThreadPoolWorkQueue())
            {
                Queue.Enqueue(() => Merge(WorkspaceRootDir, NewWorkspaceRootDir, StreamRootDir, Queue));
            }
        }
        public WorkspaceTransactionAdd(WorkspaceDirectoryInfo WorkspaceRootDir, StreamDirectoryInfo StreamRootDir, Dictionary <FileContentId, TrackedFileInfo> ContentIdToTrackedFile)
        {
            this.NewWorkspaceRootDir = new WorkspaceDirectoryInfo(WorkspaceRootDir.GetLocation());

            this.ContentIdToTrackedFile = ContentIdToTrackedFile;

            List <WorkspaceFileInfo> WorkspaceFiles = WorkspaceRootDir.GetFiles();

            foreach (WorkspaceFileInfo WorkspaceFile in WorkspaceFiles)
            {
                ContentIdToWorkspaceFile[WorkspaceFile.ContentId] = WorkspaceFile;
            }

            using (ThreadPoolWorkQueue Queue = new ThreadPoolWorkQueue())
            {
                Queue.Enqueue(() => MergeDirectory(WorkspaceRootDir, NewWorkspaceRootDir, StreamRootDir, Queue));
            }
        }