public static ProcessorBuilder<MessagePayload> ToMessageRepeater( this ProcessorBuilder<MessagePayload> builder, IMessageCache messageCache, ISystemTime systemTime, ITaskRepeater taskRepeater, IRepeatStrategy strategy) { var repeater = new MessageRepeater(strategy, systemTime, messageCache); taskRepeater.Register(TimeSpan.FromSeconds(1), repeater.Repeat); return builder.ToProcessor(repeater); }
public void Repeat(MessageRepeater repeater, IMessageCache messageCache, ISystemTime systemTime) { IEnumerable<MessagePayload> messages = messageCache.GetOrderedMessages(); messages.ForEach(m => { if (m.GetAmountSent() > 0 && m.GetLastTimeSent() <= systemTime.GetCurrentDate().Add(-RepeatEvery)) { LogMessage(m); repeater.InputMessage(m); } }); }
public void Repeat(MessageRepeater repeater, IMessageCache messageCache, ISystemTime systemTime) { }