private async Task ShowHolidays(IDialogContext context, IAwaitable <object> result) { try { List <Holiday> holidays = _holidayService.GetHolidays(false, _dateRange); await context.PostAsync($"There are a total of {holidays.Count} holidays"); var resultMessage = context.MakeMessage(); resultMessage.AttachmentLayout = AttachmentLayoutTypes.Carousel; resultMessage.Attachments = new List <Attachment>(); resultMessage.Attachments = AdaptiveCardJsonManager.CreateCards(holidays).ToList(); await context.PostAsync(resultMessage); } catch (FormCanceledException ex) { string reply; if (ex.InnerException == null) { reply = "You have canceled the operation."; } else { reply = $"Oops! Something went wrong :( Technical Details: {ex.InnerException.Message}"; } await context.PostAsync(reply); } finally { context.Done <object>(null); } }
private async Task BuildAdaptiveCard(IDialogContext context, LuisResult result, Dictionary <DateTime?, string> holidayData, string holidayOrLeave) { var message = ""; if (holidayData.Count() == 0 && holidayOrLeave == "flexible holidays") { message = "You have not applied for any flexible holiday"; if (periodEnteredByUser) { message += " for this period"; periodEnteredByUser = false; } } else if (holidayData.Count() == 0 && holidayOrLeave == "leaves") { message = "You have not applied for any leaves"; if (periodEnteredByUser) { message += " for this period"; periodEnteredByUser = false; } } else { message = $"I found in total {holidayData.Count()} " + holidayOrLeave + " as per your request : "; } await context.PostAsync(message); var resultMessage = context.MakeMessage(); resultMessage.AttachmentLayout = AttachmentLayoutTypes.Carousel; resultMessage.Attachments = new List <Attachment>(); resultMessage.Attachments = AdaptiveCardJsonManager.CreateHolidayCards(holidayData).ToList(); await context.PostAsync(resultMessage); }
private async Task ShowSubmittedRequests(IDialogContext context, IAwaitable <object> result) { try { var username = UserService.GetUsername(context); switch (_showRequest) { case ShowRequest.Flexible: { var flexibleHolidays = await flexibleHolidayService.GetOptedInHolidays(username, _dateRange); await context.PostAsync($"There are a total of {flexibleHolidays.Count} OptedIn Flexible Holidays"); var resultMessage = context.MakeMessage(); resultMessage.AttachmentLayout = AttachmentLayoutTypes.Carousel; resultMessage.Attachments = new List <Attachment>(); resultMessage.Attachments = AdaptiveCardJsonManager.CreateCards(flexibleHolidays).ToList(); if (resultMessage.Attachments.Any()) { await context.PostAsync(resultMessage); } break; } case ShowRequest.Leave: { var leaves = await leaveService.GetLeaveAsync(username, _dateRange); await context.PostAsync($"There are a total of {leaves.Count} Leaves"); var resultMessage = context.MakeMessage(); resultMessage.AttachmentLayout = AttachmentLayoutTypes.Carousel; resultMessage.Attachments = new List <Attachment>(); resultMessage.Attachments = AdaptiveCardJsonManager.CreateCards(leaves).ToList(); if (resultMessage.Attachments.Any()) { await context.PostAsync(resultMessage); } break; } case ShowRequest.All: { var flexibleHolidays = await flexibleHolidayService.GetOptedInHolidays(username, _dateRange); await context.PostAsync($"There are a total of {flexibleHolidays.Count} OptedIn Flexible Holidays"); var resultFlexibleHolidayMessage = context.MakeMessage(); resultFlexibleHolidayMessage.AttachmentLayout = AttachmentLayoutTypes.Carousel; resultFlexibleHolidayMessage.Attachments = new List <Attachment>(); resultFlexibleHolidayMessage.Attachments = AdaptiveCardJsonManager.CreateCards(flexibleHolidays).ToList(); if (resultFlexibleHolidayMessage.Attachments.Any()) { await context.PostAsync(resultFlexibleHolidayMessage); } await context.PostAsync(resultFlexibleHolidayMessage); var leaves = await leaveService.GetLeaveAsync(username, _dateRange); await context.PostAsync($"There are a total of {leaves.Count} Leaves"); var resultMessage = context.MakeMessage(); resultMessage.AttachmentLayout = AttachmentLayoutTypes.Carousel; resultMessage.Attachments = new List <Attachment>(); resultMessage.Attachments = AdaptiveCardJsonManager.CreateCards(leaves).ToList(); if (resultMessage.Attachments.Any()) { await context.PostAsync(resultMessage); } break; } } } catch (Exception ex) { string reply; if (ex.InnerException == null) { reply = "There was some error. Please try again later"; } else { reply = $"Oops! Something went wrong :( Technical Details: {ex.InnerException.Message}"; } await context.PostAsync(reply); } finally { context.Done <object>(null); } }