public ActionResult Index(int id)
        {
            SkillConfigViewModel model = new SkillConfigViewModel()
            {
                SkillId = id
            };
            string intents   = "";
            string delimiter = "";

            using (AlexaSkillEntities db = new AlexaSkillEntities())
            {
                Context.Skill skill = db.Skills.FirstOrDefault(x => x.Id == id);
                if (skill == null)
                {
                    return(null);
                }
                foreach (Intent intent in skill.Intents.Where(x => x.IntentCalls.Count > 0))
                {
                    intents   = intents + delimiter + "{\"intent\": \"" + intent.Name + "\"}";
                    delimiter = ",";
                    foreach (IntentCall intentCall in intent.IntentCalls)
                    {
                        model.SampleUtterances = model.SampleUtterances + intent.Name + " " + intentCall.CallText + Environment.NewLine;
                    }
                    ;
                }
            }
            model.IntentSchema = "{\"intents\": [" + intents + "]}";

            return(View(model));
        }
예제 #2
0
        public PartialViewResult SkillNameMenu(int skillId)
        {
            SkillNameMenuViewModel model = new SkillNameMenuViewModel()
            {
                SkillId = skillId
            };

            if (skillId == 0)
            {
                return(PartialView(model));
            }



            string userId = User.Identity.GetUserId();

            using (AlexaSkillEntities db = new AlexaSkillEntities())
            {
                Context.Skill skill = db.Skills.FirstOrDefault(x => x.Id == skillId && x.UserId == userId);
                if (skill == null)
                {
                    return(PartialView(model));
                }
                model.SkillName = skill.Name;
            }

            return(PartialView(model));
        }
예제 #3
0
        public ActionResult WelcomeMessages(int id)
        {
            SkillWelcomeMessagesOverviewViewModel model = new SkillWelcomeMessagesOverviewViewModel();

            using (AlexaSkillEntities db = new AlexaSkillEntities())
            {
                Context.Skill skill = db.Skills.FirstOrDefault(x => x.Id == id);
                if (skill == null)
                {
                    return(null);
                }
                model.SkillId = skill.Id;

                foreach (WelcomeMessage welcomeMessage in skill.WelcomeMessages)
                {
                    model.Messages.Add(new Models.Messages.MessageOverviewItemViewModel
                    {
                        MessageId = welcomeMessage.Id,
                        Message   = welcomeMessage.Message
                    });
                }
            }

            return(View(model));
        }
        public ActionResult UserCallEdit(int skillId, int?userCallId)
        {
            UserCallEditViewModel model = new UserCallEditViewModel()
            {
                SkillId = skillId
            };



            using (AlexaSkillEntities db = new AlexaSkillEntities())
            {
                if (userCallId != null && userCallId != 0)
                {
                    Meat userCall = db.Meats.FirstOrDefault(x => x.Id == userCallId);
                    if (userCall != null)
                    {
                        model.UserCallId        = userCall.Id;
                        model.UserCallName      = userCall.Name;
                        model.AnswerId          = userCall.AnswerId;
                        model.CoreTemperatureId = userCall.CoreTemperatureId;
                    }
                }
            }

            model.Answers          = GetAnswers();
            model.CoreTemperatures = GetCoreTemperature();
            return(View(model));
        }
예제 #5
0
        public PartialViewResult MainMenu(int skillId)
        {
            if (skillId == 0)
            {
                return(null);
            }

            MainMenuViewModel model = new MainMenuViewModel()
            {
                SkillId = skillId
            };

            string userId = User.Identity.GetUserId();

            using (AlexaSkillEntities db = new AlexaSkillEntities())
            {
                Context.Skill skill = db.Skills.FirstOrDefault(x => x.Id == skillId && x.UserId == userId);
                if (skill == null)
                {
                    return(null);
                }
                foreach (Intent intent in skill.Intents.OrderBy(x => x.Name))
                {
                    model.Intents.Add(intent.Id, intent.Name);
                }
            }


            return(PartialView(model));
        }
