Ejemplo n.º 1
0
        public static async Task <DataReference> TransferBinaryData(IDataApiClient dataApiClient, Stream data, string id = null)
        {
            if (id == null)
            {
                id = IdGenerator.FromGuid(); // We cannot be sure that the stream is reversible and hence cannot use it for calculating an ID
            }
            var dataType = nameof(DataBlob);
            var dataBlob = new DataBlob(id, new byte[0]);

            id = await dataApiClient.CreateSubmission(dataBlob, x => x.Data, id);

            await dataApiClient.TransferSubmissionData(dataType, id, data);

            return(new DataReference(dataType, id));
        }
Ejemplo n.º 2
0
        public static async Task <DataReference> TransferBinaryData(IDataApiClient dataApiClient, byte[] data, string id = null)
        {
            if (id == null)
            {
                id = IdGenerator.Sha1HashFromByteArray(data);
            }
            var dataType = nameof(DataBlob);

            if (await dataApiClient.ExistsAsync <DataBlob>(id))
            {
                return(new DataReference(dataType, id));
            }
            var dataBlob = new DataBlob(id, new byte[0]);

            id = await dataApiClient.CreateSubmission(dataBlob, x => x.Data, id);

            await dataApiClient.TransferSubmissionData(dataType, id, data);

            return(new DataReference(dataType, id));
        }
Ejemplo n.º 3
0
        public static async Task <DataReference> TransferFile(IDataApiClient dataApiClient, string filePath, string id = null)
        {
            if (id == null)
            {
                id = IdGenerator.Sha1HashFromFile(filePath);
            }
            var dataType = nameof(DataBlob);

            if (await dataApiClient.ExistsAsync <DataBlob>(id))
            {
                return(new DataReference(dataType, id));
            }
            var dataBlob = new DataBlob(id, new byte[0], Path.GetFileName(filePath));

            id = await dataApiClient.CreateSubmission(dataBlob, x => x.Data, id);

            using (var fileStream = File.OpenRead(filePath))
                await dataApiClient.TransferSubmissionData(dataType, id, fileStream);
            return(new DataReference(dataType, id));
        }