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>());
        }
Example #4
0
 private static dynamic ParentResult(IActivityItem a) => a.ParentActivity().Result();
Example #5
0
 /// <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);
 }