Exemplo n.º 1
0
        public async Task <IActionResult> GetList(
            [HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = "audio")] HttpRequest req,
            ILogger log)
        {
            try
            {
                // get the user ID
                if (!await this.UserAuthenticationService.GetUserIdAsync(req, out var userId, out var responseResult).ConfigureAwait(false))
                {
                    return(responseResult);
                }

                // list the audio notes
                var blobs = await this.BlobRepository.ListBlobsInFolderAsync(AudioBlobContainerName, userId).ConfigureAwait(false);

                var blobSummaries = blobs
                                    .Select(b => new GetListItem
                {
                    Id      = b.BlobName.Split('/')[1],
                    Preview = b.Properties.ContainsKey(TranscriptMetadataName) ? b.Properties[TranscriptMetadataName].Truncate(TranscriptPreviewLength) : string.Empty,
                })
                                    .ToList();

                var audioNoteSummaries = new GetListResponse();
                audioNoteSummaries.AddRange(blobSummaries);

                return(new ObjectResult(audioNoteSummaries));
            }
            catch (Exception ex)
            {
                log.LogError(ex, UnhandledExceptionError);
                throw;
            }
        }