31 lines
865 B
C#
31 lines
865 B
C#
using Hcs.WebApp.Data.Hcs;
|
|
|
|
namespace Hcs.WebApp.BackgroundServices.CampaignManagers
|
|
{
|
|
public interface IManager
|
|
{
|
|
public delegate void CampaignStarted(int campaignId, DateTime startedAt);
|
|
public delegate void CampaignProgressStep(int campaignId, int step, int progress);
|
|
public delegate void CampaignEnded(int campaignId, Campaign.CampaignType type, DateTime endedAt, string failureReason);
|
|
|
|
public enum ManagerState
|
|
{
|
|
Created,
|
|
Started,
|
|
Ended
|
|
}
|
|
|
|
public Campaign Campaign { get; }
|
|
|
|
public ManagerState State { get; }
|
|
|
|
event CampaignStarted OnCampaignStarted;
|
|
event CampaignProgressStep OnCampaignProgressStep;
|
|
event CampaignEnded OnCampaignEnded;
|
|
|
|
Task ProcessAsync();
|
|
|
|
Task EndWithFailAsync(Exception e);
|
|
}
|
|
}
|