private SecurityDefinition[] BuildBusinessManagers(StepBuilder sb) { var s = sb.Security(); return(s?.BusinessAdministrators.Select(a => new SecurityDefinition(a.Item1, a.Item2)).ToArray() ?? new SecurityDefinition[] {}); }
private SecurityDefinition[] BuildPotentialOwners(StepBuilder sb) { var s = sb.Security(); return(s?.PotentialOwners.Select(a => new SecurityDefinition(a.Item1, a.Item2)).ToArray() ?? new SecurityDefinition[] {}); }
public LinkBuilder To(string id) { id.NotNull("id").NotEmptyString("id"); if (_from != null && _from.Id == id) { throw new ArgumentException($"Step id:{id} cannot be linked to itself."); } Tuple <StepBuilder, StepTypeEnum> step; if (!_processBuilder.TryFindStep(id, out step)) { throw new ArgumentException($"Step id:{id} does not exist"); } _to = step.Item1; return(this); }
/// <summary> /// Removes the specified step builder. /// </summary> /// <param name="stepBuilder">The step builder.</param> /// <returns></returns> internal bool Remove(StepBuilder stepBuilder) { if (_steps.Remove(stepBuilder.Id)) { var outgoings = _links.Where(l => l.Key.Item1 == stepBuilder.Id).Select(l => l.Key).ToList(); var incoming = _links.Where(l => l.Key.Item2 == stepBuilder.Id).Select(l => l.Key).ToList(); foreach (var k in outgoings) { _links.Remove(k); } foreach (var k in incoming) { _links.Remove(k); } } return(false); }
public LinkBuilder From(string id) { id.NotNull("id").NotEmptyString("id"); if (_to != null && _to.Id == id) { throw new ArgumentException($"Step id:{id} cannot be linked to itself."); } Tuple <StepBuilder, StepTypeEnum> step; if (!_processBuilder.TryFindStep(id, out step)) { throw new ArgumentException($"Step id:{id} does not exist"); } if (step.Item2 == StepTypeEnum.End) { throw new ArgumentException($"Step id:{id} is an end step and cannot have outgoing links"); } _from = step.Item1; return(this); }
private StepDefinition[] BuildStepDefinitions() { List <StepDefinition> steps = new List <StepDefinition>(); foreach (StepContainer container in _steps.Values) { StepBuilder sb = container.Builder; if (sb.RequiredVars != null) { StepDefinition sd = new StepDefinition(id: GenerateStepId(), stepId: sb.Id, description: sb.Description, actions: sb.Actions.Select(a => new ActionDefinition(a.ActionName, a.ActionDescription, a.IsSkippable)).ToArray(), name: sb.Name, isStart: container.StepType == StepTypeEnum.Start, isEnd: container.StepType == StepTypeEnum.End, potentialOwners: BuildPotentialOwners(sb), businessManagers: BuildBusinessManagers(sb), onEntry: BuildScript(sb.OnEntry()), onExit: BuildScript(sb.OnExit()), varMaps: BuildVarMaps(sb.RequiredVars), stepHandler: BuildStepHandler(sb.StepHandler)); steps.Add(sd); } } return(steps.ToArray()); }
internal StepContainer(StepBuilder builder, StepTypeEnum stepTypeEnum) { Builder = builder; StepType = stepTypeEnum; }