-
Notifications
You must be signed in to change notification settings - Fork 24
Expand file tree
/
Copy pathDelayedMessageAction.cs
More file actions
32 lines (27 loc) · 944 Bytes
/
DelayedMessageAction.cs
File metadata and controls
32 lines (27 loc) · 944 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
using System;
using DevChatter.Bot.Core.Systems.Chat;
namespace DevChatter.Bot.Core.Automation
{
public class DelayedMessageAction : IIntervalAction
{
private readonly IChatClient _chatClient;
private DateTime _nextRunTime;
public TimeSpan DelayTimeSpan;
public DelayedMessageAction(int delayInSeconds, string message, IChatClient chatClient, string name)
{
DelayTimeSpan = TimeSpan.FromSeconds(delayInSeconds);
Message = message;
_chatClient = chatClient;
Name = name;
_nextRunTime = DateTime.Now.AddSeconds(delayInSeconds);
}
public string Name { get; }
public string Message { get; set; }
public bool IsTimeToRun() => DateTime.Now > _nextRunTime;
public void Invoke()
{
_chatClient.SendMessage(Message);
_nextRunTime = DateTime.MaxValue;
}
}
}