using Edge.Core.Parser.BinaryParser.MessageEntity;
using Org.BouncyCastle.Asn1.Ocsp;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace HengshanPaymentTerminal.MessageEntity.Outgoing
{
///
/// 发送授权请求给油机数据对象
///
public class SendAuthorization : CommonMessage
{
///
/// 请求授权的枪号
///
public int NozzleNum { get; set; }
///
/// 请求授权时间
///
private DateTime AuthorizationTime { get; set; }
///
/// 授权类型:01:定金额,02:定升数
///
private int AuthorizationType { get; set; }
///
/// 定值量
///
private decimal Value { get; set; }
public SendAuthorization(int nozzleNum, DateTime authorizationTime, int authorizationType, decimal value,byte frame)
{
this.Handle = (byte)Command.ACCREDIT;
NozzleNum = nozzleNum;
AuthorizationTime = authorizationTime;
AuthorizationType = authorizationType;
Value = value;
this.FrameNum = frame;
}
public override byte[] ToCommonByteArray()
{
List list = new List();
byte[] commandAndNozzle = { this.Handle, (byte)this.NozzleNum };
byte[] authorizationTimeBytes = ConvertDateTimeToByteArray(this.AuthorizationTime);
//将小数点后移两位,因为油机只支持两位小数点,这边传过去的3位字节转为int后取后两位为十分位和百分位
int value = (int)this.Value * 100;
byte[] valueBytes = NumberToByteArrayWithPadding(value, 3);
list.AddRange(commandAndNozzle);
list.AddRange(authorizationTimeBytes);
list.Add((byte)this.AuthorizationType);
list.AddRange(valueBytes);
byte[] sendBytes = content2data(list.ToArray());
return sendBytes;
}
public override CommonMessage ToObject(byte[] datas)
{
return this;
}
}
}