public async Task HandleMessage(IBotContext botContext) { var context = new DetectiveBotContext(botContext, _faceRecognitionService, _customVisionService); var handled = false; if (context.RecognizedIntents.TopIntent?.Name == Intents.Quit) { await context.SendActivity($"Stopping current action"); context.ConversationState.ActiveTopic = new DefaultTopic(_customVisionService, _faceRecognitionService); handled = await context.ConversationState.ActiveTopic.StartTopic(context); return; } if (context.ConversationState.ActiveTopic == null) { context.ConversationState.ActiveTopic = new DefaultTopic(_customVisionService, _faceRecognitionService); handled = await context.ConversationState.ActiveTopic.StartTopic(context); } else { handled = await context.ConversationState.ActiveTopic.ContinueTopic(context); } // if activeTopic's result is false and the activeTopic is NOT already the default topic if (handled == false && !(context.ConversationState.ActiveTopic is DefaultTopic)) { // USe DefaultTopic as the active topic context.ConversationState.ActiveTopic = new DefaultTopic(_customVisionService, _faceRecognitionService); handled = await context.ConversationState.ActiveTopic.StartTopic(context); } }
private async Task GetOrAddUserProfile(IBotContext botContext) { try { var context = new DetectiveBotContext(botContext, _faceRecognitionService, _customVisionService); var activity = context.Request.AsConversationUpdateActivity(); var user = activity.MembersAdded.Where(m => m.Id == activity.Recipient.Id).FirstOrDefault(); if (user != null) { await context.SendActivity($"Hello {user.Name}, welcome to the Detective bot!"); } } catch (Exception ex) { _logger.LogError(ex, "Failed to get user."); } }