private void SendTurnOnKMU(List <ClientParm> clientParm, OperationInfo opInfo) { foreach (ClientParm cp in clientParm) { InternalClientStatus iClientStatus = _internalClientStatus.Where(x => x.ClientID == cp.ClientID).FirstOrDefault(); if (iClientStatus != null) { ConnectionInfo connInfo = _targetClientDaemonConnection.Where(x => ((IPEndPoint)x.RemoteEndPoint).Address.MapToIPv4().ToString() == iClientStatus.ClientIP).FirstOrDefault(); if (connInfo != null) { VRCommand vrc = new VRCommand(VRGameSelectorDTO.Enums.ControlMessage.TURN_ON_KMU); SendCommandToPeer(connInfo, vrc); CreateManageLog(opInfo.SourceType, VRGameSelectorServerDTO.Enums.OperationType.TURN_ON_KMU, ((IPEndPoint)opInfo.ConnectionInfo.RemoteEndPoint).Address.MapToIPv4().ToString(), (opInfo.ClientID != null) ? opInfo.ClientID : cp.ClientID, null, opInfo.TicketGUID, ""); } } } }
private void HandleIncomingCommandManagingSystem(PacketHeader packetHeader, Connection connection, VRCommandServer vrCommandServer) { OperationInfo opInfo = new OperationInfo() { SourceType = Enums.SourceType.MANAGEMENT_SYSTEM, ConnectionInfo = connection.ConnectionInfo }; switch (vrCommandServer.ControlMessage) { case VRGameSelectorServerDTO.Enums.ControlMessage.NONE: break; case VRGameSelectorServerDTO.Enums.ControlMessage.GET_SYSCONFIG: GetSysConfig(connection.ConnectionInfo, vrCommandServer.SystemConfig); break; case VRGameSelectorServerDTO.Enums.ControlMessage.SET_SYSCONFIG: SetSysConfig(vrCommandServer.SystemConfig); UpdateAllClientDaemonSystemConfig(); break; case VRGameSelectorServerDTO.Enums.ControlMessage.GET_CONFIGED_CLIENT_LIST: GetConfiguredClientList(connection.ConnectionInfo); break; case VRGameSelectorServerDTO.Enums.ControlMessage.MODIFY_CLIENT_CONFIG: ModifyClientConfig(connection.ConnectionInfo, vrCommandServer.Client); break; case VRGameSelectorServerDTO.Enums.ControlMessage.ADD_CLIENT_CONFIG: AddClientConfig(connection.ConnectionInfo, vrCommandServer.Client); break; case VRGameSelectorServerDTO.Enums.ControlMessage.DELETE_CLIENT_CONFIG: DeleteClientConfig(connection.ConnectionInfo, vrCommandServer.Client); break; case VRGameSelectorServerDTO.Enums.ControlMessage.GET_CONFIG_SET_LIST: GetConfigSetList(connection.ConnectionInfo); break; case VRGameSelectorServerDTO.Enums.ControlMessage.MODIFY_CONFIG_SET: ModifyConfigSetList(connection.ConnectionInfo, vrCommandServer.ConfigSet); break; case VRGameSelectorServerDTO.Enums.ControlMessage.ADD_CONFIG_SET: AddConfigSetList(connection.ConnectionInfo, vrCommandServer.ConfigSet); break; case VRGameSelectorServerDTO.Enums.ControlMessage.DELETE_CONFIG_SET: DeleteConfigSetList(connection.ConnectionInfo, vrCommandServer.ConfigSet); break; case VRGameSelectorServerDTO.Enums.ControlMessage.GET_TILE_CONFIG: GetTileConfigList(connection.ConnectionInfo, vrCommandServer.TileConfig.TileConfigSetID); break; case VRGameSelectorServerDTO.Enums.ControlMessage.MODIFY_TILE_CONFIG: ModifyTileConfig(connection.ConnectionInfo, vrCommandServer.TileConfig); break; case VRGameSelectorServerDTO.Enums.ControlMessage.ADD_TILE_CONFIG: AddTileConfig(connection.ConnectionInfo, vrCommandServer.TileConfig); break; case VRGameSelectorServerDTO.Enums.ControlMessage.DELETE_TILE_CONFIG: DeleteTileConfig(connection.ConnectionInfo, vrCommandServer.TileConfig); break; case VRGameSelectorServerDTO.Enums.ControlMessage.REORDER_UP_TILE_CONFIG: ReorderUpTileConfig(connection.ConnectionInfo, vrCommandServer.TileConfig); break; case VRGameSelectorServerDTO.Enums.ControlMessage.REORDER_DOWN_TILE_CONFIG: ReorderDownTileConfig(connection.ConnectionInfo, vrCommandServer.TileConfig); break; case Enums.ControlMessage.SYNC_TILE_CONFIG: UpdateAllClientDaemonTileConfig(); break; case Enums.ControlMessage.REINIT_CLIENT_SETTING: BuildInternalClientStatus(); break; case VRGameSelectorServerDTO.Enums.ControlMessage.GET_LIVE_SYSTEM_INFO: SendLiveSystemInfoToManagingSystem(connection.ConnectionInfo); break; case VRGameSelectorServerDTO.Enums.ControlMessage.START_TIMING: SendStartTiming(vrCommandServer.ClientParm, opInfo); break; case VRGameSelectorServerDTO.Enums.ControlMessage.START_NOW: SendStartNow(vrCommandServer.ClientParm, opInfo); break; case VRGameSelectorServerDTO.Enums.ControlMessage.END_NOW: SendEndNow(vrCommandServer.ClientParm, opInfo); break; case VRGameSelectorServerDTO.Enums.ControlMessage.REBOOT: SendReboot(vrCommandServer.ClientParm, opInfo); break; case VRGameSelectorServerDTO.Enums.ControlMessage.TURN_OFF: SendTurnOff(vrCommandServer.ClientParm, opInfo); break; case VRGameSelectorServerDTO.Enums.ControlMessage.TURN_OFF_KMU: SendTurnOffKMU(vrCommandServer.ClientParm, opInfo); break; case VRGameSelectorServerDTO.Enums.ControlMessage.TURN_ON_KMU: SendTurnOnKMU(vrCommandServer.ClientParm, opInfo); break; case VRGameSelectorServerDTO.Enums.ControlMessage.HELP_PROVIDED: ResetHelpRequestStatus(vrCommandServer.ClientParm, opInfo); break; case VRGameSelectorServerDTO.Enums.ControlMessage.CLEANING_PROVIDED: ResetCleaningStatus(vrCommandServer.ClientParm, opInfo); break; case VRGameSelectorServerDTO.Enums.ControlMessage.GET_GAME_PLAY_HISTORY: GetGamePlayHistory(connection.ConnectionInfo, vrCommandServer.ClientParm); break; case VRGameSelectorServerDTO.Enums.ControlMessage.GENERATE_BARCODE: GenerateBarcode(connection.ConnectionInfo, vrCommandServer.BarcodeInfo); break; case Enums.ControlMessage.GET_KEY: GetKey(connection.ConnectionInfo); break; case Enums.ControlMessage.DELETE_KEY: DeleteKey(connection.ConnectionInfo, vrCommandServer.ListKeyInfo); break; case Enums.ControlMessage.ADD_KEY: AddKey(connection.ConnectionInfo, vrCommandServer.ListKeyInfo); break; case Enums.ControlMessage.GET_KEY_TYPE: GetKeyType(connection.ConnectionInfo); break; case Enums.ControlMessage.GET_PENDING_WAIVER: GetPendingWaiverList(connection.ConnectionInfo); break; case Enums.ControlMessage.GET_BOOKING_REF_SETTING: GetBookingReferenceSetting(connection.ConnectionInfo, vrCommandServer.BookingReference); break; case Enums.ControlMessage.DELETE_PENDING_WAIVER: DeletePendingWaiver(connection.ConnectionInfo, vrCommandServer.ListWaiverInfo); break; case Enums.ControlMessage.MARK_WAIVER_RECEIVED: MarkWaiverReceived(connection.ConnectionInfo, vrCommandServer.ListWaiverInfo); break; default: break; } }
public void ProcessBarcode(string ipAdd, string barcode) { try { logger.Debug("BARCODE IN " + barcode); logger.Debug("From dashboard: " + ipAdd); InternalClientStatus iClientStatus = _internalClientStatus.Where(x => x.DashboardModuleIP == ipAdd).FirstOrDefault(); Ascii85 a85 = new Ascii85(); //Guid guid = new Guid(Convert.FromBase64String(barcode.BarcodeReadout + "==")); Guid guid = new Guid(a85.Decode(barcode)); logger.Debug(guid.ToString()); if (iClientStatus != null && guid != null && guid != Guid.Empty) { logger.Debug("P1"); using (VRArcadeDataAccessModel m = new VRArcadeDataAccessModel()) { VRTicket vrt = m.VRTickets.Where(x => x.GUID == guid.ToString() && !x.IsDeleted).FirstOrDefault(); if (vrt != null && vrt.VRTicketType != null) { logger.Debug("P2"); List <ClientParm> clientParm = new List <ClientParm>(); IPAddress ipa = null; if (!IPAddress.TryParse(ipAdd, out ipa)) { ipa = IPAddress.Parse("0.0.0.0"); } OperationInfo opInfo = new OperationInfo() { ConnectionInfo = new ConnectionInfo(new IPEndPoint(ipa, 0)), TicketGUID = vrt.GUID, SourceType = VRGameSelectorServerDTO.Enums.SourceType.LCD_BARCODE_MODULE, ClientID = iClientStatus.ClientID }; if (vrt.VRTicketType.Type == "TICKET" && iClientStatus.ClientStatus == VRGameSelectorServerDTO.Enums.LiveClientStatus.CLEANING_DONE) { if (Math.Abs(DateTime.Now.Subtract(vrt.TimeStampCreate).TotalMinutes) <= 60) { logger.Debug("P3"); VRClient vrc = m.VRClients.Where(x => x.ID == iClientStatus.ClientID).FirstOrDefault(); if (vrt.Minutes == 0) { // non-timing clientParm.Add(new ClientParm(iClientStatus.ClientID)); SendStartNow(clientParm, opInfo); logger.Debug("NON-TIMING"); } else { // timing Dictionary <string, string> dict = new Dictionary <string, string>() { { "Duration", vrt.Minutes.ToString() } }; clientParm.Add(new ClientParm(iClientStatus.ClientID, dict)); SendStartTiming(clientParm, opInfo); logger.Debug("TIMING:" + vrt.Minutes.ToString()); } vrt.IsDeleted = true; vrt.TimeStampDelete = DateTime.Now; vrt.VRClientID = (vrc != null) ? (int?)vrc.ID : null; m.SaveChanges(); } else { logger.Debug("P4"); } } else if (vrt.VRTicketType.Type == "KEY-START-NON-TIMING") { clientParm.Add(new ClientParm(iClientStatus.ClientID)); SendStartNow(clientParm, opInfo); } else if (vrt.VRTicketType.Type == "KEY-START-TIMING") { Dictionary <string, string> dict = new Dictionary <string, string>() { { "Duration", vrt.Minutes.ToString() } }; clientParm.Add(new ClientParm(iClientStatus.ClientID, dict)); SendStartTiming(clientParm, opInfo); } else if (vrt.VRTicketType.Type == "KEY-END-GAME") { Dictionary <string, string> dict = new Dictionary <string, string>() { { "EndMode", "Manual" } }; clientParm.Add(new ClientParm(iClientStatus.ClientID, dict)); SendEndNow(clientParm, opInfo); } else if (vrt.VRTicketType.Type == "KEY-REBOOT") { clientParm.Add(new ClientParm(iClientStatus.ClientID)); SendReboot(clientParm, opInfo); } else if (vrt.VRTicketType.Type == "KEY-TURNOFF") { clientParm.Add(new ClientParm(iClientStatus.ClientID)); SendTurnOff(clientParm, opInfo); } else if (vrt.VRTicketType.Type == "KEY-KMU-ON") { clientParm.Add(new ClientParm(iClientStatus.ClientID)); SendTurnOnKMU(clientParm, opInfo); } else if (vrt.VRTicketType.Type == "KEY-KMU-OFF") { clientParm.Add(new ClientParm(iClientStatus.ClientID)); SendTurnOffKMU(clientParm, opInfo); } } } } } catch (Exception ex) { logger.Debug("Barcode Decoding Error: " + ex.Message); } }
private void HandleIncomingCommandClientDaemon(PacketHeader packetHeader, Connection connection, VRCommand vrCommand) { switch (vrCommand.ControlMessage) { case VRGameSelectorDTO.Enums.ControlMessage.NONE: HandleClientDaemonPing(connection.ConnectionInfo); break; case VRGameSelectorDTO.Enums.ControlMessage.GET_ALL_SYSCONFIG: ClientSetAllSysConfig(connection.ConnectionInfo); break; case VRGameSelectorDTO.Enums.ControlMessage.GET_ALL_TILE_CONFIG: if (CheckAbleToSendAllTileConfig(connection.ConnectionInfo)) { ClientSetAllTileConfig(connection.ConnectionInfo); } break; case Enums.ControlMessage.GET_ALL_TILE_CONFIG_WITH_IMAGE: if (CheckAbleToSendAllTileConfig(connection.ConnectionInfo)) { ClientSetAllTileConfigWithImage(connection.ConnectionInfo); } break; case VRGameSelectorDTO.Enums.ControlMessage.START_TIMING: break; case VRGameSelectorDTO.Enums.ControlMessage.START_NOW: break; case VRGameSelectorDTO.Enums.ControlMessage.END_NOW: break; case VRGameSelectorDTO.Enums.ControlMessage.TURN_OFF: break; case VRGameSelectorDTO.Enums.ControlMessage.STATUS: ClientSetRunningMode(connection.ConnectionInfo); break; case VRGameSelectorDTO.Enums.ControlMessage.LOAD_CONFIG: break; case VRGameSelectorDTO.Enums.ControlMessage.PLAY_LOG: ProcessPlayLog(connection.ConnectionInfo, vrCommand.PlayLog); break; case VRGameSelectorDTO.Enums.ControlMessage.CLIENT_UI_READY: break; case VRGameSelectorDTO.Enums.ControlMessage.REQUEST_HELP: OperationInfo opInfo = new OperationInfo() { SourceType = VRGameSelectorServerDTO.Enums.SourceType.CLIENT, ConnectionInfo = connection.ConnectionInfo }; SetHelpRequestStatus(connection.ConnectionInfo, opInfo); break; default: break; } IPEndPoint ep = (IPEndPoint)connection.ConnectionInfo.RemoteEndPoint; string ipAdd = ep.Address.MapToIPv4().ToString(); string machineName = (vrCommand.MachineName != null) ? vrCommand.MachineName : ""; InternalClientStatus iClientStatus = _internalClientStatus.Where(x => x.ClientIP == ipAdd).FirstOrDefault(); if (iClientStatus != null && (iClientStatus.ClientName != machineName || iClientStatus.ClientStatus != (VRGameSelectorServerDTO.Enums.LiveClientStatus)vrCommand.LiveClientStatus)) { UpdateInternalClientStatus(ipAdd, machineName, vrCommand.LiveClientStatus, vrCommand.AdditionalInfo); isManageSystemPushRequired = true; } }