public ActionResult Edit(MessageEditViewModel model)
 {
     using (AlexaSkillEntities db = new AlexaSkillEntities())
     {
         if (model.MessageId != 0)
         {
             IntentMessage message = db.IntentMessages.FirstOrDefault(x => x.Id == model.MessageId);
             if (message != null)
             {
                 message.Message = model.Message;
             }
         }
         else
         {
             IntentMessage message = new IntentMessage()
             {
                 Message  = model.Message,
                 IntentId = model.IntentId
             };
             db.IntentMessages.Add(message);
         }
         db.SaveChanges();
     }
     return(RedirectToAction("Detail", "Intent", new { id = model.IntentId }));
 }
Beispiel #2
0
        /// <summary>
        /// Called when the intent has been recognized
        /// </summary>
        /// <param name="intent"></param>
        /// <param name="session"></param>
        /// <returns></returns>
        public async Task OnIntentAsync(IntentMessage intent, Session session)
        {
            //Check the Slots in intent

            //Finish the session
            await _snipsApi.EndSessionAsync(intent.SessionId, "Test is Done!");
        }
Beispiel #3
0
        public IActionResult SendIntent([FromBody] IntentMessage param)
        {
            IpcMessage ipcMessage = new IpcMessage()
            {
                Body = JsonConvert.SerializeObject(param)
            };

            this.mPseudoFrontentIpcMessageBridge.Invoke("PIXS_INTENT_MESSAGE", ipcMessage);
            return(Ok());
        }
Beispiel #4
0
    public void SelectAction(Action action, int turnCount)
    {
        if (ws == null || !ws.IsConnected())
        {
            Debug.LogError("No connection to send message to");
            return;
        }

        // TODO pass turn count
        string message = IntentMessage.MakeIntentMessage(action, turnCount);

        ws.SendString(message);
    }
        public ActionResult Delete(int id)
        {
            MessageEditViewModel model = new MessageEditViewModel();

            using (AlexaSkillEntities db = new AlexaSkillEntities())
            {
                IntentMessage             message = db.IntentMessages.FirstOrDefault(x => x.Id == id);
                List <IntentMessagesRead> reads   = db.IntentMessagesReads.Where(x => x.IntentMessageId == id).ToList();
                db.IntentMessagesReads.RemoveRange(reads);
                db.IntentMessages.Remove(message);
                db.SaveChanges();
                return(RedirectToAction("Detail", "Intent", new { id = message.IntentId }));
            }
        }
        public ActionResult DeleteConfirm(int id)
        {
            MessageEditViewModel model = new MessageEditViewModel();

            using (AlexaSkillEntities db = new AlexaSkillEntities())
            {
                IntentMessage message = db.IntentMessages.FirstOrDefault(x => x.Id == id);
                if (message != null)
                {
                    model.MessageId = message.Id;
                    model.Message   = message.Message;
                    model.IntentId  = message.IntentId;
                    model.SkillId   = message.Intent.SkillId;
                }
            }
            return(View(model));
        }
        public IntentMessageModel GetIntentMessage(string applicationId, string intentName, string userId)
        {
            int           skillId    = GetSkillId(applicationId);
            IntentMessage newMessage = null;

            using (var db = new AlexaSkillEntities())
            {
                Intent intent = db.Intents.FirstOrDefault(x => x.Name == intentName && x.SkillId == skillId);
                if (intent != null)
                {
                    List <IntentMessage> messages = intent.IntentMessages.ToList();
                    if (messages.Count == 0)
                    {
                        return(null);
                    }

                    List <int> readedIds = db.IntentMessagesReads.Where(x => x.UserId == userId).Select(x => x.IntentMessageId).ToList();
                    //Never Read
                    List <IntentMessage> unreadMessages = messages.Where(x => !readedIds.Contains(x.Id)).ToList();
                    if (unreadMessages.Count > 0)
                    {
                        newMessage = GetRandomMessage(unreadMessages);
                        db.IntentMessagesReads.Add(new IntentMessagesRead()
                        {
                            IntentMessageId = newMessage.Id,
                            UserId          = userId,
                            ReadSecond      = false
                        });
                        db.SaveChanges();
                        return(new IntentMessageModel()
                        {
                            Mesasge = newMessage.Message,
                            ShouldEndSession = intent.ShouldEndSession
                        });
                    }
                    ;

                    //Not 2 times read
                    unreadMessages = messages.Where(x => x.IntentMessagesReads.Any(y => y.UserId == userId && y.ReadSecond == false)).ToList();
                    if (unreadMessages.Count > 0)
                    {
                        newMessage = GetRandomMessage(unreadMessages);
                        IntentMessagesRead readedMessage = db.IntentMessagesReads.FirstOrDefault(x => x.IntentMessageId == newMessage.Id);
                        if (readedMessage != null)
                        {
                            readedMessage.ReadSecond = true;
                            db.SaveChanges();
                        }
                        return(new IntentMessageModel()
                        {
                            Mesasge = newMessage.Message,
                            ShouldEndSession = intent.ShouldEndSession
                        });
                    }

                    //All read 2 times
                    newMessage = GetRandomMessage(messages);
                    List <int> messageIds = messages.Select(person => person.Id).ToList();


                    List <IntentMessagesRead> readedMessages = db.IntentMessagesReads.Where(x => x.UserId == userId && messageIds.Contains(x.IntentMessageId)).ToList();
                    foreach (IntentMessagesRead readedMessage in readedMessages)
                    {
                        if (newMessage.Id != readedMessage.IntentMessageId)
                        {
                            readedMessage.ReadSecond = false;
                        }
                    }
                    db.SaveChanges();


                    return(new IntentMessageModel()
                    {
                        Mesasge = newMessage.Message,
                        ShouldEndSession = intent.ShouldEndSession
                    });
                }
            }
            return(null);
        }