示例#1
0
        public async Task <IActionResult> Index()
        {
            #region ReadJSON
            //var jsonData = await new StreamReader(Request.Body).ReadToEndAsync();
            //return Json(new {speech = jsonData});
            #endregion

            try
            {
                var     jsonString = await new StreamReader(Request.Body).ReadToEndAsync();
                dynamic request    = JsonConvert.DeserializeObject(jsonString);

                try
                {
                    //Check if cancel request
                    if (request.result.metadata.intentName == "shop.test.api.BuyReq.cancel")
                    {
                        SessionStorageHelper.RemoveAllById(GetMessengerSenderId(request));
                        return(Json(new{}));
                    }

                    //Buy request
                    if (request.result.resolvedQuery == "test api" ||
                        request.result.contexts[0].name == "buystep")
                    {
                        return(await new BuyReqHandler(this, request, _mailContent).Result());
                    }
                }
                catch (Exception e)
                {
                    // ReSharper disable once PossibleIntendedRethrow
                    return(Json(new { speech = e.Message + e.StackTrace + jsonString }));
                }
                return(Json(new
                {
                    speech = "CutieBot chưa hiểu câu hỏi của bạn. Xin hãy đợi nhân viên chúng mình tiếp nhận để trả lời bạn sớm nhất"
                }));
            }
            catch (Exception e)
            {
                return(Json(new { speech = e.InnerException.Message + e.InnerException.StackTrace }));
            }
        }
 protected ChatHandler(Controller receiver, dynamic request)
 {
     Storage  = new SessionStorageHelper(this);
     Receiver = receiver;
     Request  = request;
 }