예제 #6
0
 public ActionResult Edit(IntentCallEditViewModel model)
 {
     using (AlexaSkillEntities db = new AlexaSkillEntities())
     {
         if (model.IntentCallId != 0)
         {
             IntentCall message = db.IntentCalls.FirstOrDefault(x => x.Id == model.IntentCallId);
             if (message != null)
             {
                 message.CallText = model.CallText;
             }
         }
         else
         {
             IntentCall intentCall = new IntentCall()
             {
                 CallText = model.CallText,
                 IntentId = model.IntentId
             };
             db.IntentCalls.Add(intentCall);
         }
         db.SaveChanges();
     }
     return(RedirectToAction("Detail", "Intent", new { id = model.IntentId }));
 }
 public ActionResult Edit(WelcomeMessageEditViewModel model)
 {
     using (AlexaSkillEntities db = new AlexaSkillEntities())
     {
         if (model.MessageId != 0)
         {
             WelcomeMessage message = db.WelcomeMessages.FirstOrDefault(x => x.Id == model.MessageId);
             if (message != null)
             {
                 message.Message = model.Message;
             }
         }
         else
         {
             WelcomeMessage message = new WelcomeMessage()
             {
                 Message = model.Message,
                 SkillId = model.SkillId
             };
             db.WelcomeMessages.Add(message);
         }
         db.SaveChanges();
     }
     return(RedirectToAction("WelcomeMessages", "Skill", new { id = model.SkillId }));
 }
예제 #8
0
 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 }));
 }
