public override void HandelMessage(object sender, string message) { TaskResultModel taskModel = new TaskResultModel(); taskModel.MergeFrom(message.DecodeBase64String()); if (!taskModel.MajorTaskId.IsNullOrEmpty() && !taskModel.SubTaskId.IsNullOrEmpty()) { lock (dbContext.obj) { var item = dbContext.TaskItems.FirstOrDefault(p => p.Id == Guid.Parse(taskModel.SubTaskId)); if (item != null) { item.Data = redisClient.HGet(taskModel.MajorTaskId, taskModel.SubTaskId); item.IsCrack = taskModel.IsCrack; item.Area = taskModel.CrackArea; if (taskModel.IsCrack) { item.MarkedData = redisClient.HGet(taskModel.MajorTaskId, "result-" + taskModel.SubTaskId); } } // 接收到该信息表明该任务已经被完成了,删除对应的缓存 redisClient.HDelete(taskModel.MajorTaskId, taskModel.SubTaskId); if (taskModel.IsCrack) { redisClient.HDelete(taskModel.MajorTaskId, "result-" + taskModel.SubTaskId); } dbContext.SaveChanges(); } } }
public async Task <IActionResult> Post([FromQuery] string userId, [FromQuery] string taskId, [FromBody] TaskResultModel taskResultModel) { var conversation = await conversationReferenceDao.GetConversationReference(taskId, userId); string messageToSend = taskResultModel.TaskStatus ? conversation.Item2 : conversation.Item3; await((BotAdapter)_adapter).ContinueConversationAsync(_appId, conversation.Item1, async(context, token) => await BotCallback(messageToSend, context, token), default);