Пример #1
0
        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);
            }
        }
Пример #2
0
        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);
        }
Пример #3
0
        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);
            }
        }