Пример #1
0
        private static bool MatchDescription(Activity activityInstance, string activityName, string activityVersion)
        {
            var activityDescription = ActivityDescription.FindOn(activityInstance.GetType());

            return(activityDescription.Name.Equals(activityName) &&
                   activityDescription.Version.Equals(activityVersion));
        }
Пример #2
0
 private void PopulateHostedActivities(IEnumerable <Type> activitiesTypes)
 {
     foreach (var activityType in activitiesTypes)
     {
         var activityDescription = ActivityDescription.FindOn(activityType);
         var hostedActivityKey   = activityDescription.Name + activityDescription.Version;
         if (_hostedActivities.ContainsKey(hostedActivityKey))
         {
             throw new ActivityAlreadyHostedException(string.Format(Resources.Activity_already_hosted, activityDescription.Name, activityDescription.Version));
         }
         _hostedActivities.Add(hostedActivityKey, activityType);
     }
 }
Пример #3
0
 private async Task <ActivityResponse> ExecuteActivityMethod(ActivityArgs activityArgs)
 {
     try
     {
         return(await _executionMethod.ExecuteAsync(this, activityArgs, _cancellationTokenSource.Token));
     }
     catch (OperationCanceledException exception)
     {
         var desc = ActivityDescription.FindOn(GetType());
         return(Cancel($"Activity name: {desc.Name} and version: { desc.Version} is cancelled."));
     }
     catch (Exception exception)
     {
         if (FailOnException)
         {
             return(Fail(exception.GetType().Name, exception.Message));
         }
         throw;
     }
 }
Пример #4
0
        private ulong HeartbeatInterval(EnableHeartbeatAttribute attribute)
        {
            ulong intervalMillisec = 0;

            if (attribute.IntervalInMilliSeconds > 0)
            {
                intervalMillisec = attribute.IntervalInMilliSeconds;
            }

            if (intervalMillisec == 0)
            {
                var description = ActivityDescription.FindOn(GetType());
                intervalMillisec = description.DefaultHeartbeatTimeout.HasValue
                    ? (uint)description.DefaultHeartbeatTimeout.Value.TotalMilliseconds
                    : 0;
            }
            if (intervalMillisec == 0)
            {
                throw new ActivityConfigurationException(
                          string.Format(Resources.Heartbeat_is_enabled_but_interval_is_missing, GetType().Name));
            }
            return(intervalMillisec);
        }