public SqlBulkCopyDataWrapper CreateSqlBulkCopyDataWrapper(ImportResource resource) { var resourceMetadata = new ResourceMetadata( resource.Resource.CompartmentIndices, resource.Resource.SearchIndices?.ToLookup(e => _searchParameterTypeMap.GetSearchValueType(e)), resource.Resource.LastModifiedClaims); short resourceTypeId = _model.GetResourceTypeId(resource.Resource.ResourceTypeName); resource.CompressedStream.Seek(0, 0); return(new SqlBulkCopyDataWrapper() { Metadata = resourceMetadata, ResourceTypeId = resourceTypeId, Resource = resource.Resource, ResourceSurrogateId = resource.Id, Index = resource.Index, BulkImportResource = resource.ExtractBulkImportResourceTypeV1Row(resourceTypeId), }); }
public IEnumerable <BulkReindexResourceTableTypeV1Row> GenerateRows(IReadOnlyList <ResourceWrapper> input) { for (var index = 0; index < input.Count; index++) { ResourceWrapper resource = input[index]; var resourceTypeId = _model.GetResourceTypeId(resource.ResourceTypeName); var resourceId = resource.ResourceId; int etag = 0; if (resource.Version != null && !int.TryParse(resource.Version, out etag)) { // Set the etag to a sentinel value to enable expected failure paths when updating with both existing and nonexistent resources. etag = -1; } yield return(new BulkReindexResourceTableTypeV1Row( index, resourceTypeId, resourceId, resource.Version == null ? null : (int?)etag, resource.SearchParameterHash)); } }