GoogleCloudSamples.Services.BookDetailLookup.CreateTopicAndSubscription C# (CSharp) Method

CreateTopicAndSubscription() public method

Creates the topic and subscription, if they don't already exist. You should call this once at the beginning of your app.
public CreateTopicAndSubscription ( ) : void
return void
        public void CreateTopicAndSubscription()
        {
            try
            {
                _pub.CreateTopic(_topicName);
                _logger.LogVerbose("Created topic " + _topicName);
            }
            catch (Grpc.Core.RpcException e)
            when (e.Status.StatusCode == Grpc.Core.StatusCode.AlreadyExists)
            {
                // The topic already exists.  Ok.
                _logger.LogError(_topicName + " already exists", e);
            }
            try
            {
                _sub.CreateSubscription(_subscriptionName, _topicName, null, 0);
                _logger.LogVerbose("Created subscription " + _subscriptionName);
            }
            catch (Grpc.Core.RpcException e)
            when (e.Status.StatusCode == Grpc.Core.StatusCode.AlreadyExists)
            {
                // The subscription already exists.  Ok.
                _logger.LogError(_subscriptionName + " already exists", e);
            }
        }
        // [END createtopicandsubscription]

Usage Example

        /// <summary>Registers the type mappings with the Unity container.</summary>
        /// <param name="container">The unity container to configure.</param>
        public static void RegisterTypes(IUnityContainer container)
        {
            LibUnityConfig.RegisterTypes(container);
            var bookDetailLookup = new BookDetailLookup(LibUnityConfig.ProjectId);
            bookDetailLookup.CreateTopicAndSubscription();
            container.RegisterInstance<BookDetailLookup>(bookDetailLookup);

            container.RegisterInstance<ImageUploader>(
                new ImageUploader(
                  LibUnityConfig.GetConfigVariable("GoogleCloudSamples:BucketName")
                )
            );
        }