Я пытаюсь выяснить, как проверить, существует ли запись, прежде чем добавить ее с помощью BindAsync в функции Azure. Есть ли способ сделать это, используя мою существующую реализацию, или мне нужно использовать другой метод?
Специально проверьте нижнюю часть функции вокруг локальной переменной «output».
[FunctionName("Signup")]
public static async Task<IActionResult> Signup([HttpTrigger(AuthorizationLevel.Anonymous, "post", Route ="user/signup")] HttpRequest Req, Binder binder, ILogger log)
{
var UserId = System.Guid.NewGuid().ToString();
var FirstName = Req.Form["FirstName"];
var LastName = Req.Form["LastName"];
string FbId = null;
if (Req.Form.ContainsKey("FbId"))
{
FbId = Req.Form["FbId"];
}
var Email = Req.Form["Email"];
var PasswordPlain = Req.Form["Password"];
string hash;
hash = BCrypt.Net.BCrypt.HashPassword(PasswordPlain);
var ProfilePic = Req.Form.Files.GetFile("ProfilePic");
var ProfilePicStream = ProfilePic.OpenReadStream();
var ProfilePicFileName = await UploadImage(ProfilePicStream, UserId, binder);
if (FbId == null)
{
log.LogInformation("No FB detected");
}
else
{
log.LogInformation("FB detected");
}
var NewUser = new UserTableEntity
{
PartitionKey = 1.ToString(),
RowKey = UserId,
FirstName = FirstName,
LastName = LastName,
FbId = FbId,
Email = Email,
ProfilePic = ProfilePicFileName,
Password = hash
};
var attributes = new System.Attribute[]
{
new StorageAccountAttribute("TabbrDevCosmosDb"),
new TableAttribute("Users")
};
var output = await binder.BindAsync<IAsyncCollector<UserTableEntity>>(attributes);
await output.AddAsync(NewUser);
return new OkObjectResult(JsonConvert.SerializeObject(NewUser));
}