/// <summary> /// Upload a single comment added to the review of an assembly with the specified ID. /// </summary> /// <param name="commentModel">The comment being added to the review.</param> /// <param name="assemblyId">The ID of the assembly being commented on.</param> /// <returns></returns> public async Task UploadCommentAsync(CommentModel commentModel, string assemblyId) { commentModel.Id = Guid.NewGuid().ToString(); AssemblyCommentsModel assemblyComments = await FetchCommentsAsync(assemblyId); assemblyComments.AddComment(commentModel); await UploadAssemblyCommentsAsync(assemblyComments); }
/// <summary> /// Upload the comments existing for an assembly review. /// </summary> /// <param name="assemblyComments">The comments in the review.</param> /// <returns></returns> public async Task UploadAssemblyCommentsAsync(AssemblyCommentsModel assemblyComments) { var blob = ContainerClient.GetBlobClient(assemblyComments.AssemblyId); using (var stream = new MemoryStream(Encoding.UTF8.GetBytes(JsonSerializer.ToString(assemblyComments)))) { await blob.UploadAsync(stream); } }
/// <summary> /// Return all comments written for review of the assembly with the provided ID. /// </summary> /// <param name="assemblyId">The ID of the assembly to have its comments read.</param> /// <returns>The comments existing for the specified assembly if it exists, or null if no assembly has the specified ID.</returns> public async Task <AssemblyCommentsModel> FetchCommentsAsync(string assemblyId) { var result = await ContainerClient.GetBlobClient(assemblyId).DownloadAsync(); using (StreamReader reader = new StreamReader(result.Value.Content)) { AssemblyCommentsModel comments = JsonSerializer.Parse <AssemblyCommentsModel>(reader.ReadToEnd()); return(comments); } }
/// <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); }
/// <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); }