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); } }