using Quadarax.Foundation.Core.Attributes;
using Quadarax.Foundation.Core.Exceptions;

namespace qdr.fnd.core.pqueue.Exceptions
{
    public class PSQueueException: CodeException<PSQueueException.ErrorCodes>
    {

        #region *** Error Codes ***

        public enum ErrorCodes : int
        {
            [ErrorMessage("Cannot start, queue is already running.")]
            PsQueueIsRunning = 5000,
            [ErrorMessage("Cannot stop, queue is not running.")]
            PsQueueIsNotRunning = 5001,
        }
        #endregion

        #region *** Constructors ***

        /// <inheritdoc />
        public PSQueueException(ErrorCodes code, Exception innerException) : base(code, innerException)
        {
        }

        /// <inheritdoc />
        public PSQueueException(ErrorCodes code) : base(code)
        {
        }

        /// <inheritdoc />
        public PSQueueException(ErrorCodes code, params object[] messageArguments) : base(code, messageArguments)
        {
        }

        /// <inheritdoc />
        public PSQueueException(ErrorCodes code, Exception innerException, params object[] messageArguments) : base(code, innerException, messageArguments)
        {
        }
        #endregion
    }
}
