/// <summary>
        /// Upload a single assembly for review.
        /// </summary>
        /// <param name="assemblyModel">The assembly being uploaded.</param>
        /// <returns>The ID assigned to the assembly in the database.</returns>
        public async Task <string> UploadAssemblyAsync(AssemblyModel assemblyModel)
        {
            var guid = Guid.NewGuid().ToString();

            assemblyModel.Id = guid;
            var assemblyComments = new AssemblyCommentsModel(guid);
            await commentRepository.UploadAssemblyCommentsAsync(assemblyComments);

            var blob = ContainerClient.GetBlobClient(guid);

            using (var stream = new MemoryStream(Encoding.UTF8.GetBytes(JsonSerializer.ToString(assemblyModel)))) {
                await blob.UploadAsync(stream);
            }
            blob = ContainerClient.GetBlobClient(guid);
            await blob.SetMetadataAsync(new Dictionary <string, string>() { { "id", guid } });

            return(guid);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Upload a single assembly for review.
        /// </summary>
        /// <param name="assemblyModel">The assembly being uploaded.</param>
        /// <returns>The ID assigned to the assembly in the database.</returns>
        public async Task <string> UploadAssemblyAsync(AssemblyModel assemblyModel, Stream original)
        {
            var guid = Guid.NewGuid().ToString();

            assemblyModel.Id          = guid;
            assemblyModel.HasOriginal = original != null;
            var assemblyComments = new AssemblyCommentsModel(guid);
            await commentRepository.UploadAssemblyCommentsAsync(assemblyComments);

            var blob = ContainerClient.GetBlobClient(guid);

            await blob.UploadAsync(new MemoryStream(JsonSerializer.SerializeToUtf8Bytes(assemblyModel)));

            if (original != null)
            {
                var originalBlob = OriginalsContainer.GetBlobClient(guid);
                await originalBlob.UploadAsync(original);
            }

            return(guid);
        }