public int GetWorkflowStateIDByAlias(string alias) { vault.MetricGatherer.MethodCalled(); // TODO: verify int stateId = -1; foreach (WorkflowAdmin workflowAdmin in vault.Workflows) { for (int i = 1; i <= workflowAdmin.States.Count; ++i) { StateAdmin stateAdmin = workflowAdmin.States[i]; if (!stateAdmin.SemanticAliases.Value.Split(';').Contains(alias)) { continue; } if (stateId != -1) { return(-1); } stateId = stateAdmin.ID; } } return(stateId); }
public void Test_005_WorkflowStateFormating(string expectedAlias, int workflowId, int stateId, bool useShorthand = false) { WorkflowAdmin wfAdmin = this.V.WorkflowOperations.GetWorkflowAdmin(workflowId); StateAdmin stateAdmin = wfAdmin.States.Cast <StateAdmin>().Single(s => s.ID == stateId); FormatAlias(wfAdmin, stateAdmin, expectedAlias, useShorthand); }
public WorkflowAdmin AddWorkflowAdmin(WorkflowAdmin workflow) { vault.MetricGatherer.MethodCalled(); // TODO: verify if (workflow is TestWorkflowAdmin) { vault.Workflows.Add((TestWorkflowAdmin)workflow); } else { xWorkflowAdmin wkAdmin = new xWorkflowAdmin(workflow); TestWorkflowAdmin twka = new TestWorkflowAdmin(wkAdmin); vault.Workflows.Add(twka); } ValueListItem valueListItemWorkflow = new ValueListItem { ID = workflow.Workflow.ID, Name = workflow.Workflow.Name }; vault.ValueListItemOperations.AddValueListItem(( int )MFBuiltInValueList.MFBuiltInValueListWorkflows, valueListItemWorkflow); for (int i = 1; i <= workflow.States.Count; ++i) { StateAdmin stateAdmin = workflow.States[i]; ValueListItem valueListItemState = new ValueListItem { ID = stateAdmin.ID, Name = stateAdmin.Name, OwnerID = workflow.Workflow.ID }; vault.ValueListItemOperations.AddValueListItem(( int )MFBuiltInValueList.MFBuiltInValueListStates, valueListItemState); } return(workflow); }
/// <summary> /// State Alias Removal. /// </summary> /// <param name="id">State ID</param> /// <param name="alias">Alias to remove.</param> public void StateAlias(int id, string alias) { WorkflowAdmin wfAdmin; StateAdmin state = this.Vault.StateById(id, out wfAdmin ); // Search and Destroy. if (removeAlias(state.SemanticAliases, alias)) { // Save changes. this.Vault.WorkflowOperations.UpdateWorkflowAdmin( wfAdmin ); } }
private static void GetAssignTo(Vault vault, StateAdmin state, List <AssignTo> at, List <AssignedProperty> ps) { if (state.ActionAssignToUser) { SetAssignTo(vault, state.ActionAssignToUserDefinition.AssignedTo, at, ps); } if (state.ActionCreateSeparateAssignment) { var tasks = state.ActionDefinitions.Cast <ActionDefinition>().ToArray(); foreach (ActionDefinition ad in tasks) { var ac = ad.ActionCreateSeparateAssignment; var ug = ac.AssignedTo; SetAssignTo(vault, ug, at, ps); } } }
public void Add(int index, StateAdmin stateAdmin) { TestStateAdmin newState = (stateAdmin as TestStateAdmin) ?? new TestStateAdmin(stateAdmin); if (index == -1 || index == States.Count + 1) { States.Add(newState); } else if (index > States.Count) { throw new Exception("Index out of range: " + index); } else { // I hate 1 indexing States[index - 1] = newState; } }
/// <summary> /// Appends the alias to the workflow state transition object. /// </summary> /// <param name="alias">Alias to append.</param> /// <param name="wfa">Owner <see cref="StateTransition"/></param> /// <param name="transitionId">State Transition ID</param> public void StateTransitionAlias(string alias, WorkflowAdmin wfa, int transitionId) { // Resolve the State Admin object by id, from the workflow. StateAdmin state = wfa.States.Cast<StateAdmin>().SingleOrDefault(x => x.ID == transitionId); // Add the alias only if it does not already exist. if (!this.Vault.AliasExists(MFMetadataStructureItem.MFMetadataStructureItemState, alias)) { // Append a delimiter if needed. if (state != null) { // Should the delimiter be added? if( !state.SemanticAliases.Value.Trim().EndsWith(";") ) state.SemanticAliases.Value += ';'; // Append the alias. state.SemanticAliases.Value += alias; // Persist the change. this.Vault.WorkflowOperations.UpdateWorkflowAdmin(wfa); } } }
/// <summary> /// Clears the aliases of the <see cref="State"/> with the given id. /// </summary> /// <param name="id">State ID</param> public bool StateAlias(int id) { // Workflow State owner. WorkflowAdmin wfAdmin; // Resolve the state admin, by state id. StateAdmin state = this.Vault.StateById(id, out wfAdmin ); // Ensure a match was found. if( state != null ) { // Clear the aliases. state.SemanticAliases.Value = string.Empty; // Save changes. this.Vault.WorkflowOperations.UpdateWorkflowAdmin( wfAdmin ); // Return true as a match was not found. return true; } // Return false as a match was not found. return false; }
public TestStateAdmin(StateAdmin sa) : this(new xStateAdmin(sa)) { }