internal static IEnumerableAsync <Adapter> CreateOrUpdateBatch(IEnumerable <KeyValuePair <string, Guid> > keyAndConnectorKvps, Guid integrationId, string resourceType) { return(AzureStorageRepository.Connection( azureStorageRepository => { var adapters = keyAndConnectorKvps .Select( keyAndConnectorKvp => { var adapter = new AdapterDocument() { Key = keyAndConnectorKvp.Key, IntegrationId = integrationId, ResourceType = resourceType, }; adapter.SetConnectorIds(new[] { keyAndConnectorKvp.Value }); return adapter; }); return azureStorageRepository .CreateOrReplaceBatch(adapters, adapter => GetId(adapter.Key, integrationId, resourceType), (successAdapter) => successAdapter, (failedAdapter) => failedAdapter) .Select(adapter => Convert(adapter)); })); }
internal static AdapterDocument Convert(Adapter adapter) { var adapterDoc = new AdapterDocument() { Key = adapter.key, IntegrationId = adapter.integrationId, ResourceType = adapter.resourceType, Name = adapter.name, }; adapterDoc.SetConnectorIds(adapter.connectorIds); adapterDoc.SetIdentifiers(adapter.identifiers); return(adapterDoc); }