예제 #1
0
        private Timex ParseAndParse(string json)
        {
            dynamic obj = JsonParser.Parse(json);

            if (!TimexParser.TryParse(obj, out Timex timex))
            {
                throw new Exception("Not parsed");
            }
            return(timex);
        }
예제 #2
0
        private async Task UpdateUpdaterState(RecognizerResult luisResult, ITurnContext turnContext)
        {
            try
            {
                if (luisResult.Entities != null && luisResult.Entities.HasValues)
                {
                    var updaterState = await updaterStateAccessor.GetAsync(turnContext, () => new UpdaterState());

                    var entities = luisResult.Entities;
                    if (entities["push_action"] != null)
                    {
                        updaterState.Action = entities["push_action"][0][0].ToString();
                    }
                    if (entities["push_detalization"] != null)
                    {
                        updaterState.Detalization = entities["push_detalization"][0][0].ToString();
                    }
                    if (entities["datetime"] != null)
                    {
                        dynamic dt = entities["datetime"];
                        if (TimexParser.TryParse(dt, out Timex.Timex timex))
                        {
                            updaterState.UpdateDateTime = timex;
                        }
                        else
                        {
                            await turnContext.SendActivityAsync($"Can't parse timex expression: {dt}");
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                await turnContext.SendActivityAsync("Error: " + ex.Message);
            }
        }