public CopyActivity(CopySource source, CopySink sink, CopyTranslator translator = null)
            : this()
        {
            Ensure.IsNotNull(source, "source");
            Ensure.IsNotNull(sink, "sink");

            this.Source     = source;
            this.Sink       = sink;
            this.Translator = translator;
        }
        public CopyActivity(CopySource source, CopySink sink, CopyTranslator translator = null)
            : this()
        {
            Ensure.IsNotNull(source, "source");
            Ensure.IsNotNull(sink, "sink");

            this.Source = source;
            this.Sink = sink;
            this.Translator = translator;
        }
        public CopySink ToSdkObject()
        {
            var copySink = new CopySink()
            {
                WriteBatchSize           = this.WriteBatchSize,
                WriteBatchTimeout        = this.WriteBatchTimeout,
                SinkRetryCount           = this.SinkRetryCount,
                SinkRetryWait            = this.SinkRetryWait,
                MaxConcurrentConnections = this.MaxConcurrentConnections
            };

            this.AdditionalProperties?.ForEach(item => copySink.Add(item.Key, item.Value));
            return(copySink);
        }