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)); }
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); } }
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; } }
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); }