/// <summary> /// Registers activity type for a specific version. /// </summary> /// <param name="domainName">Domain where the activity type should be registered.</param> /// <param name="client">Interface for accessing Amazon Simple Workflow Service.</param> void IRegistrable.Register(string domainName, IAmazonSimpleWorkflow client) { var listActivityRequest = new ListActivityTypesRequest { Domain = domainName, Name = Options.Name, RegistrationStatus = RegistrationStatus.REGISTERED }; if ( client.ListActivityTypesAsync(listActivityRequest).Result .ActivityTypeInfos.TypeInfos.FirstOrDefault(x => x.ActivityType.Version == Options.Version) == null) { Logger.Trace("New Activity Type."); RegisterActivityTypeRequest request = new RegisterActivityTypeRequest { Name = Options.Name, Domain = domainName, Description = Options.Description, Version = Options.Version, DefaultTaskList = TaskList, //Worker poll based on this DefaultTaskScheduleToCloseTimeout = Options.ScheduleToCloseTimeout.ToStringOrNone(), DefaultTaskScheduleToStartTimeout = Options.ScheduleToStartTimeout.ToStringOrNone(), DefaultTaskStartToCloseTimeout = Options.StartToCloseTimeout.ToStringOrNone(), DefaultTaskHeartbeatTimeout = Options.HeartbeatTimeout.ToStringOrNone() }; client.RegisterActivityTypeAsync(request).Wait(); } Logger.Trace("Activity. Name: {0}, Version: {1}", Options.Name, Options.Version); }
private async Task <IEnumerable <ActivityTypeInfo> > ListActivitiesFromAmazonBy(string activityName) { var listRequest = new ListActivityTypesRequest(); listRequest.Name = activityName; listRequest.Domain = _name; listRequest.MaximumPageSize = 1000; listRequest.RegistrationStatus = RegistrationStatus.REGISTERED; var response = await _simpleWorkflowClient.ListActivityTypesAsync(listRequest); return(response.ActivityTypeInfos.TypeInfos); }
async IAsyncEnumerable <ListActivityTypesResponse> IPaginator <ListActivityTypesResponse> .PaginateAsync(CancellationToken cancellationToken = default) { if (Interlocked.Exchange(ref _isPaginatorInUse, 1) != 0) { throw new System.InvalidOperationException("Paginator has already been consumed and cannot be reused. Please create a new instance."); } var nextPageToken = _request.NextPageToken; ListActivityTypesResponse response; do { _request.NextPageToken = nextPageToken; response = await _client.ListActivityTypesAsync(_request, cancellationToken).ConfigureAwait(false); nextPageToken = response.ActivityTypeInfos.NextPageToken; cancellationToken.ThrowIfCancellationRequested(); yield return(response); }while (nextPageToken != null); }
private Amazon.SimpleWorkflow.Model.ListActivityTypesResponse CallAWSServiceOperation(IAmazonSimpleWorkflow client, Amazon.SimpleWorkflow.Model.ListActivityTypesRequest request) { Utils.Common.WriteVerboseEndpointMessage(this, client.Config, "AWS Simple Workflow Service (SWF)", "ListActivityTypes"); try { #if DESKTOP return(client.ListActivityTypes(request)); #elif CORECLR return(client.ListActivityTypesAsync(request).GetAwaiter().GetResult()); #else #error "Unknown build edition" #endif } catch (AmazonServiceException exc) { var webException = exc.InnerException as System.Net.WebException; if (webException != null) { throw new Exception(Utils.Common.FormatNameResolutionFailureMessage(client.Config, webException.Message), webException); } throw; } }