你好,我正试图从我的宇宙数据库拉数据,然后修改它,然后通过电子邮件发送给用户,其中有一个标签分隔的数据文本文件的附件。
到目前为止,我已经设置了逻辑应用程序来接收数据和查询以获取数据,并将数据更改为我想要的格式。我需要找出一种方法来创建一个制表符分隔的文件,并发送到我的逻辑应用程序。我只能得到一个字符串发送到我的逻辑应用程序的所有数据。下面是我使用的代码:
string query = $"Select * from c";
var restrictions = await _cosmosService.QueryItemsAsync<Data>(Database, query);
if (restrictions == null)
return new NoContentResult();
string tabDelimitedText = ConvertToTabDelimited(restrictions);
byte[] tabDelimitedBytes = System.Text.Encoding.UTF8.GetBytes(tabDelimitedText);
MemoryStream stream = new MemoryStream(tabDelimitedBytes);
var rtn = new FileStreamResult(stream, "text/plain");
await _client.PostAsync(EmailTriggerUrl, new StringContent(rtn, Encoding.UTF8, "application/text"));
return rtn;
private string GetTabDelimitedText(List<Person> people)
{
StringWriter textWriter = new StringWriter();
textWriter.WriteLine("Name\tAge\tCity");
foreach (var person in people)
{
textWriter.WriteLine($"{person.Name}\t{person.Age}\t{person.City}");
}
return textWriter.ToString();
}
我知道我需要从StringContent更改PostAsync,但我不确定需要什么
1条答案
按热度按时间wbgh16ku1#
我试图从我的宇宙数据库中提取数据,然后修改它,然后通过电子邮件发送给用户。
cosmosClient
从Cosmos Db提取数据,并使用以下代码将其存储为Blob容器中的Delimited-Text
文件。然后我用Logic Apps发送邮件。以下是我的步骤:
cosmosDbEP
和cosmosDbKey
创建了一个名为cosmosClient
的示例,用于与Cosmos DB进行交互。query
用于从数据库中检索数据。blobServClient
是使用blobConnStr
创建的,用于与Azure Blob存储帐户交互。GetTabDelimitedText
方法以Data
作为参数。它使用字符串插值来创建一个字符串,其中数据由制表符\t
分隔。blobName
用于为cosmosdb中的每个项目生成唯一的blob名称,tab-delimited
数据作为文本文件上传到Blob存储。下面是我尝试的代码:
输出:
数据存储在Blob中:
Logic Apps中的设计:
/tbalaji
来添加Blob容器中存储的数据。现在,数据可以发送到逻辑应用程序中的邮件,如下图所示。