public CommandService(CommandParser commandParser, NotificationService notificationService, BuildFacade buildFacade, ILogger <CommandService> logger) { this.commandParser = commandParser; this.notificationService = notificationService; this.buildFacade = buildFacade; this.logger = logger; }
private async Task CreateBuildAsync(BuildFacade buildFacade, NotificationService notificationService, ITurnContext <IMessageActivity> turnContext, CancellationToken cancellationToken, string buildName) { var build = await buildFacade.CreateBuildAsync(buildName); await notificationService.AddNotificationAsync(build.Id, conversationId, ShouldWatch?WatchLevel.Stage : WatchLevel.Build); await notificationService.SendReplyAsync($"Created build {build}", turnContext, cancellationToken); }
public MetricsService(BuildDbContext buildDb, BuildFacade buildFacade, ILogger <MetricsService> logger) { this.buildDb = buildDb; this.logger = logger; buildFacade.BuildCreatedEvent += OnBuildCreated; buildFacade.StageUpdateEvent += OnStageUpdate; buildFacade.BuildUpdateEvent += OnBuildUpdate; }
protected override async Task ExecuteInternalAsync(BuildFacade buildFacade, NotificationService notificationService, string text, string[] split, ITurnContext <IMessageActivity> turnContext, CancellationToken cancellationToken) { var card = notificationService.CreateCard( new AdaptiveTextBlock($"Builds in queue: {buildFacade.QueuedBuilds.Count}"), new ListBuilder(buildFacade.QueuedBuilds.Select(b => $"[{(DateTime.Now - b.QueueTime).ToDuration()}] {b}")) ); await notificationService.SendCardAsync(card, turnContext); }
public NotificationService(NotificationDbContext notificationDb, BuildFacade buildFacade, IConfiguration configuration, ILogger <NotificationService> logger) { this.notificationDb = notificationDb; this.logger = logger; appId = configuration.GetValue <string>("MicrosoftAppId"); appPassword = configuration.GetValue <string>("MicrosoftAppPassword"); buildFacade.StageUpdateEvent += OnStageUpdate; buildFacade.BuildUpdateEvent += OnBuildUpdate; }
protected override async Task ExecuteInternalAsync(BuildFacade buildFacade, NotificationService notificationService, string text, string[] split, ITurnContext <IMessageActivity> turnContext, CancellationToken cancellationToken) { conversationId = turnContext.Activity.Conversation.Id; var buildName = split[1]; for (int i = 0; i < BuildCount; i++) { await CreateBuildAsync(buildFacade, notificationService, turnContext, cancellationToken, buildName); } }
public async Task ExecuteAsync(BuildFacade buildFacade, NotificationService notificationService, string text, ITurnContext <IMessageActivity> turnContext, CancellationToken cancellationToken) { var split = text.Split(); //var (isValid, errorMessage) = Validate(text, split, turnContext); await ExecuteInternalAsync(buildFacade, notificationService, text, split, turnContext, cancellationToken); //if(isValid) //{ // await ExecuteInternalAsync(buildFacade, text, split, turnContext, cancellationToken); //} //else //{ // await SendMessageAsync(errorMessage, turnContext, cancellationToken); //} }
protected void Application_End(object sender, EventArgs e) { BuilderServiceSetting.SystemStatus = SystemStatusEnum.Stopping; BuildFacade facade = new BuildFacade(); //关闭订阅通道 facade.CloseRabbitMQBus(); Thread.Sleep(2); DateTime now = DateTime.Now; Process.Info("消息生成中心", "BeginFlushPool", string.Format("开始时间:{0}", now), "FlushPool"); facade.FlushPool(); Thread.Sleep(2); Process.Info("消息生成中心", "BeginFlushPool", string.Format("结束时间:{0},耗时:{1}", DateTime.Now, (DateTime.Now - now).TotalMilliseconds), "FlushPool"); BuilderServiceSetting.SystemStatus = SystemStatusEnum.Stopped; }
protected override async Task ExecuteInternalAsync(BuildFacade buildFacade, NotificationService notificationService, string text, string[] split, ITurnContext <IMessageActivity> turnContext, CancellationToken cancellationToken) { // TODO: Don't duplicate. var command = Parser.Default.ParseArguments <StartBuildCommand, ShowBuildQueueCommand, HelpCommand, ShowAgentsCommand>(new List <string> { "help" }); var helpText = HelpText.AutoBuild(command, h => { h.Heading = "Infrax bot command help."; h.Copyright = string.Empty; h.AutoHelp = false; h.AddDashesToOption = true; return(h); }, e => e, true); var helpString = helpText.ToString(); var card = notificationService.CreateCard(new AdaptiveTextBlock(helpString)); await notificationService.SendCardAsync(card, turnContext); }
protected abstract Task ExecuteInternalAsync(BuildFacade buildFacade, NotificationService notificationService, string text, string[] split, ITurnContext <IMessageActivity> turnContext, CancellationToken cancellationToken);
protected override async Task ExecuteInternalAsync(BuildFacade buildFacade, NotificationService notificationService, string text, string[] split, ITurnContext <IMessageActivity> turnContext, CancellationToken cancellationToken) { var card = notificationService.CreateCard( new AdaptiveTextBlock($"{buildFacade.Agents.Count(a => !a.IsIdle)}/{buildFacade.Agents.Count} agents are executing."), new ListBuilder(buildFacade.Agents.Select(a => $"{a.Name} is {(a.IsIdle ? "idle" : $"executing {a.ActiveBuild}")}")));
public void TestBuildFacade() { BuildFacade buFad = new BuildFacade(); buFad.Build(); }