public async Task <ImageResponse> UpdateUserImage(ImageUserRequest request) { var image = await _context.UserImages.Where(u => u.UserId == request.UserId).FirstOrDefaultAsync(); if (image == null) { return(await AddUserImage(request)); } var file = request.File; var uploadResult = await UploadImage(file); request.ImageUrl = uploadResult.Url.ToString(); request.PublicId = uploadResult.PublicId; request.TimeImage = DateTime.UtcNow; if (uploadResult.Error != null) { return(null); } await DeleteImage(image.PublicId); _mapper.Map(request, image); _context.Entry(image).State = EntityState.Modified; await _context.SaveChangesAsync(); return(_mapper.Map <ImageResponse>(image)); }
public async Task <IActionResult> PostUserImage(string userId, [FromForm] ImageUserRequest imageRequest) { imageRequest.UserId = userId; var image = await _imageService.UpdateUserImage(imageRequest); return(CreatedAtRoute("GetUserImage", new { userId = userId, id = image.ImageId }, image)); }
public async Task <ImageResponse> AddUserImage(ImageUserRequest request) { var file = request.File; var uploadResult = await UploadImage(file); request.ImageUrl = uploadResult.Url.ToString(); request.PublicId = uploadResult.PublicId; request.TimeImage = DateTime.UtcNow; var image = _mapper.Map <UserImage>(request); _context.UserImages.Add(image); await _context.SaveChangesAsync(); return(_mapper.Map <ImageResponse>(image)); }