예제 #9
0
        public ActionResult Intents(int id)
        {
            string userId = User.Identity.GetUserId();
            IntentOverviewViewModel model = new IntentOverviewViewModel()
            {
                SkillId = id
            };
            string skillName;

            using (AlexaSkillEntities db = new AlexaSkillEntities())
            {
                Context.Skill skill = db.Skills.FirstOrDefault(x => x.Id == id && x.UserId == userId);
                if (skill == null)
                {
                    return(null);
                }
                skillName = skill.Name;
                List <Intent> intents = db.Intents.Where(x => x.SkillId == skill.Id).ToList();

                foreach (Intent intent in intents)
                {
                    model.Intents.Add(new IntentItemViewModel()
                    {
                        Id   = intent.Id,
                        Name = intent.Name
                    });
                }
            }


            return(View(model));
        }
        public ActionResult UserCallEdit(UserCallEditViewModel model)
        {
            using (AlexaSkillEntities db = new AlexaSkillEntities())
            {
                Meat meat = new Meat();
                if (model.UserCallId != 0)
                {
                    meat = db.Meats.FirstOrDefault(x => x.Id == model.UserCallId);
                }
                if (meat == null)
                {
                    meat = new Meat();
                }
                meat.Name              = model.UserCallName;
                meat.AnswerId          = model.AnswerId;
                meat.CoreTemperatureId = model.CoreTemperatureId;
                if (meat.Id == 0)
                {
                    db.Meats.Add(meat);
                }
                db.SaveChanges();
            }

            return(RedirectToAction("UserCallOverview", new { skillId = model.SkillId }));
        }
        public ActionResult EditAnswerCalls(int skillId, int answerId)
        {
            AnswerCallViewModel model = new AnswerCallViewModel()
            {
                SkillId  = skillId,
                AnswerId = answerId
            };

            using (AlexaSkillEntities db = new AlexaSkillEntities())
            {
                if (answerId != 0)
                {
                    Answer answer = db.Answers.FirstOrDefault(x => x.Id == answerId);
                    if (answer != null)
                    {
                        model.Answer = answer.Answert;
                    }
                }
                List <Meat> meats = db.Meats.Where(x => x.AnswerId == answerId).ToList();

                foreach (Meat meat in meats)
                {
                    model.Calls.Add(new AnswerCallItemViewModel()
                    {
                        Id   = meat.Id,
                        Name = meat.Name
                    });
                }
                db.SaveChanges();
            }

            return(View(model));
        }
        public ActionResult EditTemperature(int skillId, int?temperatureId)
        {
            TemperatureEditViewModel model = new TemperatureEditViewModel()
            {
                SkillId       = skillId,
                TemperatureId = temperatureId
            };

            if (temperatureId != null && temperatureId != 0)
            {
                using (AlexaSkillEntities db = new AlexaSkillEntities())
                {
                    CoreTemperature temperature = db.CoreTemperatures.FirstOrDefault(x => x.Id == temperatureId);
                    model.Name             = temperature.Name;
                    model.DefaultDegree    = temperature.DefaultDegree;
                    model.DefaultMaxDegree = temperature.DefaultMaxDegree;
                    model.DefaultMinDegree = temperature.DefaultMinDegree;
                    model.DoneDegree       = temperature.DoneDegree;
                    model.DoneMaxDegree    = temperature.DoneMaxDegree;
                    model.DoneMinDegree    = temperature.DoneMinDegree;
                    model.MediumDegree     = temperature.MediumDegree;
                    model.MediumMaxDegree  = temperature.MediumMaxDegree;
                    model.MediumMinDegree  = temperature.MediumMinDegree;
                    model.RareDegree       = temperature.RareDegree;
                    model.RareMaxDegree    = temperature.RareMaxDegree;
                    model.RareMinDegree    = temperature.RareMinDegree;
                }
            }


            return(View(model));
        }
        public ActionResult EditAnswer(AnswerEditViewModel model)
        {
            Answer answer = new Answer();

            using (AlexaSkillEntities db = new AlexaSkillEntities())
            {
                if (model.AnswereId != null && model.AnswereId != 0)
                {
                    answer = db.Answers.FirstOrDefault(x => x.Id == model.AnswereId);
                }

                if (db.Answers.Where(x => x.Answert == model.Answer && x.Id != model.AnswereId).Count() > 0)
                {
                    return(RedirectToAction("Overview", "CoreTemperature", new { skillId = model.SkillId }));
                }

                if (answer != null)
                {
                    answer.Answert          = model.Answer;
                    answer.SessionTerm      = model.SessionTerm;
                    answer.ShouldEndSession = model.ShouldEndSession;

                    if (model.AnswereId == null || model.AnswereId == 0)
                    {
                        db.Answers.Add(answer);
                    }
                }
                db.SaveChanges();
            }
            return(RedirectToAction("AnswerOverview", "CoreTemperature", new { skillId = model.SkillId }));
        }
        public ActionResult EditTemperatureCalls(int skillId, int temperatureId)
        {
            TemperatureCallViewModel model = new TemperatureCallViewModel()
            {
                SkillId       = skillId,
                TemperatureId = temperatureId
            };

            using (AlexaSkillEntities db = new AlexaSkillEntities())
            {
                if (temperatureId != 0)
                {
                    CoreTemperature temperature = db.CoreTemperatures.FirstOrDefault(x => x.Id == temperatureId);
                    if (temperature != null)
                    {
                        model.TemperatureName = temperature.Name;
                    }
                }
                List <Meat> meats = db.Meats.Where(x => x.CoreTemperatureId == temperatureId).ToList();

                foreach (Meat meat in meats)
                {
                    model.Calls.Add(new TemperatureCallItemViewModel()
                    {
                        Id   = meat.Id,
                        Name = meat.Name
                    });
                }
                db.SaveChanges();
            }

            return(View(model));
        }
