public BranchingStrategy( ILesserBranchRegex workItemRegex, IBranchesColorsAndRegices colorsAndRegices, Func <BranchingStrategy, ILesserBranchRegex, IBranchesColorsAndRegices, IEnumerable <IBranch>, IBranchesKnowledge> knowledgeMaker) { _workItemRegex = workItemRegex; _colorsAndRegices = colorsAndRegices; _knowledgeMaker = knowledgeMaker; }
public void PreProcessAllBranches(IEnumerable <IBranch> branches, ILesserBranchRegex lesserBranchesRegex) { _lesserBranches.Clear(); Regex r; if (!TryCreateRegex(lesserBranchesRegex, out r)) { return; } string[] lesserBranches = branches.Select(b => b.Label).Where(b => r.IsMatch(b)).ToArray(); foreach (string lesserBranch in lesserBranches) { _lesserBranches.Add(lesserBranch); } }
public BranchesKnowledge( ILesserBranchRegex workItemRegex , IWorkItemBranchSelectorFactory workItemBranchSelectorFactory , IBranchesColorsAndRegices colorsAndRegices , IEnumerable <IBranch> branches , ILogger <BranchesKnowledge> logger ) { _workItemRegex = workItemRegex; _colorsAndRegices = colorsAndRegices; _logger = logger; _lesserBranchSelector = workItemBranchSelectorFactory.MakeSelector(); _branchesToTypes = new Dictionary <IBranch, BranchLogicalType>(); _branchesInLogicalOrder = new List <IBranch>(); Initialise(branches); }
private bool TryCreateRegex(ILesserBranchRegex regexObject, out Regex regex) { regex = null; string regexString = regexObject?.RegexString; if (string.IsNullOrWhiteSpace(regexString)) { return(false); } try { regex = new Regex(regexString); } catch { regex = null; return(false); } return(true); }
public IBranchingStrategy GetStrategy(ILesserBranchRegex workItemRegex = null) { return(_strategyMaker(workItemRegex)); }