void Initialize(PlasticAPI plasticApi, IPlasticWebRestApi plasticWebRestApi) { ((IProgressControls)mProgressControls).ShowProgress(string.Empty); WorkspaceInfo[] allWorkspaces = null; IList allRepositories = null; IThreadWaiter waiter = ThreadWaiter.GetWaiter(10); waiter.Execute( /*threadOperationDelegate*/ delegate { mDefaultServer = GetDefaultServer.ToCreateWorkspace(plasticWebRestApi); allWorkspaces = plasticApi.GetAllWorkspacesArray(); allRepositories = plasticApi.GetAllRepositories( mDefaultServer, true); }, /*afterOperationDelegate*/ delegate { ((IProgressControls)mProgressControls).HideProgress(); if (waiter.Exception != null) { DisplayException(mProgressControls, waiter.Exception); return; } string serverSpecPart = string.Format("@{0}", mDefaultServer); mCreateWorkspaceState.RepositoryName = ValidRepositoryName.Get( string.Format("{0}{1}", mCreateWorkspaceState.RepositoryName, serverSpecPart), allRepositories); mCreateWorkspaceState.WorkspaceName = mCreateWorkspaceState.RepositoryName.Replace( serverSpecPart, string.Empty); mDialogUserAssistant = new CreateWorkspaceDialogUserAssistant( mWorkspacePath, allWorkspaces); OnRepositoryChanged( mDialogUserAssistant, mCreateWorkspaceState, mWorkspacePath); }); }
static void OnRepositoryChanged( CreateWorkspaceDialogUserAssistant dialogUserAssistant, CreateWorkspaceViewState createWorkspaceState) { if (dialogUserAssistant == null) { return; } dialogUserAssistant.RepositoryChanged( createWorkspaceState.RepositoryName, createWorkspaceState.WorkspaceName, createWorkspaceState.WorkspacePath); createWorkspaceState.WorkspaceName = dialogUserAssistant.GetProposedWorkspaceName(); }
static WorkspaceInfo CreateWorkspace( RepositorySpec repositorySpec, string projectPath) { CreateWorkspaceDialogUserAssistant assistant = new CreateWorkspaceDialogUserAssistant( PlasticGuiConfig.Get().Configuration.DefaultWorkspaceRoot, Plastic.API.GetAllWorkspacesArray()); assistant.RepositoryChanged( repositorySpec.ToString(), string.Empty, string.Empty); return(Plastic.API.CreateWorkspace( projectPath, assistant.GetProposedWorkspaceName(), repositorySpec.ToString())); }