internal static TransportErrorOccuredEventArgs ConstructTransportErrorEventArgs( IntPtr wsmanAPIHandle, IntPtr wsmanSessionHandle, WSManNativeApi.WSManError errorStruct, TransportMethodEnum transportMethodReportingError, PSRemotingErrorId errorResourceID, params object[] resourceArgs) { PSRemotingTransportException e; if (errorStruct.errorCode == -2144108135) { string sessionOptionAsString = WSManNativeApi.WSManGetSessionOptionAsString(wsmanSessionHandle, WSManNativeApi.WSManSessionOption.WSMAN_OPTION_REDIRECT_LOCATION); string str = WSManTransportManagerUtils.ParseEscapeWSManErrorMessage(WSManNativeApi.WSManGetErrorMessage(wsmanAPIHandle, errorStruct.errorCode)).Trim(); e = (PSRemotingTransportException) new PSRemotingTransportRedirectException(sessionOptionAsString, PSRemotingErrorId.URIEndPointNotResolved, new object[2] { (object)str, (object)sessionOptionAsString }); } else { e = new PSRemotingTransportException(PSRemotingErrorId.TroubleShootingHelpTopic, new object[1] { (object)PSRemotingErrorInvariants.FormatResourceString(errorResourceID, resourceArgs) }); e.TransportMessage = WSManTransportManagerUtils.ParseEscapeWSManErrorMessage(WSManNativeApi.WSManGetErrorMessage(wsmanAPIHandle, errorStruct.errorCode)); } e.ErrorCode = errorStruct.errorCode; return(new TransportErrorOccuredEventArgs(e, transportMethodReportingError)); }