Пример #1
0
        public async Task GetEvents(IDialogContext context, LuisResult result)
        {
            string eventDate = string.Empty;
            EntityRecommendation date;

            if (result.TryFindEntity(EntityEventdate, out date))
            {
                eventDate = date.Entity;
                using (var client = new GoogleCalendarClient())
                {
                    var events = await client.GetEvents(DateTime.Parse(eventDate));

                    await context.PostAsync(events);
                }
            }
            if (string.IsNullOrEmpty(eventDate))
            {
                await context.PostAsync("Please specify date");
            }
            context.Done <object>(new object());
        }
Пример #2
0
        private async Task HandleEventQuery(IDialogContext context, LUISResponse _Data)
        {
            var topIntent = _Data.intents[0].intent;

            switch (topIntent)
            {
            case "GetEventsForSpecifiedDate":
                using (var calendar = new GoogleCalendarClient())
                {
                    var eventDate =
                        _Data.entities.FirstOrDefault(e => e.type == "builtin.datetime.date");
                    var events = await calendar.GetEvents(eventDate.resolution.date.Value);

                    await context.PostAsync(events);
                }
                break;

            case "SetUpEvent":
                using (var calendar = new GoogleCalendarClient())
                {
                    var eventDate =
                        _Data.entities.FirstOrDefault(e => e.entity == "builtin.datetime.date");
                    var eventName = _Data.entities.FirstOrDefault(e => e.type == "EventName");
                    var isCreated = await calendar.SetUpEvent(eventDate.resolution.date.Value, eventName.entity);

                    await context.PostAsync(isCreated);
                }
                break;

            default:
                await context.PostAsync("Doesn't recognize a command");

                break;
            }
            context.Wait(MessageReceivedCommandChoice);
        }
Пример #3
0
        private async Task <string> Reply(string text, IDialogContext context)
        {
            if (text.Contains("help"))
            {
                return(@"This is a simple event bot.
Example of commands include:
  event today
  event tomorrow
  do i have smth at 10.09.2016
Your date input must be in format dd.mm.yyyy");
            }
            if (text.Contains("hi") || text.Contains("hello"))
            {
                return("Hello! I am an event bot.I can tell you if you have any event at the specific date");
            }
            if (text.Contains("bye"))
            {
                return("Good bye! Have a good day!");
            }
            if (text.Contains("who are you"))
            {
                return
                    ("I am an event bot. If you want to know about any of your events at the specific date, you can ask me about it");
            }
            if (text.Contains("develop") || text.Contains("create") || text.Contains("invent"))
            {
                return("I was developed by Alex Popovkin and Alex Chertov");
            }
            if (text.Contains("authorize"))
            {
                using (var client = new GoogleCalendarClient())
                {
                    return(await client.Authorize());
                }
            }
            if (text.Contains("check"))
            {
                using (var client = new GoogleCalendarClient())
                {
                    return(await client.GetEvents(new DateTime(2016, 1, 1)));
                }
            }
            return(string.Empty);

            /*if (text.Contains("event") && text.Contains("today"))
             *  return await date.BuildResult(Dates.Today);
             * if (text.Contains("event") && text.Contains("tomorrow"))
             *  return await date.BuildResult(Dates.Tomorrow);
             * if (text.Contains("remind me about"))
             *  return date.AddDate(text.Replace("remind me about","").Replace("at",""));
             * CultureInfo culture=new CultureInfo("ru-RU");
             * var match = Regex.Match(text,"[0-9]{1,2}.{1}[0-9]{1,2}.20[0-9]{2}");
             * if (match.Success)
             * {
             *  DateTime input;
             *  bool isCorrectDate = DateTime.TryParse(match.Value, culture.DateTimeFormat,DateTimeStyles.None, out input);
             *  if (!isCorrectDate) return "You enter an incorrect date";
             *  else date.date = input;
             * }
             *
             * return await date.BuildResult();*/
        }