Exemple #1
0
        private static async Task UpdateTableItemAsync(CloudTable table, CloudBlockBlob blob, string txtFileName)
        {
            var txtFileUrl = blob.Container.GetBlockBlobReference(txtFileName).Uri.AbsoluteUri.ToString();

            var wavFileName = txtFileName.Replace(".json", ".wav");
            var query       = new TableQuery <STTEntity>();
            var result      = await table.ExecuteQuerySegmentedAsync <STTEntity>(query, null);

            var entity = result.ToList <STTEntity>().Find(x => x.WavFileName == wavFileName);

            if (entity != null)
            {
                var newEntity = new STTEntity()
                {
                    PartitionKey = entity.PartitionKey,
                    RowKey       = entity.RowKey,
                    WavFileName  = entity.WavFileName,
                    WavFileUrl   = entity.WavFileUrl,
                    TxtFileName  = txtFileName,
                    TxtFileUrl   = txtFileUrl,
                };

                await table.ExecuteAsync(TableOperation.InsertOrMerge(newEntity));
            }
        }
        public async Task <IActionResult> OnPost()
        {
            var userName    = "******";
            var operationId = userName + "_" + DateTime.Now.ToString("yyyyMMdd_HHmmss");
            var wavFileName = operationId + "_" + WavFile.FileName;
            var txtFileName = operationId + "_" + WavFile.FileName.Replace("wav", "json");

            var wavFileUrl = await UploadWavFileAsync(_blobContainerClient, operationId, wavFileName, WavFile);

            var entity = new STTEntity()
            {
                PartitionKey = userName,
                RowKey       = operationId,
                WavFileName  = wavFileName,
                WavFileUrl   = wavFileUrl,
                TxtFileName  = txtFileName,
            };

            await InsertTableItemAsync(_tableClient, entity);

            WavFile = null;

            var sttEntityList = await GetTableItemsAsync(_tableClient);

            SttEntityList = AddSasToken(sttEntityList);

            return(Page());
        }
Exemple #3
0
        private static async Task CreateTableItemAsync(CloudTable table, CloudBlockBlob blob, string wavFileName)
        {
            var wavFileUrl = blob.Container.GetBlockBlobReference(wavFileName).Uri.AbsoluteUri.ToString();

            var query  = new TableQuery <STTEntity>();
            var result = await table.ExecuteQuerySegmentedAsync <STTEntity>(query, null);

            var entity = result.ToList <STTEntity>().Find(x => x.WavFileName == wavFileName);

            if (entity == null)
            {
                var newEntity = new STTEntity()
                {
                    PartitionKey = "direct_upload",
                    RowKey       = "direct_" + DateTime.Now.ToString("yyyyMMdd_HHmmss"),
                    WavFileName  = wavFileName,
                    WavFileUrl   = wavFileUrl,
                    //TxtFileName = null,
                    //TxtFileUrl = null,
                };

                await table.ExecuteAsync(TableOperation.InsertOrMerge(newEntity));
            }
        }