/// <summary> /// POST: api/Messages /// Receive a message from a user and reply to it /// </summary> /// public async Task <HttpResponseMessage> Post([FromBody] Activity activity) { if (activity.Type == ActivityTypes.Message) { //Log to DB //Instantiate the BotData dbContext Models.BotDataEntities db = new Models.BotDataEntities(); //Create a new User object Models.User newUser = new Models.User(); //Set properties of user object newUser.UserID = activity.From.Id; newUser.UserName = activity.From.Name; StateClient stateClient = activity.GetStateClient(); BotData botData = stateClient.BotState.GetPrivateConversationData(activity.ChannelId, activity.Conversation.Id, activity.From.Id); IDialogContext context; if (!isExistingUser(newUser)) { newUser.ExistingUser = 0; db.Users.Add(newUser); db.SaveChangesAsync(); botData.SetProperty <bool>("isExistingUser", false); } else { botData.SetProperty <bool>("isExistingUser", true); botData.SetProperty <string>("Username", newUser.UserName); botData.SetProperty <string>("Id", activity.From.Id); } await Conversation.SendAsync(activity, () => new GetTimeDialog()); } else { HandleSystemMessage(activity); } var response = Request.CreateResponse(HttpStatusCode.OK); return(response); }
private async Task After_UsernamePrompt(IDialogContext context, IAwaitable <string> result) { string username = await result; Models.BotDataEntities db = new Models.BotDataEntities(); Models.User newUser = new Models.User(); string userId = context.Activity.From.Id; newUser = db.Users.Find(userId); newUser.UserName = username; newUser.ExistingUser = 1; await db.SaveChangesAsync(); context.PrivateConversationData.SetValue <string>("Username", username); await context.PostAsync($"Pleasure to meet you {username}."); await context.PostAsync("What can I do for you?"); context.Wait(MessageReceived); }