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()); }
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); }
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();*/ }