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); } }); }