public async Task <IActionResult> Create([FromForm] ImageRequest request) { var userInfo = _sessionService.GetDataFromToken(); if (userInfo.UserId != request.UserId) { return(StatusCode(401, new { Message = "This userId is not yours" })); } var user = await _context.Users.FindAsync(request.UserId); if (user == null) { return(NotFound(new { Message = "Can not find user with id = " + request.UserId })); } var newImages = new List <ThumbnailImage>(); for (int i = 0; i < request.Images.Count; i++) { var image = new ThumbnailImage(); image.CreatedAt = DateTime.Now; image.Title = request.Title; image.UserId = request.UserId; if (request.Images[i] != null) { image.ImagePath = await _storageService.SaveFile(request.Images[i]); } newImages.Add(image); } user.NumberOfImages += newImages.Count; var imagesResponse = new List <ImageResponse>(); try { _context.Users.Update(user); imagesResponse = await _imageApplication.CreateImages(newImages); } catch (Exception e) { return(StatusCode(501, new { Message = e.InnerException })); } return(Ok(imagesResponse)); }
public async Task <IActionResult> Create([FromForm] ImageRequest request) { var userInfo = _sessionService.GetDataFromToken(); if (userInfo.UserId != request.UserId) { return(StatusCode(401, new { Message = "This userId is not yours" })); } var user = await _context.Users.FindAsync(request.UserId); if (user == null) { return(NotFound(new { Message = "Can not find user with id = " + request.UserId })); } int notOk = 0; var newImages = new List <ThumbnailImage>(); var imageScores = await _imageScoreApplication.GetImageScore(); if (imageScores.Active) { for (int i = 0; i < request.Images.Count; i++) { var image = new ThumbnailImage(); image.CreatedAt = DateTime.Now; image.Title = request.Title; image.UserId = request.UserId; bool isOk = false; if (request.Images[i] != null) { image.ImagePath = await _storageService.SaveFile(request.Images[i]); try { var score = _detectService.DetectImage("." + _storageService.GetFileUrlWithoutDomain(image.ImagePath)); isOk = await _imageScoreApplication.ValidateImage(score); } catch (Exception e) { Console.WriteLine("Không thể kết nối đến detect image service."); isOk = true; } } if (!isOk) { if (imageScores.AutoFilter) { image.Status = ImageStatus.BlockOut; } else { image.Status = ImageStatus.Waiting; } notOk++; } else { image.Status = ImageStatus.Approved; } newImages.Add(image); } } else { for (int i = 0; i < request.Images.Count; i++) { var image = new ThumbnailImage(); image.CreatedAt = DateTime.Now; image.Title = request.Title; image.UserId = request.UserId; if (request.Images[i] != null) { image.ImagePath = await _storageService.SaveFile(request.Images[i]); } image.Status = ImageStatus.Approved; newImages.Add(image); } } user.NumberOfImages += (newImages.Count - notOk); List <ImageResponse> imagesResponse; try { _context.Users.Update(user); imagesResponse = await _imageApplication.CreateImages(newImages); } catch (Exception e) { return(StatusCode(501, new { Message = e.InnerException })); } string message; bool Approved; if (notOk == 0) { message = "Hình của bạn đã được upload!"; Approved = true; } else { Approved = false; message = "Hình ảnh có thể đã vi phạm chuẩn mực của chúng tôi, có thể cần kiểm duyệt, xin lỗi vì sự bất tiện này!"; } return(Ok(new { Data = imagesResponse, Message = message, Approved = Approved })); }