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);
        }
示例#2
0
        public void Test_006_WorkflowStateTransitionFormating(string expectedAlias, int workflowId, int transitionId, bool useShorthand = false)
        {
            WorkflowAdmin   wfAdmin = this.V.WorkflowOperations.GetWorkflowAdmin(workflowId);
            StateTransition stAdmin = wfAdmin.StateTransitions.Cast <StateTransition>().Single(st => st.ID == transitionId);

            FormatAlias(wfAdmin, stAdmin, expectedAlias, useShorthand);
        }
示例#3
0
        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);
        }
示例#4
0
			/// <summary>
			/// Appends the alias to the workflow object.
			/// </summary>
			/// <param name="id">Workflow ID</param>
			/// <param name="aliases">Aliases to append.</param>
			public void WorkflowAliases(int id, string[] aliases)
			{
				// Resolve the API Structure Object.
				WorkflowAdmin wfa = this.Vault.WorkflowOperations.GetWorkflowAdmin(id);

				// Add each alias.
				foreach (string alias in aliases)
					WorkflowAlias(alias, wfa);
			}
示例#5
0
			/// <summary>
			/// Appends the alias to the workflow state transition object.
			/// </summary>
			/// <param name="id">State Transition ID</param>
			/// <param name="alias">Alias to append.</param>
			public void StateTransitionAlias(int id, string alias)
			{
				// Resolve the workflow state's owner.
				ValueListItem stateVli = this.Vault.ValueListItemOperations.GetValueListItemByID((int) MFBuiltInValueList.MFBuiltInValueListStates, id);

				// Resolve the states owner.
				WorkflowAdmin wfa = this.Vault.WorkflowOperations.GetWorkflowAdmin(stateVli.OwnerID);
				StateAlias(alias, wfa, id);
			}
示例#6
0
        /// <summary>
        /// Resolves a state transition by state.transition.id
        /// </summary>
        /// <param name="v"><see cref="Vault"/></param>
        /// <param name="id">State Transition ID</param>
        /// <param name="wfAdmin">Resolved <see cref="StateTransition"/>'s owner <see cref="WorkflowAdmin"/></param>
        /// <returns><see cref="StateAdmin"/>State with the passed id.</returns>
        public static StateTransition StateTransitionById(this Vault v, int id, out WorkflowAdmin wfAdmin)
        {
            // Get all workflows.
            List <WorkflowAdmin> workflows = v.WorkflowOperations.GetWorkflowsAdmin().Cast <WorkflowAdmin>().ToList();

            // Filter to the workflow containing the state with the provided id.
            wfAdmin = workflows.Single(wf => wf.StateTransitions.Cast <StateTransition>().Any(s => s.ID == id));

            // Ensure a result was found / extract the state from the workflow's states collection.
            return(wfAdmin?.StateTransitions.Cast <StateTransition>().FirstOrDefault(st => st.ID == id));
        }
示例#7
0
			/// <summary>
			/// Clears the workflow aliases of the <see cref="Workflow"/> with the provide id.
			/// </summary>
			/// <param name="id">Workflow ID</param>
			public void WorkflowAlias(int id)
			{
				// Resolve the workflow admin.
				WorkflowAdmin workflow = this.Vault.WorkflowById(id );

				// Clear the Aliases.
				workflow.SemanticAliases.Value = string.Empty;

				// Save changes.
				this.Vault.WorkflowOperations.UpdateWorkflowAdmin( workflow );
			}
示例#8
0
			/// <summary>
			/// Workflow Alias Removal.
			/// </summary>
			/// <param name="id">Workflow ID</param>
			/// <param name="alias">Alias to remove.</param>
			public void WorkflowAlias(int id, string alias)
			{

				// Resolve the WorkflowAdmin.
				WorkflowAdmin wfAdmin = this.Vault.WorkflowById(id );

				// Search and Destroy.
				if (removeAlias(wfAdmin.SemanticAliases, alias))
				{
					// Save changes.
					this.Vault.WorkflowOperations.UpdateWorkflowAdmin(wfAdmin);
				}
			}
示例#9
0
			/// <summary>
			/// Appends the alias to the workflow object.
			/// </summary>
			/// <param name="alias">Alias to append.</param>
			/// <param name="wfa"><see cref="WorkflowAdmin"/></param>
			public void WorkflowAlias(string alias, WorkflowAdmin wfa)
			{
				// Add the alias only if it does not already exist.
				if (!this.Vault.AliasExists(MFMetadataStructureItem.MFMetadataStructureItemWorkflow, alias))
				{
					// Append a delimiter if needed.
					if (!wfa.SemanticAliases.Value.Trim().EndsWith(";"))
						wfa.SemanticAliases.Value += ';';

					// Append the alias.
					wfa.SemanticAliases.Value += alias;

					// Persist the change.
					this.Vault.WorkflowOperations.UpdateWorkflowAdmin(wfa);
				}
			}
示例#10
0
			public string FormatAlias(dynamic apiObj, WorkflowAdmin wfa)
			{

				string format;
				if (apiObj is StateTransition)
				{
					format = FormatAlias(wfa) + ".{0}";

					var one =
						$"{wfa.States.Cast<StateAdmin>().Single(s => s.ID == (int) apiObj.FromState).Name}=>{wfa.States.Cast<StateAdmin>().Single(s => s.ID == (int) apiObj.ToState).Name}";

					return format = string.Format(format, formatSpaces(formatCase(one)));
				}

				format = FormatAlias(wfa) + ".{1}";

				return FormatAlias(apiObj, format);
			}
示例#11
0
			/// <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);
					}
				}
			}
        public WorkflowAdmin UpdateWorkflowAdmin(WorkflowAdmin workflow)
        {
            vault.MetricGatherer.MethodCalled();

            throw new NotImplementedException();
        }
示例#13
0
 public TestWorkflowAdmin(WorkflowAdmin wfa) : this(new xWorkflowAdmin(wfa))
 {
 }
示例#14
0
        public void Test_004_WorkflowFormating(string expectedAlias, int id, bool useShorthand = false)
        {
            WorkflowAdmin wfAdmin = this.V.WorkflowOperations.GetWorkflowAdmin(id);

            FormatAlias(wfAdmin, expectedAlias, useShorthand);
        }