Ejemplo n.º 1
0
        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();
                }
            }
        }
Ejemplo n.º 2
0
        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);