using Edge.Core.IndustryStandardInterface.Pump.Fdc;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Edge.Core.IndustryStandardInterface.Pump
{
    /// <summary>
    /// Carried with the info for a pump or its nozzles state changed event.
    /// </summary>
    public class FdcPumpControllerOnStateChangeEventArg : EventArgs
    {
        public FdcPumpControllerOnStateChangeEventArg(LogicalDeviceState newPumpState)
            : this(newPumpState, null)
        {
            this.NewPumpState = newPumpState;
        }

        /// <summary>
        /// 
        /// </summary>
        /// <param name="newPumpState"></param>
        /// <param name="stateChangedNozzle"></param>
        public FdcPumpControllerOnStateChangeEventArg(LogicalDeviceState newPumpState, LogicalNozzle stateChangedNozzle)
        {
            this.NewPumpState = newPumpState;
            if (stateChangedNozzle != null)
                this.StateChangedNozzles = new LogicalNozzle[] { stateChangedNozzle };
        }

        /// <summary>
        /// 
        /// </summary>
        public LogicalDeviceState NewPumpState { get; }

        public IEnumerable<LogicalNozzle> StateChangedNozzles { get; }
    }
}
