public ChatBot(IFactory injector) { _chatContextHolder = new ChatContextHolder(injector) .ListenTo<DeployCoreContext>() .ListenTo<JenkinsMonitorContext>() .ListenTo<GreetingsContext>() .ListenTo<JenkinsStatusContext>() .ListenTo<SetVolumeContext>() .ListenTo<GetServerVersionContext>() .ListenTo<MonitorServerVersionChanges>() .ListenTo<GetSettingsContext>() .ListenTo<SetSettingsContext>() .ListenTo<SetIoContext>() .ListenTo<SaySomethingContext>() .ListenTo<SayContext>() .ListenTo<HelpContext>() .ListenTo<AboutContext>() .ListenTo<RunJenkinsMonitorOnBotChatContext>() .ListenTo<TellMeAJokeContext>() .ListenTo<TellMeAInsultContext>() .ListenTo<TellMeAQuotesContext>() .ListenTo<FailedToRespondContext>() .ListenTo<RandomJokeResponse>(); }
public Task Respond(ChatContextHolder chatContextHolder, IMessageContext context) { return Task.Run(() => { foreach (LightPin pin in _lights) { pin.Set(context.Text, _pinManager); } LightPin[] allOn = _lights.Where(x => x.ContainsSection(context.Text) && x.IsOn(context.Text)).ToArray(); if (!allOn.Select(x => x.Color).Any()) { context.Respond(string.Format("{0} lights are now off", _lights.Where(x => x.ContainsSection(context.Text)) .Select(x => x.Section) .Distinct() .StringJoin())); } else { context.Respond(string.Format("{0} {1} lights are now on", allOn.Select(x => x.Section).Distinct().StringJoin(), allOn.Select(x => x.Color).Distinct().StringJoin())); } }); }
public Task Respond(ChatContextHolder chatContextHolder, IMessageContext context) { var volumeLevel = ValueConverterHelper.ToInt(ExtractStartsWith(context, "set volume"),10); var result = string.Format("volume set to {0}", volumeLevel); _textToSpeech.Play(result); _volumeSetter.SetVolume(volumeLevel); return context.Respond(result); }
public async Task Respond(ChatContextHolder chatContextHolder, IMessageContext context) { var oneLiner = RandomTextHelper.OneLiner.Split('.'); foreach (var message in oneLiner) { await context.Respond(message); await Task.Delay(5000); } }
protected override async Task Response(ChatContextHolder chatContextHolder, IMessageContext context, Server server) { if (string.IsNullOrEmpty(server.Name)) { await context.Respond(string.Format("Scanning servers.")); } else { await context.Respond(string.Format("Scanning {0} servers.", server.Name)); } Task.Run(async () => { await RunOnBackground(context, server); }).FireAndForgetWithLogging(); }
public async Task Respond(ChatContextHolder chatContextHolder, IMessageContext context) { await _monitorJenkins.Check(); }