Files

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