Пример #1
0
        private async Task <ExecutionResult <string> > ExecuteWithNoArgumentsAsync(Activity activity, CultureInfo clientCulture)
        {
            Logger.LogInformation("No arguments provided");

            ScheduledMessageEvent nextEvent =
                await UnitOfWork.ScheduledMessageEvents.GetNextMessageEventAsync(activity.Conversation.Id);

            ExecutionResult <string> executionResult = nextEvent != null
                                ? ExecuteWithMessageAndCount(nextEvent.ScheduledMessage, defaultMessageCount, clientCulture)
                                : GetNoScheduledMessagesResult();

            return(executionResult);
        }
Пример #2
0
        private ExecutionResult <string> ExecuteWithMessage(ScheduledMessage message, CultureInfo clientCulture)
        {
            Logger.LogInformation("Executing with message id '{0}' default message count", message.Id);

            ScheduledMessageEvent nextEvent = message
                                              .Events
                                              .Where(@event => @event.State == ScheduledMessageEventState.Pending)
                                              .OrderBy(@event => @event.NextOccurrence)
                                              .FirstOrDefault();
            ExecutionResult <string> executionResult = nextEvent != null
                                ? ExecuteWithMessageAndCount(nextEvent.ScheduledMessage, defaultMessageCount, clientCulture)
                                : GetNoScheduledMessagesResult();

            return(executionResult);
        }
Пример #3
0
        private async Task <ScheduledMessage> CreateScheduledMessageAsync(Activity activity, string text, ISchedule schedule)
        {
            ScheduledMessageEvent   scheduledMessageEvent   = CreateMessageEvent(schedule);
            ScheduledMessageDetails scheduledMessageDetails = await CreateMessageDetailsAsync(activity);

            return(new ScheduledMessage
            {
                Text = text,
                Schedule = schedule.Text,
                State = ScheduledMessageState.Active,
                Details = scheduledMessageDetails,
                Events = new List <ScheduledMessageEvent>
                {
                    scheduledMessageEvent
                }
            });
        }