コード例 #1
0
        public async Task <IActionResult> Run(
            [HttpTrigger(AuthorizationLevel.Function, "get", Route = null)] HttpRequest req,
            ILogger log)
        {
            log.LogInformation("Downloading CPRA report");
            try
            {
                if (!RIPAAuthorization.ValidateUserOrAdministratorRole(req, log).ConfigureAwait(false).GetAwaiter().GetResult())
                {
                    return(new UnauthorizedResult());
                }
            }
            catch (Exception ex)
            {
                log.LogError(ex.Message);
                return(new UnauthorizedResult());
            }

            var fileName = req.Query["FileName"];

            try
            {
                var resultFile = await blobUtilities.GetBlob(fileName, _blobContainerClient);

                return(new FileContentResult(resultFile.Value.Content.ToArray(), "application/octet-stream")
                {
                    FileDownloadName = fileName
                });
            }
            catch (Exception)
            {
                return(new NotFoundResult());
            }
        }