示例#1
0
        public async Task AvailableLeave(IDialogContext context, LuisResult result)
        {
            try
            {
                var repo  = new LeaveRepository();
                var leave = await repo.LeaveAsync(context.Activity.From.Id, context.Activity.ChannelId);


                var message = "You have {0} days of {1} available.";

                switch (result.GetResolvedListEntity("LeaveType"))
                {
                case "SickLeave":
                    var availableSickLeave = leave.TotalSickLeave - leave.AvailedSickLeave;
                    message = "You have " + availableSickLeave + " days of sick leaves available ";
                    break;

                case "AnnualLeave":
                    message = string.Format(message, (leave.TotalAnnualLeave - leave.AvailedAnnualLeave),
                                            "annual leaves");
                    break;

                case "CasualLeave":
                    message = string.Format(message, (leave.TotalCasualLeave - leave.AvailedCasualLeave),
                                            "casual leave");
                    break;

                default:
                    var totalAvailableLeave =
                        (leave.TotalSickLeave + leave.TotalAnnualLeave + leave.TotalCasualLeave) -
                        (leave.AvailedSickLeave + leave.AvailedAnnualLeave + leave.AvailedCasualLeave);
                    message = string.Format(message, totalAvailableLeave, "total leaves");
                    break;
                }

                // message += result.GetResolvedListEntity("LeaveType");

                await context.PostAsync(message);

                context.Wait(this.MessageReceived);
            }
            catch (AuthenticationException)
            {
                await context.PostAsync(
                    "You need to verify yourself before I can provide you this information. Please write verify to start the procecss");

                context.Wait(MessageReceived);
            }
            catch (PlatformNotSupportedException)
            {
                await context.PostAsync("This chat platform is not yet supported. Please use Facebook or skype");

                context.Wait(MessageReceived);
            }
        }