Пример #1
0
        private Models.User GetUser(IDialogContext context)
        {
            Models.BotDataEntities db   = new Models.BotDataEntities();
            Models.User            user = new Models.User();

            string userId = context.Activity.From.Id;

            user = db.Users.Find(userId);
            return(user);
        }
Пример #2
0
        private bool isExistingUser(Models.User user)
        {
            Models.BotDataEntities db = new Models.BotDataEntities();
            var result = db.Users.Find(user.UserID);

            if (db.Users.Find(user.UserID) == null)
            {
                return(false);
            }
            else
            {
                return(true);
            }
        }
Пример #3
0
        /// <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);
        }
Пример #4
0
        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);
        }