コード例 #1
0
        public static bool TryFindDateTime(SessionizeLuisModel luisResponse, out DateTime dateTime)
        {
            DateTimeSpec dateTimeSpec = luisResponse.Entities.datetime?.FirstOrDefault();

            dateTime = default;
            if (dateTimeSpec != null)
            {
                foreach (string expresion in dateTimeSpec?.Expressions)
                {
                    TimexProperty parsed = new TimexProperty(expresion);
                    if (parsed.TimexValue.Equals("PRESENT_REF", StringComparison.CurrentCultureIgnoreCase))
                    {
                        dateTime = DateTime.UtcNow.AddHours(2);
                        return(true);
                    }
                    else if (8 <= parsed.Hour && parsed.Hour < 18)
                    {
                        dateTime = new DateTime(
                            year: parsed.Year ?? DateTime.UtcNow.Year,
                            month: parsed.Month ?? DateTime.UtcNow.Month,
                            day: parsed.DayOfMonth ?? DateTime.UtcNow.Day,
                            hour: parsed.Hour ?? DateTime.UtcNow.AddHours(2).Hour,
                            minute: parsed.Minute ?? 0,
                            second: parsed.Second ?? 0
                            );
                        return(true);
                    }
                }
            }
            return(false);
        }
コード例 #2
0
        public static string GetTrack(this RecognizerResult recognizerResult)
        {
            var luisResponse = new SessionizeLuisModel();

            luisResponse.Convert(recognizerResult);

            string name = luisResponse.Entities.track?[0][0];

            return(name);
        }
コード例 #3
0
        public static DateTime?GetDateTime(this RecognizerResult recognizerResult)
        {
            var luisResponse = new SessionizeLuisModel();

            luisResponse.Convert(recognizerResult);

            DateTime dateTime;

            if (TryFindDateTime(luisResponse, out dateTime))
            {
                return(dateTime);
            }
            return(null);
        }