using System;
using System.Collections.Generic;
using Parser.BinaryParser.Util;

namespace WayneChina_IcCardReader_SinoChem.MessageEntity.Outgoing
{
    public class AbortTrxAndEjectCardRequest : IcCardReaderMessageBase
    {
        public AbortTrxAndEjectCardRequest(string info, int displayTimeout)
        {
            if (displayTimeout > 255)
                throw new ArgumentOutOfRangeException("Display timeout must be less than 255.");

            RawData = new List<byte>();
            RawData.Add(0x10);


            var infoBytes = System.Text.Encoding.GetEncoding("GBK").GetBytes(info.PadRight(32, ' '));
            if (infoBytes.Length >= 32)
            {
                for (int i = 0; i < 32; i++)
                    RawData.Add(infoBytes[i]);
            }

            RawData.AddRange(displayTimeout.GetBCDBytes(1));
        }
    }
}