예제 #15
0
        public ActionResult Detail(int id)
        {
            IntentDetailViewModel model = new IntentDetailViewModel();

            using (AlexaSkillEntities db = new AlexaSkillEntities())
            {
                Intent intent = db.Intents.FirstOrDefault(x => x.Id == id);
                if (intent == null)
                {
                    return(null);
                }

                model.IntentId  = id;
                model.Name      = intent.Name;
                model.SkillId   = intent.Skill.Id;
                model.SkillName = intent.Skill.Name;

                foreach (IntentMessage message in intent.IntentMessages)
                {
                    model.Messages.Add(new MessageOverviewItemViewModel()
                    {
                        MessageId = message.Id,
                        Message   = message.Message
                    });
                }

                foreach (IntentCall intentCall in intent.IntentCalls)
                {
                    model.IntentCalls.Add(intentCall.Id, intentCall.CallText);
                }
            }

            return(View(model));
        }
        public string GetSkillName(string applicationId)
        {
            int skillId = GetSkillId(applicationId);

            using (AlexaSkillEntities db = new AlexaSkillEntities())
            {
                return(db.Skills.Where(x => x.ApplicationID == applicationId).Select(x => x.Name).FirstOrDefault());
            }
        }
        public ActionResult UserCallOverview(int skillId, int?answerId, int?coreTemperatureId)
        {
            UserCallOverviewViewModel model = new UserCallOverviewViewModel()
            {
                SkillId          = skillId,
                Answers          = GetAnswers(),
                CoreTemperatures = GetCoreTemperature()
            };

            using (AlexaSkillEntities db = new AlexaSkillEntities())
            {
                List <Meat> userCalls;

                if (answerId == null && coreTemperatureId == null)
                {
                    userCalls = db.Meats.OrderBy(x => x.Name).ToList();
                }
                else if (answerId.HasValue)
                {
                    userCalls = db.Meats.Where(x => x.AnswerId == answerId).OrderBy(x => x.Name).ToList();
                }
                else if (coreTemperatureId.HasValue)
                {
                    userCalls = db.Meats.Where(x => x.CoreTemperatureId == coreTemperatureId).OrderBy(x => x.Name).ToList();
                }
                else
                {
                    userCalls = db.Meats.OrderBy(x => x.Name).ToList();
                }

                foreach (Meat userCall in userCalls)
                {
                    UserCallViewModel newUserCall = new UserCallViewModel()
                    {
                        UserCallId   = userCall.Id,
                        UserCallName = userCall.Name
                    };

                    if (userCall.AnswerId != null)
                    {
                        newUserCall.AnswerId   = userCall.AnswerId;
                        newUserCall.AnswerText = userCall.Answer.Answert;
                    }

                    if (userCall.CoreTemperatureId != null)
                    {
                        newUserCall.CoreTemperatureId  = userCall.CoreTemperatureId;
                        newUserCall.CoreTemeratureName = userCall.CoreTemperature.Name;
                    }

                    model.UserCalls.Add(newUserCall);
                }
            }
            return(View(model));
        }
예제 #18
0
        public ActionResult Delete(int id)
        {
            IntentCallEditViewModel model = new IntentCallEditViewModel();

            using (AlexaSkillEntities db = new AlexaSkillEntities())
            {
                IntentCall intentCall = db.IntentCalls.FirstOrDefault(x => x.Id == id);
                db.IntentCalls.Remove(intentCall);
                db.SaveChanges();
                return(RedirectToAction("Detail", "Intent", new { id = intentCall.IntentId }));
            }
        }
예제 #19
0
        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 }));
            }
        }
        private int GetSkillId(string applicationId)
        {
            int skillId = 0;

            using (var db = new AlexaSkillEntities())
            {
                Context.Skill skill = db.Skills.FirstOrDefault(x => x.ApplicationID == applicationId);
                if (skill != null)
                {
                    skillId = skill.Id;
                }
            }
            return(skillId);
        }
예제 #21
0
 public ActionResult Edit(IntentEditViewModel model)
 {
     using (AlexaSkillEntities db = new AlexaSkillEntities())
     {
         Intent intent = db.Intents.FirstOrDefault(x => x.Id == model.IntentId);
         if (intent != null)
         {
             intent.Name             = model.Name;
             intent.ShouldEndSession = model.ShouldEndSession;
         }
         db.SaveChanges();
         return(RedirectToAction("Intents", "Skill", new { id = intent.SkillId }));
     }
 }
        public ActionResult UserCallDelete(int skillId, int userCallId)
        {
            using (AlexaSkillEntities db = new AlexaSkillEntities())
            {
                Meat meat = db.Meats.FirstOrDefault(x => x.Id == userCallId);
                if (meat != null)
                {
                    db.Meats.Remove(meat);
                    db.SaveChanges();
                }
            }

            return(RedirectToAction("UserCallOverview", new { skillId = skillId }));
        }
