public async Task Get() { var batons = service.GetQueues().GetAwaiter().GetResult(); foreach (var baton in batons) { var queue = baton.Object.Queue; if (queue.Count > 0) { var batonHolder = queue.FirstOrDefault(); var hoursAgo = DateTime.Now.AddHours(timerCheckAllowance * -1); if (batonHolder.DateReceived < hoursAgo) { if (batonHolder.Conversation != null) { await((BotAdapter)adapter).ContinueConversationAsync(appId, batonHolder.Conversation, async(context, token) => { await context.SendActivityAsync($"Hey! whatcha got there? Is it? Oh it is the {baton.Object.Name} baton"); }, default(CancellationToken)); } } } } }
public async Task Handler(string type, string comment, int pullRequest, ITurnContext <IMessageActivity> turnContext, CancellationToken cancellationToken) { var batons = await service.GetQueues(); var batonFireObject = batons?.FirstOrDefault(x => x.Object.Name.Equals(type)); var conversationReference = turnContext.Activity.GetConversationReference(); var name = turnContext.Activity.From.Name.Replace(" | Redington", "").Replace(" | Godel", ""); if (batonFireObject == null) { var baton = new BatonQueue(type); baton.Queue.Enqueue(new BatonRequest() { UserName = name, UserId = conversationReference.User.Id, DateRequested = DateTime.Now.ToLocalTime(), DateReceived = DateTime.Now.ToLocalTime(), Conversation = conversationReference, BatonName = type, Comment = comment, PullRequestNumber = pullRequest }); service.SaveQueue(baton); SendItsAllYours(turnContext, cancellationToken); } else { if (batonFireObject.Object.Queue.Count == 0) { var baton = new BatonRequest() { UserName = name, UserId = conversationReference.User.Id, BatonName = type, DateRequested = DateTime.Now, DateReceived = DateTime.Now, Conversation = conversationReference, Comment = comment, PullRequestNumber = pullRequest }; batonFireObject.Object.Queue.Enqueue(baton); await service.UpdateQueue(batonFireObject); this.SendItsAllYours(turnContext, cancellationToken); await this.releaseService.GotBaton(baton, string.Empty, false, turnContext, cancellationToken); } else { batonFireObject.Object.Queue.Enqueue(new BatonRequest() { UserName = name, UserId = conversationReference.User.Id, BatonName = type, DateRequested = DateTime.Now, Conversation = conversationReference, Comment = comment, PullRequestNumber = pullRequest }); await service.UpdateQueue(batonFireObject); await this.SendAddedToTheQueue(turnContext, cancellationToken); //TODO - just use the queue you have await showBatonService.SendBatons(turnContext, cancellationToken); } } }