コード例 #1
0
        Response ValidateRequest(Base64RequestMessage requestMessage)
        {
            var response = Response.Create();

            if (requestMessage == null)
            {
                requestMessage = new Base64RequestMessage(Guid.NewGuid());
            }

            if (string.IsNullOrEmpty(requestMessage.BucketName))
            {
                response.WithBusinessError(nameof(requestMessage.BucketName), "O nome do bucket é obrigatório.");
            }

            if (string.IsNullOrEmpty(requestMessage.BucketName))
            {
                response.WithBusinessError(nameof(requestMessage.BucketName), "O nome do bucket é obrigatório.");
            }

            if (string.IsNullOrEmpty(requestMessage.FolderName))
            {
                response.WithBusinessError(nameof(requestMessage.FolderName), "O nome do folder é obrigatório.");
            }

            if (string.IsNullOrEmpty(requestMessage.FileExtension))
            {
                response.WithBusinessError(nameof(requestMessage.FileExtension), "A extensão do arquivo é obrigatória.");
            }

            return(response);
        }
コード例 #2
0
        public async Task <Response <Base64ResponseMessage> > GetBase64Async(Base64RequestMessage requestMessage)
        {
            var response = Response <Base64ResponseMessage> .Create();

            if (response.WithMessages(ValidateRequest(requestMessage).Messages).HasError)
            {
                return(response);
            }

            using (var stream = await TransferUtility.OpenStreamAsync(requestMessage.BucketName, $"{requestMessage.FolderName}/{requestMessage.FileName}"))
            {
                byte[] bytes;

                using (var memoryStream = new MemoryStream())
                {
                    stream.CopyTo(memoryStream);
                    bytes = memoryStream.ToArray();
                }

                var images = new List <string> {
                    "jpg", "jpeg", "gif", "png", "bmp"
                };

                if (requestMessage.FileExtension.Contains("pdf"))
                {
                    response.Data.Value.Base64 = $"data:application/pdf;base64,{Convert.ToBase64String(bytes)}";
                }
                else if (images.Contains(requestMessage.FileExtension.Replace(".", "")))
                {
                    response.Data.Value.Base64 = $"data:image/{requestMessage.FileExtension.Replace(".", "")};base64,{Convert.ToBase64String(bytes)}";
                }
                else
                {
                    response.Data.Value.Base64 = $"data:application/octet-stream;base64,{Convert.ToBase64String(bytes)}";
                }
            }

            response.Data.Value.BucketName    = requestMessage.BucketName;
            response.Data.Value.FolderName    = requestMessage.FolderName;
            response.Data.Value.FileName      = requestMessage.FileName;
            response.Data.Value.FileExtension = requestMessage.FileExtension;
            response.Data.Value.Link          = $"{Options.Value.StorageAws.BaseUrl}/{requestMessage.FolderName}/{requestMessage.FileName}";

            return(response);
        }
コード例 #3
0
 public async Task <IActionResult> GetBase64Async([FromQuery] Base64RequestMessage requestMessage)
 => await TryAsync(() => StorageExternalService.GetBase64Async(requestMessage));