/// <summary> /// Every conversation turn for our LUIS Bot will call this method. /// There are no dialogs used, the sample only uses "single turn" processing, /// meaning a single request and response, with no stateful conversation. /// </summary> /// <param name="turnContext">A <see cref="ITurnContext"/> containing all the data needed /// for processing this conversation turn. </param> /// <param name="cancellationToken">(Optional) A <see cref="CancellationToken"/> that can be used by other objects /// or threads to receive notice of cancellation.</param> /// <returns>A <see cref="Task"/> that represents the work queued to execute.</returns> public async Task OnTurnAsync(ITurnContext turnContext, CancellationToken cancellationToken = default(CancellationToken)) { if (turnContext.Activity.Type == ActivityTypes.Message) { // Check LUIS model var recognizerResult = await _services.LuisServices[LuisKey].RecognizeAsync(turnContext, cancellationToken); var topIntent = recognizerResult?.GetTopScoringIntent(); if (topIntent != null && topIntent.HasValue && topIntent.Value.intent != "None") { await turnContext.SendActivityAsync($"==>LUIS Top Scoring Intent: {topIntent.Value.intent}, Score: {topIntent.Value.score}\n"); //var listOfEntities = recognizerResult?.Entities.First["$instance"]["DayName"]["text"]; //var listOfEntities = recognizerResult?.Entities.First.ToString(); //var listOfEntities = recognizerResult?.Entities.First.ToString(); //dynamic data = JsonConvert.DeserializeObject(recognizerResult?.Entities.Last); var listOfEntities = recognizerResult?.Entities.Last.ToString(); //dynamic dyn = JsonConvert.DeserializeObject(listOfEntities); //foreach (var obj in dyn.DayName) //{ // for //}; var stringEntities = recognizerResult?.Entities.ToString(); await turnContext.SendActivityAsync($"Entities: {stringEntities} \n"); // //var customEntityData = CustomEntityData.FromJson(jsonString); var customEntityData = CustomEntityData.FromJson(stringEntities); var sundayWord = customEntityData.DayName[0][0].ToString(); await turnContext.SendActivityAsync($"Entities: {sundayWord} \n"); var dateTimeClass = DateTimeClass.FromJson(stringEntities); var dateTimeString = dateTimeClass.Datetime[0].Timex[0].ToString(); await turnContext.SendActivityAsync($"Entities: {dateTimeString} \n"); var dateAndTimeClass = DateAndTimeClass.FromJson(stringEntities); var dateAndTimeClassTheDate = dateTimeClass.Datetime[0].Timex[0].ToString(); var dateAndTimeClassTheTime = dateTimeClass.Datetime[1].Timex[0].ToString(); await turnContext.SendActivityAsync($"Entities: {dateAndTimeClassTheDate} and {dateAndTimeClassTheTime} \n"); var dateAndDateTimeClass = DateAndDateTimeClass.FromJson(stringEntities); var dateAndDateTimeClassTheDate = dateAndDateTimeClass.Datetime[0].Timex[0].ToString(); var dateAndDateTimeClassTheDateTime = dateAndDateTimeClass.Datetime[1].Timex[0].ToString(); //var input = "2018-10-28"; ////var input = "2018-10-28T4"; //var format = "yyyy-MM-dd"; ////var format = "yyyy-MM-ddThh:mm:ss"; //DateTime parsed; //string parsedString; // if (DateTime.TryParseExact(input, format, CultureInfo.InvariantCulture, DateTimeStyles.None, out parsed)) ////if (DateTime.TryParse(dateAndDateTimeClassTheDateTime, CultureInfo.InvariantCulture, DateTimeStyles.None, out parsed)) ////if (DateTime.TryParse(input, CultureInfo.InvariantCulture , DateTimeStyles.None, out parsed)) //{ // parsedString = parsed.ToString(); // // Do whatever you want with "parsed" // await turnContext.SendActivityAsync($"Parsed: {parsedString} \n"); //} //WORKS //var input = "2012-05-28 11:35:00Z"; //var format = "yyyy-MM-dd HH:mm:ssZ"; //if (DateTime.TryParseExact(input, format, CultureInfo.InvariantCulture, DateTimeStyles.None, out parsed)) var input = "2018-10-28T11:35:00"; //var format = "yyyy-MM-dd"; var format = "yyyy-MM-ddThh:mm:ss"; DateTime parsed; string parsedString; try { await turnContext.SendActivityAsync($"Input: {input} Format: {format} \n"); DateTime.TryParseExact(input, format, CultureInfo.InvariantCulture, DateTimeStyles.None, out parsed); } catch (Exception ex) { await turnContext.SendActivityAsync($"Parsed: {ex.ToString()} \n"); } //if (DateTime.TryParse(dateAndDateTimeClassTheDateTime, CultureInfo.InvariantCulture, DateTimeStyles.None, out parsed)) //if (DateTime.TryParse(input, CultureInfo.InvariantCulture , DateTimeStyles.None, out parsed)) var input1 = "2018-10-28T11:35:00"; var format1 = "yyyy-MM-ddThh:mm:ss"; if (DateTime.TryParseExact(input1, format1, CultureInfo.InvariantCulture, DateTimeStyles.None, out parsed)) { parsedString = parsed.ToString(); // Do whatever you want with "parsed" await turnContext.SendActivityAsync($"Parsed 1: {parsedString} \n"); await turnContext.SendActivityAsync($"Input: {input1} Format: {format1} \n"); } else { await turnContext.SendActivityAsync($"FAILED 1: Input: {input1} Format: {format1} \n"); } var input2 = "2018-10-28T11:35:00"; var format2 = "yyyy-MM-ddTHH:mm:ss"; if (DateTime.TryParseExact(input2, format2, CultureInfo.InvariantCulture, DateTimeStyles.None, out parsed)) { parsedString = parsed.ToString(); // Do whatever you want with "parsed" await turnContext.SendActivityAsync($"Parsed 2: {parsedString} \n"); await turnContext.SendActivityAsync($"Input: {input2} Format: {format2} \n"); } else { await turnContext.SendActivityAsync($"FAILED 2: Input: {input2} Format: {format2} \n"); } var input3 = "2018-10-28T04:35:00"; var format3 = "yyyy-MM-ddThh:mm:ss"; if (DateTime.TryParseExact(input3, format3, CultureInfo.InvariantCulture, DateTimeStyles.None, out parsed)) { parsedString = parsed.ToString(); // Do whatever you want with "parsed" await turnContext.SendActivityAsync($"Parsed 3: {parsedString} \n"); await turnContext.SendActivityAsync($"Input: {input3} Format: {format3} \n"); } else { await turnContext.SendActivityAsync($"FAILED 3: Input: {input3} Format: {format3} \n"); } var input4 = "2018-10-28T04:35:00"; var format4 = "yyyy-MM-ddTHH:mm:ss"; if (DateTime.TryParseExact(input4, format4, CultureInfo.InvariantCulture, DateTimeStyles.None, out parsed)) { parsedString = parsed.ToString(); // Do whatever you want with "parsed" await turnContext.SendActivityAsync($"Parsed 4: {parsedString} \n"); await turnContext.SendActivityAsync($"Input: {input4} Format: {format4} \n"); } else { await turnContext.SendActivityAsync($"FAILED 4: Input: {input4} Format: {format4} \n"); } var input5 = "2018-10-28T4:35:00"; var format5 = "yyyy-MM-ddTh:mm:ss"; if (DateTime.TryParseExact(input5, format5, CultureInfo.InvariantCulture, DateTimeStyles.None, out parsed)) { parsedString = parsed.ToString(); // Do whatever you want with "parsed" await turnContext.SendActivityAsync($"Parsed 5: {parsedString} \n"); await turnContext.SendActivityAsync($"Input: {input5} Format: {format5} \n"); } else { await turnContext.SendActivityAsync($"FAILED 5: Input: {input5} Format: {format5} \n"); } var input6 = "2018-10-28T4:35:00"; var format6 = "yyyy-MM-ddTH:mm:ss"; if (DateTime.TryParseExact(input6, format6, CultureInfo.InvariantCulture, DateTimeStyles.None, out parsed)) { parsedString = parsed.ToString(); // Do whatever you want with "parsed" await turnContext.SendActivityAsync($"Parsed 6: {parsedString} \n"); await turnContext.SendActivityAsync($"Input: {input6} Format: {format6} \n"); } else { await turnContext.SendActivityAsync($"FAILED 6: Input: {input6} Format: {format6} \n"); } //THIS DOES NOT WORK var input7 = "2018-10-28T4:35:00"; var format7 = "yyyy-MM-ddThh:mm:ss"; if (DateTime.TryParseExact(input7, format7, CultureInfo.InvariantCulture, DateTimeStyles.None, out parsed)) { //THIS DOES NOT WORK parsedString = parsed.ToString(); await turnContext.SendActivityAsync($"Parsed 7: {parsedString} \n"); await turnContext.SendActivityAsync($"Input: {input7} Format: {format7} \n"); } else { await turnContext.SendActivityAsync($"FAILED 7: Input: {input7} Format: {format7} \n"); } //THIS DOES NOT WORK var input8 = "2018-10-28T4:35:00"; var format8 = "yyyy-MM-ddTHH:mm:ss"; if (DateTime.TryParseExact(input8, format8, CultureInfo.InvariantCulture, DateTimeStyles.None, out parsed)) { //THIS DOES NOT WORK parsedString = parsed.ToString(); await turnContext.SendActivityAsync($"Parsed 8: {parsedString} \n"); await turnContext.SendActivityAsync($"Input: {input8} Format: {format8} \n"); } else { await turnContext.SendActivityAsync($"FAILED 8: Input: {input8} Format: {format8} \n"); } var input9 = "2018-10-28T11:35:00"; var format9 = "yyyy-MM-ddTh:mm:ss"; if (DateTime.TryParseExact(input9, format9, CultureInfo.InvariantCulture, DateTimeStyles.None, out parsed)) { parsedString = parsed.ToString(); // Do whatever you want with "parsed" await turnContext.SendActivityAsync($"Parsed 9: {parsedString} \n"); await turnContext.SendActivityAsync($"Input: {input9} Format: {format9} \n"); } else { await turnContext.SendActivityAsync($"FAILED 9: Input: {input9} Format: {format9} \n"); } var input10 = "2018-10-28T11:35:00"; var format10 = "yyyy-MM-ddTH:mm:ss"; if (DateTime.TryParseExact(input10, format10, CultureInfo.InvariantCulture, DateTimeStyles.None, out parsed)) { parsedString = parsed.ToString(); await turnContext.SendActivityAsync($"Parsed 10: {parsedString} \n"); await turnContext.SendActivityAsync($"Input: {input10} Format: {format10} \n"); } else { await turnContext.SendActivityAsync($"FAILED 10: Input: {input10} Format: {format10} \n"); } //NOW DOING 14 HOUR FORMAT AS RETURNED BY LUIS var input11 = "2018-10-28T14:35:00"; var format11 = "yyyy-MM-ddThh:mm:ss"; if (DateTime.TryParseExact(input11, format11, CultureInfo.InvariantCulture, DateTimeStyles.None, out parsed)) { //THIS DOES NOT WORK parsedString = parsed.ToString(); await turnContext.SendActivityAsync($"Parsed 11: {parsedString} \n"); await turnContext.SendActivityAsync($"Input: {input11} Format: {format11} \n"); } else { await turnContext.SendActivityAsync($"FAILED 11: Input: {input11} Format: {format11} \n"); } //THIS DOES NOT WORK var input12 = "2018-10-28T14:35:00"; var format12 = "yyyy-MM-ddTHH:mm:ss"; if (DateTime.TryParseExact(input12, format12, CultureInfo.InvariantCulture, DateTimeStyles.None, out parsed)) { //THIS DOES NOT WORK parsedString = parsed.ToString(); await turnContext.SendActivityAsync($"Parsed 12: {parsedString} \n"); await turnContext.SendActivityAsync($"Input: {input12} Format: {format12} \n"); } else { await turnContext.SendActivityAsync($"FAILED 12: Input: {input12} Format: {format12} \n"); } var input13 = "2018-10-28T14:35:00"; var format13 = "yyyy-MM-ddTh:mm:ss"; if (DateTime.TryParseExact(input13, format13, CultureInfo.InvariantCulture, DateTimeStyles.None, out parsed)) { parsedString = parsed.ToString(); // Do whatever you want with "parsed" await turnContext.SendActivityAsync($"Parsed 13: {parsedString} \n"); await turnContext.SendActivityAsync($"Input: {input13} Format: {format13} \n"); } else { await turnContext.SendActivityAsync($"FAILED 13: Input: {input13} Format: {format13} \n"); } var input14 = "2018-10-28T14:35:00"; var format14 = "yyyy-MM-ddTH:mm:ss"; if (DateTime.TryParseExact(input14, format14, CultureInfo.InvariantCulture, DateTimeStyles.None, out parsed)) { parsedString = parsed.ToString(); await turnContext.SendActivityAsync($"Parsed 14: {parsedString} \n"); await turnContext.SendActivityAsync($"Input: {input14} Format: {format14} \n"); } else { await turnContext.SendActivityAsync($"FAILED 14: Input: {input14} Format: {format14} \n"); } /////////////////////////// var input15 = "2018-10-28T14:35"; var format15 = "yyyy-MM-ddTH:mm"; if (DateTime.TryParseExact(input15, format15, CultureInfo.InvariantCulture, DateTimeStyles.None, out parsed)) { parsedString = parsed.ToString(); await turnContext.SendActivityAsync($"Parsed 15: {parsedString} \n"); await turnContext.SendActivityAsync($"Input: {input15} Format: {format15} \n"); } else { await turnContext.SendActivityAsync($"FAILED 15: Input: {input15} Format: {format15} \n"); } var input15a = "2018-10-28T14"; var format15a = "yyyy-MM-ddTH:mm"; if (DateTime.TryParseExact(input15a, format15a, CultureInfo.InvariantCulture, DateTimeStyles.None, out parsed)) { parsedString = parsed.ToString(); await turnContext.SendActivityAsync($"Parsed 15a: {parsedString} \n"); await turnContext.SendActivityAsync($"Input: {input15a} Format: {format15a} \n"); } else { await turnContext.SendActivityAsync($"FAILED 15a: Input: {input15a} Format: {format15a} \n"); } var input16 = "2018-10-28T14"; var format16 = "yyyy-MM-ddTH"; if (DateTime.TryParseExact(input16, format16, CultureInfo.InvariantCulture, DateTimeStyles.None, out parsed)) { parsedString = parsed.ToString(); await turnContext.SendActivityAsync($"Parsed 16: {parsedString} \n"); await turnContext.SendActivityAsync($"Input: {input16} Format: {format16} \n"); } else { await turnContext.SendActivityAsync($"FAILED 16: Input: {input16} Format: {format16} \n"); } ////////////////////////////// /// var input17 = "2018-10-28 14:00:00Z"; //var format16 = "yyyy-MM-ddTH"; if (DateTime.TryParse(input17, CultureInfo.InvariantCulture, DateTimeStyles.None, out parsed)) // if (DateTime.TryParseExact(input16, format16, CultureInfo.InvariantCulture, DateTimeStyles.None, out parsed)) { parsedString = parsed.ToString(); await turnContext.SendActivityAsync($"Parsed 17: {parsedString} \n"); await turnContext.SendActivityAsync($"Input: {input17} Format: NO FORMAT \n"); } else { await turnContext.SendActivityAsync($"FAILED 17: Input: {input17} Format: NO FORMAT \n"); } var input18 = "2018-10-28 14:00Z"; //var format16 = "yyyy-MM-ddTH"; if (DateTime.TryParse(input18, CultureInfo.InvariantCulture, DateTimeStyles.None, out parsed)) // if (DateTime.TryParseExact(input16, format16, CultureInfo.InvariantCulture, DateTimeStyles.None, out parsed)) { parsedString = parsed.ToString(); await turnContext.SendActivityAsync($"Parsed 18: {parsedString} \n"); await turnContext.SendActivityAsync($"Input: {input18} Format: NO FORMAT \n"); } else { await turnContext.SendActivityAsync($"FAILED 18: Input: {input18} Format: NO FORMAT \n"); } var input19 = "2018-10-28 14Z"; //var format16 = "yyyy-MM-ddTH"; if (DateTime.TryParse(input19, CultureInfo.InvariantCulture, DateTimeStyles.None, out parsed)) // if (DateTime.TryParseExact(input16, format16, CultureInfo.InvariantCulture, DateTimeStyles.None, out parsed)) { parsedString = parsed.ToString(); await turnContext.SendActivityAsync($"Parsed 19: {parsedString} \n"); await turnContext.SendActivityAsync($"Input: {input19} Format: NO FORMAT \n"); } else { await turnContext.SendActivityAsync($"FAILED 19: Input: {input19} Format: NO FORMAT \n"); } var input20 = "03-15"; var format20 = "MM-dd"; if (DateTime.TryParseExact(input20, format20, CultureInfo.InvariantCulture, DateTimeStyles.None, out parsed)) { parsedString = parsed.ToString(); await turnContext.SendActivityAsync($"Parsed 20: {parsedString} \n"); await turnContext.SendActivityAsync($"Input: {input20} Format: {format20} \n"); } else { await turnContext.SendActivityAsync($"FAILED 20: Input: {input20} Format: {format20} \n"); } var input21 = "XXXX-03-15"; var format21 = "MM-dd"; if (DateTime.TryParseExact(input21, format21, CultureInfo.InvariantCulture, DateTimeStyles.None, out parsed)) { parsedString = parsed.ToString(); await turnContext.SendActivityAsync($"Parsed 21: {parsedString} \n"); await turnContext.SendActivityAsync($"Input: {input21} Format: {format21} \n"); } else { await turnContext.SendActivityAsync($"FAILED 21: Input: {input21} Format: {format21} \n"); } var input22 = "XXXX-03-15"; var format22 = "MM-dd"; if (input22.Contains("XXXX-") & !input22.Contains("XXXX-W")) { input22 = input22.Replace("XXXX-", ""); } if (DateTime.TryParseExact(input22, format22, CultureInfo.InvariantCulture, DateTimeStyles.None, out parsed)) { parsedString = parsed.ToString(); parsedString = parsedString.Replace(" 12:00:00 AM", ""); await turnContext.SendActivityAsync($"Parsed 22: {parsedString} \n"); await turnContext.SendActivityAsync($"Input: {input22} Format: {format22} \n"); } else { await turnContext.SendActivityAsync($"FAILED 22: Input: {input22} Format: {format22} \n"); } var input23 = "XXXX-03"; var format23 = "MM"; if (input23.Contains("XXXX-") & !input23.Contains("XXXX-W")) { input23 = input23.Replace("XXXX-", ""); } if (DateTime.TryParseExact(input23, format23, CultureInfo.InvariantCulture, DateTimeStyles.None, out parsed)) { parsedString = parsed.ToString(); // parsedString = parsedString.Replace(" 12:00:00 AM", ""); await turnContext.SendActivityAsync($"Parsed 23: {parsedString} \n"); await turnContext.SendActivityAsync($"Input: {input23} Format: {format23} \n"); } else { await turnContext.SendActivityAsync($"FAILED 23: Input: {input23} Format: {format23} \n"); } var input24 = "XXXX-03"; var format24 = "MM"; if (input24.Contains("XXXX-") & !input24.Contains("XXXX-W")) { input24 = input24.Replace("XXXX-", ""); } var formattedDateMonthOnly = MonthByStringNumber(input24); await turnContext.SendActivityAsync($"Parsed 24: through Methods and Formatted: {formattedDateMonthOnly} \n"); var input25 = "XXXX-XX-15"; //var format25 = "MM"; if (input25.Contains("XXXX-XX-") & !input25.Contains("XXXX-W")) { input25 = input25.Replace("XXXX-XX-", ""); } var formattedDayNumber = DayNumberByStringNumber(input25); //InvariantCulture var createdDateTimeString = DateTime.Now.ToString("yyyy-MM-", new CultureInfo("en-US")); //CreatedDateTimeString = DateTime.Now.ToString("MMM d h:mm tt", new CultureInfo("en-US")), // CreatedDateTime = DateTimeOffset.UtcNow, await turnContext.SendActivityAsync($"Parsed 25: through Methods and Formatted: {formattedDayNumber} \n"); await turnContext.SendActivityAsync($"Parsed 25b: through Methods and Formatted: {createdDateTimeString} \n"); var combinedDateString = createdDateTimeString + formattedDayNumber; await turnContext.SendActivityAsync($"Parsed 25c: through Methods and Formatted: {combinedDateString} \n"); /////////////////////////// /// var input26 = "XXXX-03-15T17:30"; //InvariantCulture var createdDateTimeString26 = DateTime.Now.ToString("yyyy-", new CultureInfo("en-US")); if (input26.Contains("XXXX-") & !input26.Contains("XXXX-XX-") & !input26.Contains("XXXX-W")) { input26 = input26.Replace("XXXX-", createdDateTimeString26); } //Format-26 var dateAndDateTimeClassTheDatePostFormatted26 = FormattingHoursWithOrWithoutMinutes(input26); var formattedTime26 = FormatDateTimeBasedOnTHmm(dateAndDateTimeClassTheDatePostFormatted26); await turnContext.SendActivityAsync($"Entities Through Methods and Formatted: 2. {formattedTime26}\n"); // await turnContext.SendActivityAsync($"Parsed 25c: through Methods and Formatted: {combinedDateString} \n"); //if (DateTime.TryParseExact(input24, format24, CultureInfo.InvariantCulture, DateTimeStyles.None, out parsed)) //{ // parsedString = parsed.ToString(); // // parsedString = parsedString.Replace(" 12:00:00 AM", ""); // await turnContext.SendActivityAsync($"Parsed 24: {parsedString} \n"); // await turnContext.SendActivityAsync($"Input: {input24} Format: {format24} \n"); //} //else //{ // await turnContext.SendActivityAsync($"FAILED 24: Input: {input24} Format: {format24} \n"); //} ///////////////////////////////////////////////////////////// var inputSystematic = "2018-10-28T14"; var formatSystematic = "yyyy-MM-ddTH:mm"; if (!inputSystematic.Contains(":")) { inputSystematic = inputSystematic + ":00"; } if (DateTime.TryParseExact(inputSystematic, formatSystematic, CultureInfo.InvariantCulture, DateTimeStyles.None, out parsed)) { parsedString = parsed.ToString(); await turnContext.SendActivityAsync($"Parsed Systematic: {parsedString} \n"); await turnContext.SendActivityAsync($"Input Systematic: {inputSystematic} Format: {formatSystematic} \n"); } else { await turnContext.SendActivityAsync($"FAILED Systematic: Input: {inputSystematic} Format: {formatSystematic} \n"); } ///////////////////////////// /// var dayOfWeek = "XXXX-WXX-7"; if (dayOfWeek.Contains("XXXX-WXX-")) { dayOfWeek = dayOfWeek.Replace("XXXX-WXX-", ""); //var newItem = dayOfWeek; } await turnContext.SendActivityAsync($"Day of week via XXXX-WXX- : {dayOfWeek} \n"); var dayOfWeekPlusHours = " XXXX-WXX-7T17"; string justTheHours = ""; if (dayOfWeekPlusHours.Contains("T")) { if (!dayOfWeekPlusHours.Contains(":")) { dayOfWeekPlusHours = dayOfWeekPlusHours + ":00"; } //count number of characters //count position of T //grab after T to final var lengthOfString = dayOfWeekPlusHours.Length; var positionOfT = dayOfWeekPlusHours.LastIndexOf("T"); justTheHours = dayOfWeekPlusHours.Substring(positionOfT, lengthOfString - positionOfT); dayOfWeekPlusHours = dayOfWeekPlusHours.Replace(justTheHours, ""); } if (dayOfWeekPlusHours.Contains("XXXX-WXX-")) { dayOfWeekPlusHours = dayOfWeekPlusHours.Replace("XXXX-WXX-", ""); //var newItem = dayOfWeek; } string nameDayOfWeekPlusHourPostFormat = DayOfWeekByStringNumber(dayOfWeek); await turnContext.SendActivityAsync($"Entities DayOfWeekPlusHours. {nameDayOfWeekPlusHourPostFormat}\n"); //////////////////////////////////////////////////////////////////// var formatDayOfWeekPlusHoursTheHours = "TH:mm"; DateTime parsedFormatDayOfWeekPlusHoursTheHours; string parsedStringFormatDayOfWeekPlusHoursTheHours; if (DateTime.TryParseExact(justTheHours, formatDayOfWeekPlusHoursTheHours, CultureInfo.InvariantCulture, DateTimeStyles.None, out parsedFormatDayOfWeekPlusHoursTheHours)) { parsedStringFormatDayOfWeekPlusHoursTheHours = parsed.ToString(); //return parsedStringFormatDayOfWeekPlusHoursTheHours; await turnContext.SendActivityAsync($"Entities DayOfWeekPlusHours: {parsedStringFormatDayOfWeekPlusHoursTheHours}\n"); } //Unformatted await turnContext.SendActivityAsync($"Entities: {dateAndDateTimeClassTheDate} and {dateAndDateTimeClassTheDateTime} \n"); //Format-1 string nameDayOfWeekPostFormat = DayOfWeekByStringNumber(dateAndDateTimeClassTheDate); await turnContext.SendActivityAsync($"Entities Through Methods and Formatted: 1. {nameDayOfWeekPostFormat}\n"); //Format-2 var dateAndDateTimeClassTheDatePostFormatted = FormattingHoursWithOrWithoutMinutes(dateAndDateTimeClassTheDateTime); var formattedTime = FormatDateTimeBasedOnTHmm(dateAndDateTimeClassTheDatePostFormatted); await turnContext.SendActivityAsync($"Entities Through Methods and Formatted: 2. {formattedTime}\n"); //Format-3 var formattedDate = FormatDateTimeBasedOnYMD(dateAndDateTimeClassTheDateTime); await turnContext.SendActivityAsync($"Entities Through Methods and Formatted: 3. {formattedDate}\n"); //Format-4 var formattedDateTryParse = FormatDateTimeTryParse(dateAndDateTimeClassTheDateTime); await turnContext.SendActivityAsync($"Entities Through Methods and Formatted: 4. {formattedDateTryParse}\n"); //Format-5 var formattedDateWithoutYear = FormatDateTimeWithoutYear(dateAndDateTimeClassTheDateTime); await turnContext.SendActivityAsync($"Entities Through Methods and Formatted: 5. {formattedDateWithoutYear} \n"); //Formatted await turnContext.SendActivityAsync($"Entities Through Methods and Formatted: 1. {nameDayOfWeekPostFormat} and 2. {formattedTime} and 3. {formattedDate} and 4. {formattedDateTryParse}\n"); //string nameDayOfWeek = DayOfWeekByStringNumber(dayOfWeek); //await turnContext.SendActivityAsync($"Entity formatted by XXXX-WXX- from 'dateAndDateTimeClassTheDate': {nameDayOfWeek} \n"); //await turnContext.SendActivityAsync($"Entities: {dateAndDateTimeClassTheDate} and {dateAndDateTimeClassTheDateTime} \n"); } else { var msg = @"No LUIS intents were found. This sample is about identifying two user intents: 'Calendar.Add' 'Calendar.Find' Try typing 'Add Event' or 'Show me tomorrow'."; await turnContext.SendActivityAsync(msg); } } else if (turnContext.Activity.Type == ActivityTypes.ConversationUpdate) { // Send a welcome message to the user and tell them what actions they may perform to use this bot await SendWelcomeMessageAsync(turnContext, cancellationToken); } else { await turnContext.SendActivityAsync($"{turnContext.Activity.Type} event detected", cancellationToken : cancellationToken); } }