public async Task <Dictionary <string, DbType> > ExtractColumnTypes(
            IHubCommunicator hubCommunicator, ActivityContext activityContext)
        {
            var upstreamCrates = await hubCommunicator.GetCratesByDirection <KeyValueListCM>(activityContext.ActivityPayload.Id, CrateDirection.Upstream);

            if (upstreamCrates == null)
            {
                return(null);
            }

            var columnTypesCrate = upstreamCrates
                                   .FirstOrDefault(x => x.Label == "Sql Column Types");

            if (columnTypesCrate == null)
            {
                return(null);
            }

            var columnTypes = columnTypesCrate.Content;

            if (columnTypes == null)
            {
                return(null);
            }

            var columnTypeFields = columnTypes.Values;

            if (columnTypeFields == null)
            {
                return(null);
            }

            var columnTypeMap = GetColumnTypeMap(columnTypeFields);

            return(columnTypeMap);
        }
 public async Task <List <Crate <TManifest> > > GetCratesByDirection <TManifest>(CrateDirection direction)
 {
     return(await _hubCommunicator.GetCratesByDirection <TManifest>(ActivityId, direction));
 }