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
            }));
        }
 //[Authorize(Roles = "Admin")]
 public async Task <IActionResult> GetImageScore()
 {
     return(Ok(await _imageScoreApp.GetImageScore()));
 }