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),
            });
        }
Esempio n. 2
0
        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));
            }
        }