private void EncodeMessage(EncodeRequestDto request, Bitmap image)
        {
            var protector        = Provider.CreateProtector(GetType().FullName, request.UserId.ToString(), "-", request.Username);
            var protectedMessage = protector.Protect(Encoding.UTF8.GetBytes(request.Message));

            EncodeService.EnocodeMessage(image, protectedMessage);
        }
        public async Task <IActionResult> EncodeRandom([FromBody] EncodeRequestDto request)
        {
            using var imageStream = await HttpClient.GetStreamAsync("https://picsum.photos/1000");

            var image = new Bitmap(imageStream);

            return(EncodeRequest(request, image));
        }
        public async Task <IActionResult> EncodeFile([FromForm] EncodeRequestDto request, IFormFile file)
        {
            using var imageStream = new MemoryStream();

            await file.CopyToAsync(imageStream);

            var image = new Bitmap(imageStream);

            return(EncodeRequest(request, image));
        }
        private IActionResult EncodeRequest(EncodeRequestDto request, Bitmap image)
        {
            try
            {
                EncodeMessage(request, image);
            }
            catch (MessageToLongException e)
            {
                return(BadRequest(new ErrorResponseDto
                {
                    ErrorMessages = new[] { e.Message }
                }));
            }

            using var resultStream = new MemoryStream();

            image.Save(resultStream, ImageFormat.Png);

            return(File(resultStream.ToArray(), "image/png"));
        }