protected override bool OnProcessMessageH2GExternal_SIM(FFTgtExecutionContext context, IFreeformEntity_MsgTgt target) { FFTgt_H2G_Ticket_Redemption_Response tgtSrc = target as FFTgt_H2G_Ticket_Redemption_Response; FF_AppId_TicketRedemption_Close_Status status = (tgtSrc.Amount > 0 ? FF_AppId_TicketRedemption_Close_Status.Success : FF_AppId_TicketRedemption_Close_Status.CouponRejectedbySystem); context.FreeformTargets.Add(TicketsHelper.RedeemTicketComplete(context.SourceMessage.IpAddress, tgtSrc.Barcode, tgtSrc.Amount, tgtSrc.Type, status)); return true; }
protected override bool OnProcessMessageG2HExternal_GMU(FFTgtExecutionContext context, IFreeformEntity_MsgTgt target) { FFTgt_G2H_Ticket_Printed_Request tgtSrc = target as FFTgt_G2H_Ticket_Printed_Request; using (TicketIDInfo idInfo = new TicketIDInfo(tgtSrc.BarCode)) { tgtSrc.SequenceNo = idInfo.SequenceNumber; } return base.OnProcessMessageG2HExternal_GMU(context, target); }
protected override bool OnProcessMessageG2HInternal_GMU(FFTgtExecutionContext context, IFreeformEntity_MsgTgt target) { FFTgt_B2B_GMUVarAction tgtDest = new FFTgt_B2B_GMUVarAction() { ActionData = new FFTgt_H2G_GVA_TPD_Response() { Date = DateTime.Now, } }; context.FreeformTargets.Add(tgtDest); return true; }
protected override bool OnProcessMessageH2GExternal_SIM(FFTgtExecutionContext context, IFreeformEntity_MsgTgt target) { string ipAddress = context.SourceMessage.IpAddress; // rsa enabled var msgRSAQuerySystem = PIDHelper.RSAQuerySystemRequest(ipAddress, false); // initiate a key exchange (ticket) var msgTicket = this.MessageHandlerFactory.SecurityTables.InitKeyExchangeStartG2H_SIM(ipAddress, FF_AppId_SessionIds.Security, this.NewTransactionId); // initiate a key exchange (eft) var msgEFT = this.MessageHandlerFactory.SecurityTables.InitKeyExchangeStartG2H_SIM(ipAddress, FF_AppId_SessionIds.ECash, this.NewTransactionId); // ticket parameter request var msgTicketParameters = TicketParametersHelper.InitTicketDataRequest(ipAddress); context.FreeformTargets.AddRange(new IFreeformEntity[] { msgRSAQuerySystem, msgTicket, msgEFT, msgTicketParameters }); return(true); }
protected override bool OnProcessMessageH2GExternal_SIM(FFTgtExecutionContext context, IFreeformEntity_MsgTgt target) { string ipAddress = context.SourceMessage.IpAddress; // rsa enabled var msgRSAQuerySystem = PIDHelper.RSAQuerySystemRequest(ipAddress, false); // initiate a key exchange (ticket) var msgTicket = this.MessageHandlerFactory.SecurityTables.InitKeyExchangeStartG2H_SIM(ipAddress, FF_AppId_SessionIds.Security, this.NewTransactionId); // initiate a key exchange (eft) var msgEFT = this.MessageHandlerFactory.SecurityTables.InitKeyExchangeStartG2H_SIM(ipAddress, FF_AppId_SessionIds.ECash, this.NewTransactionId); // ticket parameter request var msgTicketParameters = TicketParametersHelper.InitTicketDataRequest(ipAddress); context.FreeformTargets.AddRange(new IFreeformEntity[] { msgRSAQuerySystem, msgTicket, msgEFT, msgTicketParameters }); return true; }
protected override bool OnProcessMessageG2HExternal_GMU(FFTgtExecutionContext context, IFreeformEntity_MsgTgt target) { return(base.OnProcessMessageG2HExternal_GMU(context, target)); }
protected override bool OnProcessMessageG2HInternal_GMU(FFTgtExecutionContext context, IFreeformEntity_MsgTgt target) { context.FreeformTargets.Add(this.MessageHandlerFactory.SecurityTables.InitKeyExchangeStatusH2G_GMU(context.SourceMessage)); return true; }
protected override bool OnProcessMessageH2GExternal_SIM(FFTgtExecutionContext context, IFreeformEntity_MsgTgt target) { return base.OnProcessMessageH2GExternal_SIM(context, target); }
protected override bool OnProcessMessageH2GExternal_SIM(FFTgtExecutionContext context, IFreeformEntity_MsgTgt target) { FFTgt_H2G_GVA_TSSlotID_Response tgtSrc = target as FFTgt_H2G_GVA_TSSlotID_Response; ModuleHelper.Current.TicketGlobals.UpdateTicketSlotID(context.SourceMessage.IpAddress, tgtSrc.SlotID); return true; }
protected override bool OnProcessMessageH2GExternal_SIM(FFTgtExecutionContext context, IFreeformEntity_MsgTgt target) { context.FreeformTargets.Add(ECashHelper.SystemEnableResponse(context.SourceMessage.IpAddress, FF_AppId_EFT_ResponseTypes.Ack)); return(true); }
protected override bool OnProcessMessageH2GExternal_GMU(FFTgtExecutionContext context, IFreeformEntity_MsgTgt target) { FFTgt_H2G_Client_AddUDPsToList tgtSrc = target as FFTgt_H2G_Client_AddUDPsToList; return(ExCommsExecutorFactory.AddInstallations(tgtSrc.InstallationNos)); }
protected override bool OnProcessMessageH2GExternal_GMU(FFTgtExecutionContext context, IFreeformEntity_MsgTgt target) { FFTgt_H2G_Client_AddUDPsToList tgtSrc = target as FFTgt_H2G_Client_AddUDPsToList; return ExCommsExecutorFactory.AddInstallations(tgtSrc.InstallationNos); }
protected override bool OnProcessMessageH2GExternal_SIM(FFTgtExecutionContext context, IFreeformEntity_MsgTgt target) { return(true); }
protected override bool OnProcessMessageG2HInternal_GMU(FFTgtExecutionContext context, IFreeformEntity_MsgTgt target) { context.FreeformTargets.Add(this.MessageHandlerFactory.SecurityTables.InitKeyExchangeStatusH2G_GMU(context.SourceMessage)); return(true); }
public bool Execute(IFreeformEntity_Msg request) { using (ILogMethod method = Log.LogMethod(this.DYN_MODULE_NAME, "ProcessMessage(G2H)")) { bool result = default(bool); string ipAddress = string.Empty; try { using (FFTgtExecutionContext context = new FFTgtExecutionContext(request)) { Stack<IFreeformEntity> st = new Stack<IFreeformEntity>(); request.CopyTo(st); // push all the grandchildren into stack and process again while (st.Count != 0) { IFreeformEntity_MsgTgt target = st.Pop() as IFreeformEntity_MsgTgt; if (target == null || target.IsLeafNode) continue; _requestResponseMappings.Persist(request, target); string targetKey = CreateSessionTargetKey((int)request.SessionID, target.TypeKey); if (_targetHandlers.ContainsKey(targetKey)) { _HandlerInfo info = _targetHandlers[targetKey]; context.HandlerAttribute = info.HandlerAttribute; info.Handler.Execute(context, target); } target.CopyTo(st); } if (request.TransactionID <= 0) { request.TransactionID = FFMsgHandlerFactory.NewTransactionId; } if (request.SessionID != FF_AppId_SessionIds.Internal) { // ok everything processed, now do the external or internal processing if (request.FlowDirection == FF_FlowDirection.G2H) { // add the monitor meters if (context.MonitorMeters.IsValueCreated) { context.MonitorTargets.Value.Add(context.MonitorMeters.Value); } _msgTransmitter.ProcessMessage(request as FFMsg_G2H, context.MonitorTargets.Value); } else if (request.FlowDirection == FF_FlowDirection.H2G) { _msgTransmitter.ProcessMessage(request as FFMsg_H2G); } // process the internal messages if (context.FreeformTargets != null && context.FreeformTargets.Count > 0) { FFMsg_H2G h2gMessage = null; foreach (var freeformEntity in context.FreeformTargets) { if (freeformEntity is IFreeformEntity_Msg) { FFMsgHandlerFactory.Current.Execute(freeformEntity as IFreeformEntity_Msg); } else if (freeformEntity is IFreeformEntity_MsgTgt) { if (h2gMessage == null) { h2gMessage = FreeformEntityFactory.CreateEntity<FFMsg_H2G>(FF_FlowDirection.H2G, new FFCreateEntityRequest_H2G() { IPAddress = request.IpAddress, PollCode = FF_AppId_H2G_PollCodes.FreeformNoResponse, SessionID = request.SessionID, TransactionID = request.TransactionID, }); } h2gMessage.Targets.Add(freeformEntity as IFreeformEntity_MsgTgt); } } if (h2gMessage != null) { FFMsgHandlerFactory.Current.Execute(h2gMessage); } } } } } catch (Exception ex) { method.Exception(ex); } return result; } }
protected override bool OnProcessMessageH2GExternal_SIM(FFTgtExecutionContext context, IFreeformEntity_MsgTgt target) { context.FreeformTargets.Add(ECashHelper.SystemEnableResponse(context.SourceMessage.IpAddress, FF_AppId_EFT_ResponseTypes.Ack)); return true; }