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.Incoming;
using System.Linq;

namespace ShellChina_EPS_Project_CarPlatePay_EpsClient_App.MessageEntity
{
    /// <summary>
    /// </summary>
    public class MessageTemplateLookup : IMessageTemplateLookup
    {
        /// <summary>
        /// 
        /// </summary>
        /// <param name="bytes"></param>
        /// <returns></returns>
        public MessageTemplateBase GetMessageTemplateByRawBytes(byte[] bytes)
        {
            int identity = bytes.Skip(15).Take(3).GetBCD();
            if (identity == 020031)
            {
                return new MembershipInquiryResponse();
            }
            else if (identity == 020032)
            {
                return new PaymentResponse();
            }

            throw new System.InvalidOperationException("message with identity: " + identity + " is not known.");
        }
    }
}