
using System.Collections.Generic;

internal sealed class SubscribableEvent
{

    private readonly string name;
    private readonly int value;

    public static readonly SubscribableEvent ScanBatchDialogShow = new SubscribableEvent(1, "ScanBatchDialogShow");
    public static readonly SubscribableEvent ScanBeforeSaveDlg = new SubscribableEvent(2, "ScanBeforeSaveDlg");
    public static readonly SubscribableEvent ScanNotifyUser = new SubscribableEvent(3, "ScanNotifyUser");
    public static readonly SubscribableEvent FormScanEnd = new SubscribableEvent(4, "FormScanEnd");
    public static readonly SubscribableEvent AppError = new SubscribableEvent(5, "AppError");
    public static readonly SubscribableEvent JobStarted = new SubscribableEvent(6, "JobStarted");
    public static readonly SubscribableEvent JobStopped = new SubscribableEvent(7, "JobStopped");

    public static readonly ISet<SubscribableEvent> SupportedEvents = new HashSet<SubscribableEvent>() { ScanBatchDialogShow, ScanBeforeSaveDlg, ScanNotifyUser, FormScanEnd, AppError, JobStarted, JobStopped };

    private SubscribableEvent(int value, string name)
    {
        this.name = name;
        this.value = value;
    }

    public override string ToString()
    {
        return name;
    }

}

public sealed class ReturnValue
{
    public const string Stop = "Stop";
    public const string Cont = "Cont";
    public const string Delete = "Delete";
    public const string New = "New";
    public const string Blank = "";

}
