private void InternalVerifyServer() { if (this.NoServersSelected()) { //should never get here because the verify button should be disabled. this.Context.DesktopWindow.ShowMessageBox(SR.MessageNoServersSelected, MessageBoxActions.Ok); return; } try { var localServer = ServerDirectory.GetLocalServer(); var msgText = new StringBuilder(); msgText.AppendFormat(SR.MessageCEchoVerificationPrefix + "\r\n\r\n"); foreach (var server in this.Context.SelectedServers) { using (var scu = new VerificationScu()) { VerificationResult result = scu.Verify(localServer.AETitle, server.AETitle, server.ScpParameters.HostName, server.ScpParameters.Port); if (result == VerificationResult.Success) msgText.AppendFormat(SR.MessageCEchoVerificationSingleServerResultSuccess + "\r\n", server.Name); else msgText.AppendFormat(SR.MessageCEchoVerificationSingleServerResultFail + "\r\n", server.Name); // must wait for the SCU thread to release the connection properly before disposal, otherwise we might end up aborting the connection instead scu.Join(new TimeSpan(0, 0, 2)); } } msgText.AppendFormat("\r\n"); this.Context.DesktopWindow.ShowMessageBox(msgText.ToString(), MessageBoxActions.Ok); } catch (Exception e) { ExceptionHandler.Report(e, base.Context.DesktopWindow); } }
public static bool EchoNode(Node node) { try { VerificationScu scu = new VerificationScu(); var result = scu.Verify(node.LocalAe, node.AET, node.IP, node.Port); if (result == VerificationResult.Success) return true; else return false; } catch { return false; } }
public VerifyResponse Verify(VerifyRequest request) { try { var verify = new VerificationScu(); var result = verify.Verify(request.LocalApplicationEntity, request.RemoteApplicationEntity.AETitle, request.RemoteApplicationEntity.ScpParameters.HostName, request.RemoteApplicationEntity.ScpParameters.Port); if (result == VerificationResult.AssociationRejected) { var fault = new VerificationFailedFault { Description = SR.VerifyAssociationRejected, Result = result }; throw new FaultException<VerificationFailedFault>(fault, fault.Description); } if (result == VerificationResult.Failed) { var fault = new VerificationFailedFault { Description = SR.VerifyFailed, Result = result }; throw new FaultException<VerificationFailedFault>(fault, fault.Description); } if (result == VerificationResult.Canceled) { var fault = new VerificationFailedFault { Description = SR.VerifyCanceled, Result = result }; throw new FaultException<VerificationFailedFault>(fault, fault.Description); } if (result == VerificationResult.TimeoutExpired) { var fault = new VerificationFailedFault { Description = SR.VerifyTimeoutExpired, Result = result }; throw new FaultException<VerificationFailedFault>(fault, fault.Description); } return new VerifyResponse { Result = verify.Result }; } catch (Exception e) { Platform.Log(LogLevel.Info, "User DICOM Verification not understood: {0}", e.Message); var fault = new VerificationFailedFault { Description = e.Message, Result = VerificationResult.Failed }; throw new FaultException<VerificationFailedFault>(fault, fault.Description); } }