public RootBranch(Folders.RootBranchFolder location, IServiceLocator serviceLocator) { if (!location.QA.Exists()) { throw new ArgumentException($"There is no QA branch in {location.Name}"); } _location = location; _serviceLocator = serviceLocator; _mainDevBranchBuilder = _serviceLocator.GetInstance <IMainDevBranchBuilder>(); _productionBranch = new ProductionBranch(_location.PROD, this, _serviceLocator); }
public void Build(Folders.RootBranchFolder logicalBranchFolder, IEnumerable <ILogicalComponent> sourceComponents, Action <ProgressCallbackData> progressCallback = null) { if (logicalBranchFolder == null) { throw new ArgumentNullException(nameof(logicalBranchFolder)); } if (sourceComponents == null) { throw new ArgumentNullException(nameof(sourceComponents)); } if (DevBranchExists(logicalBranchFolder)) { throw new InvalidOperationException($"DEV branch already exists in {logicalBranchFolder.Name}"); } if (InProgress) { throw new InvalidOperationException("DEV branch creation already in progress"); } InProgress = true; try { var branchBuilder = new BranchBuilder(logicalBranchFolder.DEV.Main.Create(), sourceComponents, logicalBranchFolder.QA.Main, progressCallback); branchBuilder.Build(); } finally { InProgress = false; } }
public IRootBranch CreateRootBranch(Folders.RootBranchFolder logicalBranchFolder) { return(new RootBranch(logicalBranchFolder, _serviceLocator)); }
private IRootBranch CreateRootBranch(ISourceControlFolder folder) { var rootBranchFolder = new Folders.RootBranchFolder(TfsGateway.GetRootServerPath(), folder); return(_serviceLocator.GetInstance <ILogicalBranchComponentFactory>().CreateRootBranch(rootBranchFolder)); }
private bool DevBranchExists(Folders.RootBranchFolder logicalBranchFolder) { return(logicalBranchFolder.DEV.Main.Components.Exists()); }
public bool CanBuild(Folders.RootBranchFolder logicalBranchFolder) { return(!(InProgress || DevBranchExists(logicalBranchFolder))); }