public PrismaDataConverter(Settings terminalSettings, String mappingFileName) : base(terminalSettings) { // загружаем параметры сопоставления событий кассовой системы // пакету данных системы видеонаблюдения _space = GenericSerializer.Deserialize<MappingSpace>(mappingFileName); // создаем словарь с пользовательской логикой сопоставления // для полей пакета данных системы видеонаблюдения _customLogicByPacketField = new Dictionary<CustomLogicByPacketFieldKey, Func<EventData, SystemEvent, PacketField, String>>(); _customLogicByPacketField.Add( new CustomLogicByPacketFieldKey(0, "Префикс объекта"), (e, m, f) => "KKM"); _customLogicByPacketField.Add( new CustomLogicByPacketFieldKey(0, "Номер ККМ"), (e, m, f) => TerminalSettings.Common.CashNo.ToField(f.DataSize)); _customLogicByPacketField.Add( new CustomLogicByPacketFieldKey(0, "Код события"), (e, m, f) => m.ExternalId.ToField(f.DataSize)); _customLogicByPacketField.Add( new CustomLogicByPacketFieldKey(0, "Номер чека"), (e, m, f) => e.ToReceiptField().ToField(f.DataSize)); _customLogicByPacketField.Add( new CustomLogicByPacketFieldKey(0, "День"), (e, m, f) => DateTime.Today.ToString("dd").ToField(f.DataSize)); _customLogicByPacketField.Add( new CustomLogicByPacketFieldKey(0, "Месяц"), (e, m, f) => DateTime.Today.ToString("MM").ToField(f.DataSize)); _customLogicByPacketField.Add( new CustomLogicByPacketFieldKey(0, "Год"), (e, m, f) => DateTime.Today.ToString("yy").ToField(f.DataSize)); _customLogicByPacketField.Add( new CustomLogicByPacketFieldKey(0, "Милисекунды"), (e, m, f) => DateTime.Now.ToString("fff").ToField(f.DataSize)); _customLogicByPacketField.Add( new CustomLogicByPacketFieldKey(0, "Секунды"), (e, m, f) => DateTime.Now.ToString("ss").ToField(f.DataSize)); _customLogicByPacketField.Add( new CustomLogicByPacketFieldKey(0, "Минуты"), (e, m, f) => DateTime.Now.ToString("mm").ToField(f.DataSize)); _customLogicByPacketField.Add( new CustomLogicByPacketFieldKey(0, "Часы"), (e, m, f) => DateTime.Now.ToString("HH").ToField(f.DataSize)); _customLogicByPacketField.Add( new CustomLogicByPacketFieldKey(26, "Сумма чека"), (e, m, f) => e.ToAmountField().ToField(f.DataSize)); Func<EventData, SystemEvent, PacketField, String> getOriginalReceipt = (e, m, f) => e.ToOriginalReceiptField().ToField(f.DataSize); _customLogicByPacketField.Add( new CustomLogicByPacketFieldKey(53, "Номер чека"), getOriginalReceipt); _customLogicByPacketField.Add( new CustomLogicByPacketFieldKey(55, "Номер чека"), getOriginalReceipt); }
public void LoadSpace(String fileName) { _space = GenericSerializer.Deserialize<MappingSpace>(fileName, true); MapToConverter.SetFields(_space.PacketFields); _changed = false; _fileName = fileName; }
public void CreateSpace() { _space = new MappingSpace(); MapToConverter.SetFields(_space.PacketFields); _changed = false; _fileName = null; }