Esempio n. 1
0
        /// <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);
        }
Esempio n. 2
0
        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;
     }
 }