using Edge.Core.Parser.BinaryParser;
using Edge.Core.Parser.BinaryParser.MessageEntity;
using Edge.Core.Parser.BinaryParser.Util;
using ShellChina_EPS_Project_CarPlatePay_EpsClient_App.MessageEntity;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ShellChina_EPS_Project_CarPlatePay_EpsClient_App
{
    public class Parser : ParserBase
    {
        public Parser() : base(new MessageTemplateLookup())
        {
        }

        public override byte[] Serialize(MessageTemplateBase message)
        {
            var raw = base.Serialize(message);
            return (raw.Length).GetBinBytes(2).Concat(raw).ToArray();
        }

        public override MessageTemplateBase Deserialize(byte[] rawData)
        {
            //if (rawData.Length > 4)
            //{
            // exclude last 4 byte which are (2 bytes CRC + 1 byte EOT + 1byte 0xFA)
            return base.Deserialize(rawData.Skip(2).ToArray());
            //}
            //else
            //{
            //    // exclude last 1 byte of 0xFA
            //    return base.Deserialize(rawData.Take(rawData.Length - 1).ToArray());
            //}
        }
    }
}