private void ParseJSONCommand(string commandText) { ValidatorGateCommand gateCmd; if (ValidatorGateCommand.TryParse(commandText, out gateCmd)) { gateCmd.Execute(); return; } TicketForwardingCommand ticketCmd; if (TicketForwardingCommand.TryParse(commandText, out ticketCmd)) { ticketCmd.Execute(); } ValidatorMessageCommand messageCommand; if (ValidatorMessageCommand.TryParse(commandText, out messageCommand)) { messageCommand.Execute(); } }
private void ParseCommand(HttpListenerRequest request) { var available = true; var entryScannble = true; var entryable = true; var exitScannable = true; var exitable = true; try { var queryStrs = request.QueryString; foreach (var key in queryStrs.AllKeys) { // _log.Info(string.Format("key: {0} value:{1}", key, queryStrs[key])); var lowerCase = key.ToLowerInvariant(); switch (lowerCase) { case "available": available = bool.Parse(queryStrs[key]); break; case "entry": entryable = bool.Parse(queryStrs[key]); break; case "entryscan": entryScannble = bool.Parse(queryStrs[key]); break; case "exit": exitable = bool.Parse(queryStrs[key]); break; case "exitscan": exitScannable = bool.Parse(queryStrs[key]); break; default: // do nothing break; } } if (!available) { entryScannble = false; entryable = false; exitable = false; exitScannable = false; } new ValidatorGateCommand(entryable, entryScannble, "").Execute(); //_log.Info(string.Format("entry gate : AlwaysAllowEntry: [{0}] scannable:[{1}]", GateStatus.Instance.AlwaysAllowEntry, GateStatus.Instance.Scannable)); // UDP the exit commands to Exit client var jsonObj = new ValidatorGateCommand(exitable, exitScannable, ValidatorGateCommand.FORWARDING_MSGTYPE); var json = JsonConvert.SerializeObject(jsonObj); var sendingPort = ValidatorEnv.UDPEntrySendingPort; // always from entry to exit ValidatorCommunicator.Instance.SendCommandAsync(json, sendingPort); } catch (Exception ex) { _log.Error(ex); } }