public async Task <IActionResult> UploadReviewed(CompletedProgramReviewable reviewable) { var entry = await _dbContext.CompletedProgramReviewables.Where(x => x.Id == reviewable.Id).SingleOrDefaultAsync(); if (entry != null) { entry.IsReviewed = true; entry.ReviewedComment = reviewable.ReviewedComment; await _dbContext.SaveChangesAsync(); return(Ok("Ok")); } return(BadRequest("Does not exist")); }
//TODO: add DTOs public async Task <sr <bool> > Upload(CompletedProgramReviewable reviewable) { return(await _base.Put <CompletedProgramReviewable>($"api/CompletedProgramReviewables", reviewable)); }
public async Task <IActionResult> ReceiveFile() { if (!MultipartRequestHelper.IsMultipartContentType(Request.ContentType)) { throw new Exception("Not a multipart request"); } var boundary = MultipartRequestHelper.GetBoundary(MediaTypeHeaderValue.Parse(Request.ContentType), _defaultFormOptions.MultipartBoundaryLengthLimit); var reader = new MultipartReader(boundary, Request.Body); // note: this is for a single file, you could also process multiple files var section = await reader.ReadNextSectionAsync(); if (section == null) { return(BadRequest()); } Request.Headers.TryGetValue("CompletedSlideDeckProgram", out Microsoft.Extensions.Primitives.StringValues programIdStringValue); var reviewable = new CompletedProgramReviewable(); reviewable.CompletedSlideDeckProgramId = int.Parse(programIdStringValue.ToString()); var activeUserAvatar = await _userAvatarRepo.GetActiveInContext(); reviewable.UserAvatarId = activeUserAvatar.Id; var i = 0; do { if (!ContentDispositionHeaderValue.TryParse(section.ContentDisposition, out var contentDisposition)) { throw new Exception("No content disposition in multipart defined"); } var fileName2 = contentDisposition.FileNameStar.ToString(); if (string.IsNullOrEmpty(fileName2)) { fileName2 = contentDisposition.FileName.ToString(); } var fileName = _userService.GetUserId().ToString() + "_" + programIdStringValue.ToString() + "_" + activeUserAvatar.Id + "_" + i + "." + fileName2.Split('.').Last(); if (string.IsNullOrEmpty(fileName2)) { throw new Exception("No filename defined."); } using var fileStream = section.Body; var uri = await _azureRepo.NewBlobFromStream(fileStream, "dfghdfh", fileName); reviewable.Content.Add(new Shared.DbModels.AzureBlob() { Uri = uri.ToString(), Name = fileName2, Mime = contentDisposition.Name.ToString() }); i++; section = await reader.ReadNextSectionAsync(); } while (section != null); await _dbContext.CompletedProgramReviewables.AddAsync(reviewable); await _dbContext.SaveChangesAsync(); //await SendFileSomewhere(fileStream); return(Ok()); }