public async Task <HttpResponseMessage> Post([FromBody] Activity activity) { ConnectorClient connector = new ConnectorClient(new Uri(activity.ServiceUrl)); if (activity.Type == ActivityTypes.ConversationUpdate) { // mensagem para retornar string messageToReply = "Benvindo a Porto Seguro, como podemos te ajudar?"; StateClient stateClient = activity.GetStateClient(); BotData userData = await stateClient.BotState.GetUserDataAsync(activity.ChannelId, activity.From.Id); Usuario user = userData.GetProperty <Usuario>("UserData"); // se o usuário existir, recupera if (user != null) { string UserFirstName = Formatters.Capitalize(user.Nome).Split( )[0]; messageToReply = $"Benvindo a Porto Seguro {UserFirstName}, como podemos te ajudar?"; } log.Info("[BOT][" + activity.ChannelId + "][" + activity.From.Id + "]: " + messageToReply); await connector.Conversations.ReplyToActivityAsync(activity.CreateReply(messageToReply)); } else if (activity.Type == ActivityTypes.Message) { try { if (activity.Attachments.Any()) { foreach (Attachment at in activity.Attachments) { try { log.Info("UsuárioAtt [" + activity.From.Id + "] Name:" + at.Name + " ThumbnailUrl:" + at.ThumbnailUrl + " ContentUrl:" + at.ContentUrl + " ContentType:" + at.ContentType); await connector.Conversations.ReplyToActivityAsync(activity.CreateReply("Desculpe, no momento eu não consigo entender emoticons e anexos, por favor, use apenas texto.")); } catch (Exception e) { log.Error("Erro: " + e.ToString(), e); } } } } catch (Exception e) { log.Error("Erro: " + e.ToString(), e); } await Conversation.SendAsync(activity, () => new RootLuisDialog()); log.Info("Usuário [" + activity.ChannelId + "][" + activity.From.Id + "]: " + activity.Text); } else { HandleSystemMessage(activity); } return(Request.CreateResponse(HttpStatusCode.OK)); }
private async Task callbackBoletoCPF(IDialogContext context, IAwaitable <string> result) { try { var textResult = await result; if ("SAIR".Equals(textResult, StringComparison.InvariantCultureIgnoreCase)) { await context.PostAsync("Sua solicitação de boleto foi cancelada, como podemos te ajudar?"); context.Wait(MessageReceived); } else { if (Validators.IsCpf(textResult) || Validators.IsCnpj(textResult)) { Usuario user = null; if (Validators.IsCpf(textResult)) { user = Usuario.GetUsuario(textResult, true); } else { user = Usuario.GetUsuario(textResult, false); } if (user.Nome != null) { context.UserData.SetValue("UserData", user); string UserFirstName = Formatters.Capitalize(user.Nome).Split()[0]; if (Validators.IsCpf(textResult)) { PromptDialog.Text(context, callbackConfirmaData, $"{UserFirstName}, qual a sua data de Nascimento?"); } else { ShowUserProducts(context, user); context.Wait(MessageReceived); } } else { PromptDialog.Text(context, callbackBoletoCPF, "Desculpe, não encontramos esse CPF/CNPJ em nossa base de dados, digite novamente o CPF/CNPJ ou digite SAIR para cancelar a solicitação de segunda via."); } } else { PromptDialog.Text(context, callbackBoletoCPF, "Desculpe, o texto digitado não é um CPF/CNPJ válido, digite novamente o CPF/CNPJ ou SAIR para cancelar a solicitação de segunda via."); } } } catch (TooManyAttemptsException) { } }
public async Task SaudacaoAsync(IDialogContext context, LuisResult result) { Usuario user = new Usuario(); if (context.UserData.TryGetValue("UserData", out user)) { string UserFirstName = Formatters.Capitalize(user.Nome).Split()[0]; await context.PostAsync($"Benvindo a Porto Seguro {UserFirstName}, como podemos te ajudar?"); } else { await context.PostAsync("Benvindo a Porto Seguro, como podemos te ajudar?"); } context.Wait(MessageReceived); }