public void Null_argument_tests() { IActivityItem activityItem = null; Assert.Throws <ArgumentNullException>(() => activityItem.Result()); Assert.Throws <ArgumentNullException>(() => activityItem.Result <int>()); Assert.Throws <ArgumentNullException>(() => activityItem.HasCompleted()); }
/// <summary> /// Access completed result of activity as TType object. /// Throws exception when last event is not activity completed event. /// </summary> /// <param name="activityItem"></param> /// <returns></returns> public static TType Result <TType>(this IActivityItem activityItem) { Ensure.NotNull(activityItem, "activityItem"); var completedEvent = activityItem.LastEvent(); var activityCompletedEvent = completedEvent as ActivityCompletedEvent; if (activityCompletedEvent == null) { throw new InvalidOperationException(string.Format(Resources.Activity_result_can_not_accessed, typeof(ActivityCompletedEvent), completedEvent != null ? completedEvent.GetType().ToString() : "Unkown")); } return(activityCompletedEvent.Result <TType>()); }
/// <summary> /// Access completed result of activity as TType object. /// Throws exception when last event is not activity completed event. /// </summary> /// <param name="activityItem"></param> /// <returns></returns> public static TType Result <TType>(this IActivityItem activityItem) { Ensure.NotNull(activityItem, "activityItem"); var completedEvent = activityItem.LastEvent; var activityCompletedEvent = completedEvent as ActivityCompletedEvent; if (activityCompletedEvent == null) { throw new InvalidOperationException(string.Format(Resources.Activity_result_can_not_accessed, typeof(ActivityCompletedEvent), completedEvent != null ? completedEvent.GetType().ToString() : "Unkown")); } try { if (typeof(TType).Primitive()) { return((TType)Convert.ChangeType(activityCompletedEvent.Result, typeof(TType))); } } catch (FormatException exception) { throw new InvalidCastException(string.Format(Resources.Can_not_deserialize_json_data_into_type, activityCompletedEvent.Result, typeof(TType)), exception); } return(activityCompletedEvent.Result.FromJson <TType>()); }
private static dynamic ParentResult(IActivityItem a) => a.ParentActivity().Result();
/// <summary> /// Initializes an instance of <see cref="TrackActivityEventArgs"/> using the specified <see cref="IActivityItem"/>. /// </summary> /// <param name="activityItem">The <see cref="IActivityItem"/> describing the event.</param> public TrackActivityEventArgs(IActivityItem activityItem) { ActivityItem = activityItem; }
/// <summary> /// Retruns the <see cref="ActivityTimedoutEvent"/> and if it is the last event, otherwise null is returned. /// </summary> /// <param name="item"></param> /// <returns></returns> public static ActivityTimedoutEvent LastTimedoutEvent(this IActivityItem item) { Ensure.NotNull(item, nameof(item)); return(item.LastEvent() as ActivityTimedoutEvent); }
/// <summary> /// Returns true if the last event of activity is <see cref="ActivityCancelledEvent"/>. /// </summary> /// <param name="item"></param> /// <returns></returns> public static bool HasCancelled(this IActivityItem item) => item.LastCancelledEvent() != null;
/// <summary> /// Returns true if the last event of activity is <see cref="ActivityTimedoutEvent"/>. /// </summary> /// <param name="item"></param> /// <returns></returns> public static bool HasTimedout(this IActivityItem item) => item.LastTimedoutEvent() != null;
/// <summary> /// Returns true if the last event of activity is <see cref="ActivityFailedEvent"/>. /// </summary> /// <param name="item"></param> /// <returns></returns> public static bool HasFailed(this IActivityItem item) => item.LastFailedEvent() != null;
/// <summary> /// Returns true if the last event of activity is <see cref="ActivityCompletedEvent"/>. /// </summary> /// <param name="item"></param> /// <returns></returns> public static bool HasCompleted(this IActivityItem item) => item.LastCompletedEvent() != null;
/// <summary> /// Retruns the <see cref="ActivityCompletedEvent"/> and if it is the last event, otherwise null is returned. /// </summary> /// <param name="item"></param> /// <returns></returns> public static ActivityCompletedEvent LastCompletedEvent(this IActivityItem item) { Ensure.NotNull(item, nameof(item)); return(item.LastEvent() as ActivityCompletedEvent); }
/// <summary> /// Retruns the <see cref="ActivityFailedEvent"/> and if it is the last event, otherwise null is returned. /// </summary> /// <param name="activityItem"></param> /// <returns></returns> public static ActivityFailedEvent LastFailedEvent(this IActivityItem activityItem) { Ensure.NotNull(activityItem, "activityItem"); return(activityItem.LastEvent as ActivityFailedEvent); }