/// <summary> /// Sets the status of this data item if/when allowed. /// </summary> /// <param name="newStatus">The new status.</param> protected void SetStatus(FieldItemResolutionStatus newStatus) { if (this.Status.CanBeAdvancedTo(newStatus)) { this.Status = newStatus; } }
/// <summary> /// Determines if the given resolution status is one such taht the field results should /// be included in the final context output where the resolution occure. /// </summary> /// <param name="resolutionStatus">The resolution status.</param> /// <returns><c>true</c> if this status represents one to have its results included, <c>false</c> otherwise.</returns> public static bool IncludeInOutput(this FieldItemResolutionStatus resolutionStatus) { switch (resolutionStatus) { case FieldItemResolutionStatus.Complete: case FieldItemResolutionStatus.Failed: case FieldItemResolutionStatus.Invalid: return(true); default: return(false); } }
/// <summary> /// Determines whether a given resolution status is in a state that requires no additional processing. /// </summary> /// <param name="resolutionstatus">The resolutionstatus.</param> /// <returns><c>true</c> if the specified resolution status is finalized; otherwise, <c>false</c>.</returns> public static bool IsFinalized(this FieldItemResolutionStatus resolutionstatus) { switch (resolutionstatus) { case FieldItemResolutionStatus.Canceled: case FieldItemResolutionStatus.Failed: case FieldItemResolutionStatus.Invalid: return(true); default: return(false); } }
/// <summary> /// Determines whether a given resolution status indicates an unexpected error occured. /// </summary> /// <param name="resolutionStatus">The resolution status.</param> /// <returns><c>true</c> if the status indicates some type of error occured; otherwise, <c>false</c>.</returns> public static bool IndicatesAnError(this FieldItemResolutionStatus resolutionStatus) { return(resolutionStatus == FieldItemResolutionStatus.Invalid || resolutionStatus == FieldItemResolutionStatus.Failed); }
/// <summary> /// Determines if the given resolution status is one such that, given the process chain, can be moved forward /// into the newly provided status. /// </summary> /// <param name="resolutionStatus">The current status.</param> /// <param name="newStatus">The new status.</param> /// <returns><c>true</c> if this instance can be advanced; otherwise, <c>false</c>.</returns> public static bool CanBeAdvancedTo(this FieldItemResolutionStatus resolutionStatus, FieldItemResolutionStatus newStatus) { return(CAN_BECOME_STATI != null && CAN_BECOME_STATI.ContainsKey(newStatus) && CAN_BECOME_STATI[newStatus].Contains(resolutionStatus)); }