예제 #23
0
 public ActionResult Add(IntentAddViewModel model)
 {
     using (AlexaSkillEntities db = new AlexaSkillEntities())
     {
         Intent intent = new Intent()
         {
             SkillId          = model.SkillId,
             Name             = model.Name.Replace(" ", ""),
             ShouldEndSession = model.ShouldEndSession
         };
         db.Intents.Add(intent);
         db.SaveChanges();
         return(RedirectToAction("Detail", "Intent", new { id = intent.Id }));
     }
 }
        public ActionResult DeleteConfirm(int id)
        {
            WelcomeMessageEditViewModel model = new WelcomeMessageEditViewModel();

            using (AlexaSkillEntities db = new AlexaSkillEntities())
            {
                WelcomeMessage message = db.WelcomeMessages.FirstOrDefault(x => x.Id == id);
                if (message != null)
                {
                    model.MessageId = message.Id;
                    model.Message   = message.Message;
                    model.SkillId   = message.SkillId;
                }
            }
            return(View(model));
        }
예제 #25
0
        public ActionResult DeleteConfirm(int id)
        {
            IntentCallEditViewModel model = new IntentCallEditViewModel();

            using (AlexaSkillEntities db = new AlexaSkillEntities())
            {
                IntentCall intentCall = db.IntentCalls.FirstOrDefault(x => x.Id == id);
                if (intentCall != null)
                {
                    model.IntentCallId = intentCall.Id;
                    model.CallText     = intentCall.CallText;
                    model.IntentId     = intentCall.IntentId;
                    model.SkillId      = intentCall.Intent.SkillId;
                }
            }
            return(View(model));
        }
예제 #26
0
        public ActionResult Edit(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 GetAnyIntentMessage(string applicationId, string userId)
        {
            int skillId = GetSkillId(applicationId);

            using (AlexaSkillEntities db = new AlexaSkillEntities())
            {
                List <Intent> intents = db.Intents.Where(x => x.SkillId == skillId).ToList <Intent>();
                if (intents != null && intents.Count > 0)
                {
                    Random rnd = new Random();
                    int    r   = rnd.Next(intents.Count);

                    return(GetIntentMessage(applicationId, intents[r].Name, userId));
                }
            }
            return(null);
        }
        public string GetWelcomeMessage(string applicationId)
        {
            int skillId = GetSkillId(applicationId);

            using (AlexaSkillEntities db = new AlexaSkillEntities())
            {
                List <WelcomeMessage> messages = db.WelcomeMessages.Where(x => x.SkillId == skillId).ToList <WelcomeMessage>();
                if (messages != null && messages.Count > 0)
                {
                    Random rnd = new Random();
                    int    r   = rnd.Next(messages.Count);

                    return(messages[r].Message);
                }
            }
            return(null);
        }
예제 #29
0
 private void LogRequestToDb(AlexaRequestType requestType, string applicationId, string userId, string intent, string intentParam, string resultMessage)
 {
     using (AlexaSkillEntities db = new AlexaSkillEntities())
     {
         db.RequestLogs.Add(new RequestLog()
         {
             RequestTime   = DateTime.Now,
             ApplicationId = applicationId,
             UserId        = userId,
             RequestType   = requestType.ToString(),
             Intent        = intent,
             IntentParam   = intentParam,
             Information   = resultMessage
         });
         db.SaveChanges();
     }
 }
예제 #30
0
        public ActionResult Add(int id)
        {
            IntentCallEditViewModel model = new IntentCallEditViewModel()
            {
                IntentId = id
            };

            using (AlexaSkillEntities db = new AlexaSkillEntities())
            {
                Intent intent = db.Intents.FirstOrDefault(x => x.Id == id);
                if (intent != null)
                {
                    model.SkillId = intent.SkillId;
                }
            }

            return(View("Edit", model));
        }