我的松弛应用程序当前发送附带消息的按钮。只要点击一个按钮,它就会发送一个帖子请求。如果按钮的附加值为true,则会将值保存到数据库。
该按钮的工作方式是,当任何用户首次点击该按钮时,它会回复一个状态为“确认”并显示“"正确"”的消息,随后会发出任何问题"问题已经回答了#34;
我遇到的问题是,如果有多个人点击按钮,其附加值大致同时设置为true。它将全部响应"正确"。请问我应该如何回应帖子请求以及如何插入数据库sequentially
以便只发送一个正确的信息。
当前代码
public async Task<ActionResult> Post()
{
var payload = Request.Form.FirstOrDefault(x => x.Key == "payload");
bool value= JsonConvert.DeserializeObject<RootObject>(payload.Value);
using (var contexts = new TriviaBotDbContextFactory().CreateDbContext(null))
{
if (value)
{
// return if
var item = contexts.Questions.Include(x => x.Guesses).First(x => x.Id == question.Id);
if (item.Guesses.Any(y => y.Correct))
return StatusCode(200);
// Send Message Code
SBMClient client = new SBMClient(webHook);
Message msg = new Message("Correct");
client.Send(msg);
// Save to database
item.Guesses.Add(new Answer
{
Correct = true,
User = button.user.name
});
await contexts.SaveChangesAsync();
}
}
return StatusCode(200);
}