public void SetSemafone(string webSocket, Semafone semafone) { if (!SemafoneClients.ContainsKey(webSocket)) { SemafoneClients.TryAdd(webSocket, semafone); } }
internal string ProcessPciExitSecureMode(string webSocket) { if (webSocket == null) { TpsLogManager <Semafone> .Warn("processPCIExitSecureMode : Client has either been disconnected or doesn't exist"); return("Client has either been disconnected or doesn't exist"); } try { bool success = false; Semafone semafone = GetSemafone(webSocket); if (semafone != null) { // exit secure mode and logout from Semafone to ensure no more events come through success = semafone.StopListeningForEvents(); if (!success) { TpsLogManager <Semafone> .Error("processPCIExitSecureMode : Could not stop listening for Semafone events for " + webSocket + "."); } success = semafone.ExitSecureMode(); if (!success) { TpsLogManager <Semafone> .Error("processPCIExitSecureMode : Could not request to exit Semafone secure mode for " + webSocket + "."); } success = semafone.Logout(); if (!success) { TpsLogManager <Semafone> .Error("processPCIExitSecureMode : Could not logout to exit Semafone secure mode for " + webSocket + "."); } if (success) { return(ReturnExitedSecureMode(webSocket)); } else { return(jsonErrorMessage(webSocket, "8", "Failed to exit secure mode for " + webSocket + ".", ErrorSeverity.Error)); } } else { return(jsonErrorMessage(webSocket, "8", "Failed to exit secure mode for " + webSocket + ".", ErrorSeverity.Error)); } } catch (Exception ex) { TpsLogManager <Semafone> .Error(ex.Message); return(jsonErrorMessage(webSocket, "8", "Error during exit secure mode for " + webSocket + ".", ErrorSeverity.Error)); } }
private string ProcessPciResetCvc(string webSocket) { if (webSocket == null) { TpsLogManager <Semafone> .Warn("processPCIResetCVC : Client has either been disconnected or doesn't exist"); return(""); } try { Semafone semafone = GetSemafone(webSocket); if (semafone != null) { if (semafone.ResetCvc()) { SemafoneResetCvcHandset semafoneHandset = new SemafoneResetCvcHandset(); semafoneHandset.Semafone = new SemafoneResetCvc() { Cvcreset = true }; string message = JsonConvert.SerializeObject(semafoneHandset); TpsLogManager <Semafone> .Info("Reset CVC semafone message has been sent to webSocket " + webSocket); TpsLogManager <Semafone> .Info(message); return(message); } else { TpsLogManager <Semafone> .Error("Failed to reset cvc for " + webSocket); return(jsonErrorMessage(webSocket, "10", "Failed to reset pan for " + webSocket + ".", ErrorSeverity.Error)); } } else { TpsLogManager <Semafone> .Error("Failed to reset cvc for " + webSocket); return(jsonErrorMessage(webSocket, "10", "Failed to reset pan for " + webSocket + ".", ErrorSeverity.Error)); } } catch (Exception ex) { TpsLogManager <Semafone> .Error("Failed to reset cvc for " + webSocket + " due to Error: " + ex.Message); return(jsonErrorMessage(webSocket, "10", "Failed to reset pan for " + webSocket + ".", ErrorSeverity.Error)); } }
private string ProcessPciEnterSecureMode(string webSocket, JObject request) { Semafone semafone = null; string dpmTarget = ""; string semafoneUrn = ""; string enterSecureModeOption = ""; foreach (var x in request) { string name = x.Key; JToken value = x.Value; enterSecureModeOption = value.Value <String>("mode"); dpmTarget = value.Value <String>("dpmTarget"); semafoneUrn = value.Value <String>("semafoneUrn"); } try { if (IsSemafoneExist(webSocket)) { semafone = GetSemafone(webSocket); } else { if (String.IsNullOrEmpty(semafoneUrn)) { return(jsonErrorMessage(webSocket, "2", "Request to PCI Enter Secure Mode - semafoneCR missing.", ErrorSeverity.Error)); } if (String.IsNullOrEmpty(dpmTarget)) { return(jsonErrorMessage(webSocket, "3", "Request to PCI Enter Secure Mode - semafoneURL missing.", ErrorSeverity.Error)); } #endregion semafone = new Semafone(webSocket, dpmTarget, semafoneUrn, _semafonePassword); } if (semafone != null) { if (semafone.IsInSecureMode) { return(jsonErrorMessage(webSocket, "4", "Failed to enter secure mode. Semafone is already in secure mode.", ErrorSeverity.Error)); } else { if (!semafone.Login()) { if (!semafone.EnterSecureMode(enterSecureModeOption)) { semafone.Logout(); SetSemafone(webSocket, null); return(jsonErrorMessage(webSocket, "5", "Failed to enter secure mode using dpmtarget.", ErrorSeverity.Error)); } } else { if (!semafone.EnterSecureMode(enterSecureModeOption)) { semafone.Logout(); SetSemafone(webSocket, null); return(jsonErrorMessage(webSocket, "5", "Failed to enter secure mode using dpmtarget.", ErrorSeverity.Error)); } } if (!semafone.ListenForMaskedData()) { TpsLogManager <Semafone> .Error("processPCIEnterSecureMode : Failed for websocket " + webSocket + " to start listen for masked data."); return(jsonErrorMessage(webSocket, "6", "Failed to start listen for masked data.", ErrorSeverity.Error)); } SetSemafone(webSocket, semafone); SemafoneEnterSecureModeHandset semafoneHandset = new SemafoneEnterSecureModeHandset(); semafoneHandset.Semafone = new SemafoneEnterSecureMode() { Enteredsecuremode = true, GenesysId = "", SemafoneUrl = dpmTarget, SemafoneCr = semafoneUrn }; string message = JsonConvert.SerializeObject(semafoneHandset); TpsLogManager <Semafone> .Info("Entered secure mode semafone message has been sent to " + webSocket); TpsLogManager <Semafone> .Info(message); return(message); } } else { return(jsonErrorMessage(webSocket, "7", "Could not create Semafone instance on " + webSocket, ErrorSeverity.Error)); } } catch (Exception ex) { TpsLogManager <Semafone> .Error(ex.Message); return(jsonErrorMessage(webSocket, "7", "Could not create Semafone instance on " + webSocket, ErrorSeverity.Error)); } }