private static void ActivateMetadataUpdate(MetadataJson metadata)
        {
            MetadataUpdateEventArgs eventArgs = new MetadataUpdateEventArgs(metadata);

            if (MetadataUpdateEvent != null)
            {
                MetadataUpdateEvent(null, eventArgs);
            }
        }
        /// <summary>
        /// Wait for metadata changes until cancellation is requested.
        /// </summary>
        private static async void WatchMetadata()
        {
            while (!Token.IsCancellationRequested)
            {
                string metadata = await GetMetadataUpdate();

                // Check if the response from deserialize is null.
                if (!string.IsNullOrEmpty(metadata))
                {
                    MetadataJson metadataJson = MetadataDeserializer.DeserializeMetadata <MetadataJson>(metadata);
                    ActivateMetadataUpdate(metadataJson);
                }
            }
        }
 public MetadataUpdateEventArgs(MetadataJson metadata)
 {
     this.Metadata = metadata;
 }