本文整理汇总了C#中IWorkItem.TryOpen方法的典型用法代码示例。如果您正苦于以下问题:C# IWorkItem.TryOpen方法的具体用法?C# IWorkItem.TryOpen怎么用?C# IWorkItem.TryOpen使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IWorkItem
的用法示例。
在下文中一共展示了IWorkItem.TryOpen方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: TransitionToState
public static void TransitionToState(IWorkItem workItem, string state, string commentPrefix, ILogEvents logger)
{
// Set the sourceWorkItem's state so that it is clear that it has been moved.
string originalState = (string)workItem.Fields["State"].Value;
// Try to set the state of the source work item to the "Deleted/Moved" state (whatever is defined in the file).
// We need an open work item to set the state
workItem.TryOpen();
// See if we can go directly to the planned state.
workItem.Fields["State"].Value = state;
if (workItem.Fields["State"].Status != FieldStatus.Valid)
{
// Revert back to the original value and start searching for a way to our "MovedState"
workItem.Fields["State"].Value = workItem.Fields["State"].OriginalValue;
// If we can't then try to go from the current state to another state. Saving each time till we get to where we are going.
foreach (string curState in FindNextState(workItem.Type, (string)workItem.Fields["State"].Value, state))
{
string comment;
if (curState == state)
{
comment = string.Format(
"{0}{1} State changed to {2}",
commentPrefix,
Environment.NewLine,
state);
}
else
{
comment = string.Format(
"{0}{1} State changed to {2} as part of move toward a state of {3}",
commentPrefix,
Environment.NewLine,
curState,
state);
}
bool success = ChangeWorkItemState(workItem, originalState, curState, comment, logger);
// If we could not do the incremental state change then we are done. We will have to go back to the original...
if (!success)
{
break;
}
}
}
else
{
// Just save it off if we can.
string comment = commentPrefix + "\n State changed to " + state;
ChangeWorkItemState(workItem, originalState, state, comment, logger);
}
}
示例2: ChangeWorkItemState
private static bool ChangeWorkItemState(IWorkItem workItem, string orginalSourceState, string destState, string comment, ILogEvents logger)
{
// Try to save the new state. If that fails then we also go back to the original state.
try
{
workItem.TryOpen();
workItem.Fields["State"].Value = destState;
workItem.History = comment;
logger.AttemptingToMoveWorkItemToState(workItem, orginalSourceState, destState);
if (workItem.IsValid())
{
logger.WorkItemIsValidToSave(workItem);
}
else
{
logger.WorkItemIsInvalidInState(workItem, destState);
}
workItem.Save();
return true;
}
catch (Exception)
{
// Revert back to the original value.
workItem.Fields["State"].Value = orginalSourceState;
return false;
}
}