예제 #1
0
        public static MeasurementEventStatus TransformNephosStatusForPreOperationFailures(MeasurementEventStatus status, bool isAnonymous, bool completedWithinSla)
        {
            MeasurementEventStatus measurementEventStatu = status;

            measurementEventStatu = (!status.Equals(NephosRESTEventStatus.AuthenticationFailure) ? QoSUtilities.TransformNephosStatusForAuthenticatedRequests(status, isAnonymous, completedWithinSla) : NephosRESTEventStatus.AuthenticationFailure);
            return(measurementEventStatu);
        }
예제 #2
0
        public NephosErrorDetails(NephosStatusEntry statusEntry, MeasurementEventStatus eventStatus, Exception exception, string userSafeErrorMessage, NameValueCollection headers, NameValueCollection additionalDetails, byte[] errorResponse, bool isFatal, bool hasErrorResponse, bool skipBillingAndMetrics)
        {
            NephosAssertionException.Assert(statusEntry != null, "statusEntry can't be null.");
            NephosAssertionException.Assert(true, "eventStatus can't be null.");
            this.StatusEntry           = statusEntry;
            this.EventStatus           = eventStatus;
            this.ErrorException        = exception;
            this.ResponseHeaders       = headers;
            this.AdditionalDetails     = additionalDetails;
            this.ErrorResponse         = errorResponse;
            this.IsFatal               = isFatal;
            this.HasErrorResponse      = hasErrorResponse;
            this.SkipBillingAndMetrics = skipBillingAndMetrics;
            StringBuilder stringBuilder = new StringBuilder(statusEntry.UserMessage);

            if (!string.IsNullOrEmpty(userSafeErrorMessage))
            {
                stringBuilder.AppendFormat(" Additional detail: {0}", userSafeErrorMessage);
            }
            Guid activityId = Trace.ActivityId;

            if (activityId != Guid.Empty)
            {
                string   str    = activityId.ToString("D");
                DateTime utcNow = DateTime.UtcNow;
                stringBuilder.AppendFormat("\nRequestId:{0}\nTime:{1}", str, utcNow.ToString("o"));
            }
            this.UserSafeErrorMessage = stringBuilder.ToString();
        }
예제 #3
0
        public static MeasurementEventStatus TransformNephosStatusForPreAuthFailures(MeasurementEventStatus status)
        {
            MeasurementEventStatus unexpectedAuthenticationTimeoutFailure = status;

            if (status.Equals(NephosRESTEventStatus.TimeoutFailure))
            {
                unexpectedAuthenticationTimeoutFailure = NephosRESTEventStatus.UnexpectedAuthenticationTimeoutFailure;
            }
            else if (status.Equals(NephosRESTEventStatus.ProtocolFailure))
            {
                unexpectedAuthenticationTimeoutFailure = NephosRESTEventStatus.PreauthenticationFailure;
            }
            else if (status.Equals(NephosRESTEventStatus.IPThrottlingFailure))
            {
                unexpectedAuthenticationTimeoutFailure = NephosRESTEventStatus.IPThrottlingFailure;
            }
            else if (status.Equals(NephosRESTEventStatus.AuthenticationFailure))
            {
                unexpectedAuthenticationTimeoutFailure = NephosRESTEventStatus.AuthenticationFailure;
            }
            else if (status.Equals(NephosRESTEventStatus.ThrottlingFailure))
            {
                unexpectedAuthenticationTimeoutFailure = NephosRESTEventStatus.UnexpectedAuthenticationThrottleFailure;
            }
            else if (status.Equals(NephosRESTEventStatus.ExpectedThrottlingFailure))
            {
                unexpectedAuthenticationTimeoutFailure = NephosRESTEventStatus.ExpectedThrottlingFailure;
            }
            else if (status.Equals(NephosRESTEventStatus.PermissionFailureQuota))
            {
                unexpectedAuthenticationTimeoutFailure = NephosRESTEventStatus.PermissionFailureQuota;
            }
            else if (status.Equals(NephosRESTEventStatus.PermissionFailureSAS))
            {
                unexpectedAuthenticationTimeoutFailure = NephosRESTEventStatus.PermissionFailureSAS;
            }
            else if (!status.Equals(NephosRESTEventStatus.AuthorizationFailure))
            {
                Logger <IRestProtocolHeadLogger> .Instance.Error.Log("Billing: TransformNephosStatusForPreAuthFailures some unrecognized failure before authentication with status code {0}", new object[] { status });

                unexpectedAuthenticationTimeoutFailure = NephosRESTEventStatus.PreauthenticationFailure;
            }
            else
            {
                unexpectedAuthenticationTimeoutFailure = NephosRESTEventStatus.PreauthenticationFailure;
            }
            return(unexpectedAuthenticationTimeoutFailure);
        }
예제 #4
0
 static NephosRESTEventStatus()
 {
     NephosRESTEventStatus.Success                                 = new MeasurementEventStatus("Success");
     NephosRESTEventStatus.SuccessOutsideSLA                       = new MeasurementEventStatus("SuccessOutsideSLA");
     NephosRESTEventStatus.UnexpectedSuccess                       = new MeasurementEventStatus("UnexpectedSuccess");
     NephosRESTEventStatus.UnknownFailure                          = MeasurementEventStatus.UnknownFailure;
     NephosRESTEventStatus.PreauthenticationFailure                = new MeasurementEventStatus("PreauthenticationFailure");
     NephosRESTEventStatus.UnexpectedAuthenticationFailure         = new MeasurementEventStatus("UnexpectedAuthenticationFailure");
     NephosRESTEventStatus.UnexpectedAuthenticationThrottleFailure = new MeasurementEventStatus("UnexpectedAuthenticationThrottleFailure");
     NephosRESTEventStatus.UnexpectedAuthenticationTimeoutFailure  = new MeasurementEventStatus("UnexpectedAuthenticationTimeoutFailure");
     NephosRESTEventStatus.AuthenticationFailure                   = new MeasurementEventStatus("AuthenticationFailure");
     NephosRESTEventStatus.AuthorizationFailure                    = new MeasurementEventStatus("AuthorizationFailure");
     NephosRESTEventStatus.ConditionNotMetFailure                  = new MeasurementEventStatus("ConditionNotMetFailure");
     NephosRESTEventStatus.ExpectedFailure                         = new MeasurementEventStatus("ExpectedFailure");
     NephosRESTEventStatus.ProtocolFailure                         = new MeasurementEventStatus("ProtocolFailure");
     NephosRESTEventStatus.TimeoutFailure                          = new MeasurementEventStatus("TimeoutFailure");
     NephosRESTEventStatus.NetworkFailure                          = new MeasurementEventStatus("NetworkFailure");
     NephosRESTEventStatus.SuccessCacheHit                         = new MeasurementEventStatus("SuccessCacheHit");
     NephosRESTEventStatus.ExpectedTimeoutFailure                  = new MeasurementEventStatus("ExpectedTimeoutFailure");
     NephosRESTEventStatus.ThrottlingFailure                       = new MeasurementEventStatus("ThrottlingFailure");
     NephosRESTEventStatus.ExpectedThrottlingFailure               = new MeasurementEventStatus("ExpectedThrottlingFailure");
     NephosRESTEventStatus.IPThrottlingFailure                     = new MeasurementEventStatus("IPThrottlingFailure");
     NephosRESTEventStatus.PermissionFailureQuota                  = new MeasurementEventStatus("PermissionFailureQuota");
     NephosRESTEventStatus.PermissionFailureSAS                    = new MeasurementEventStatus("PermissionFailureSAS");
     NephosRESTEventStatus.AnonymousSuccess                        = new MeasurementEventStatus("AnonymousSuccess");
     NephosRESTEventStatus.AnonymousSuccessOutsideSLA              = new MeasurementEventStatus("AnonymousSuccessOutsideSLA");
     NephosRESTEventStatus.AnonymousUnexpectedSuccess              = new MeasurementEventStatus("AnonymousUnexpectedSuccess");
     NephosRESTEventStatus.AnonymousUnknownFailure                 = new MeasurementEventStatus("AnonymousUnknownFailure");
     NephosRESTEventStatus.AnonymousExpectedFailure                = new MeasurementEventStatus("AnonymousExpectedFailure");
     NephosRESTEventStatus.AnonymousTimeoutFailure                 = new MeasurementEventStatus("AnonymousTimeoutFailure");
     NephosRESTEventStatus.AnonymousExpectedTimeoutFailure         = new MeasurementEventStatus("AnonymousExpectedTimeoutFailure");
     NephosRESTEventStatus.AnonymousThrottlingFailure              = new MeasurementEventStatus("AnonymousThrottlingFailure");
     NephosRESTEventStatus.AnonymousExpectedThrottlingFailure      = new MeasurementEventStatus("AnonymousExpectedThrottlingFailure");
     NephosRESTEventStatus.AnonymousAuthorizationFailure           = new MeasurementEventStatus("AnonymousAuthorizationFailure");
     NephosRESTEventStatus.AnonymousConditionNotMetFailure         = new MeasurementEventStatus("AnonymousConditionNotMetFailure");
     NephosRESTEventStatus.AnonymousProtocolFailure                = new MeasurementEventStatus("AnonymousProtocolFailure");
     NephosRESTEventStatus.AnonymousNetworkFailure                 = new MeasurementEventStatus("AnonymousNetworkFailure");
     NephosRESTEventStatus.AnonymousSuccessCacheHit                = new MeasurementEventStatus("AnonymousSuccessCacheHit");
     NephosRESTEventStatus.AnonymousExpectedGetPreconditionFailure = new MeasurementEventStatus("AnonymousExpectedGetPreconditionFailure");
     NephosRESTEventStatus.UnexpectedLocationServiceFailure        = new MeasurementEventStatus("UnexpectedLocationServiceFailure");
     NephosRESTEventStatus.UnexpectedStampFailure                  = new MeasurementEventStatus("UnexpectedStampFailure");
     NephosRESTEventStatus.UnexpectedStampUnavailableFailure       = new MeasurementEventStatus("UnexpectedStampUnavailableFailure");
     NephosRESTEventStatus.UnexpectedStampTimeoutFailure           = new MeasurementEventStatus("UnexpectedStampTimeoutFailure");
     NephosRESTEventStatus.UnexpectedStampThrottleFailure          = new MeasurementEventStatus("UnexpectedStampThrottleFailure");
 }
예제 #5
0
 public NephosErrorDetails(NephosStatusEntry statusEntry, MeasurementEventStatus eventStatus, Exception exception, NameValueCollection headers, NameValueCollection additionalDetails) : this(statusEntry, eventStatus, exception, headers, additionalDetails, null, false, false)
 {
 }
예제 #6
0
 public NephosErrorDetails(NephosStatusEntry statusEntry, MeasurementEventStatus eventStatus, Exception exception) : this(statusEntry, eventStatus, exception, null, null)
 {
 }
예제 #7
0
 public NephosErrorDetails(NephosStatusEntry statusEntry, MeasurementEventStatus eventStatus, bool skipBillingAndMetrics) : this(statusEntry, eventStatus, null, null, null, null, null, false, false, skipBillingAndMetrics)
 {
 }
예제 #8
0
 public NephosErrorDetails(NephosStatusEntry statusEntry, MeasurementEventStatus eventStatus) : this(statusEntry, eventStatus, null)
 {
 }
예제 #9
0
 public NephosErrorDetails(NephosStatusEntry statusEntry, MeasurementEventStatus eventStatus, Exception exception, NameValueCollection headers, NameValueCollection additionalDetails, byte[] errorResponse, bool isFatal, bool hasErrorResponse) : this(statusEntry, eventStatus, exception, null, headers, additionalDetails, errorResponse, isFatal, hasErrorResponse, false)
 {
 }
예제 #10
0
 public NephosErrorDetails(NephosStatusEntry statusEntry, MeasurementEventStatus eventStatus, Exception exception, string userSafeErrorMessage) : this(statusEntry, eventStatus, exception, userSafeErrorMessage, null, null, null, false, false, false)
 {
 }
예제 #11
0
 public NephosErrorDetails(NephosStatusEntry statusEntry, MeasurementEventStatus eventStatus, byte[] errorResponse, bool hasErrorResponse) : this(statusEntry, eventStatus, null, null, null, errorResponse, false, hasErrorResponse)
 {
 }
예제 #12
0
        public static MeasurementEventStatus TransformNephosStatusForAuthenticatedRequests(MeasurementEventStatus status, bool isAnonymous, bool completedWithinSla)
        {
            MeasurementEventStatus anonymousSuccess = status;

            if (!isAnonymous)
            {
                anonymousSuccess = status;
            }
            else if (status.Equals(NephosRESTEventStatus.Success))
            {
                anonymousSuccess = NephosRESTEventStatus.AnonymousSuccess;
            }
            else if (status.Equals(NephosRESTEventStatus.UnknownFailure))
            {
                anonymousSuccess = NephosRESTEventStatus.AnonymousUnknownFailure;
            }
            else if (status.Equals(NephosRESTEventStatus.ExpectedFailure))
            {
                anonymousSuccess = NephosRESTEventStatus.AnonymousExpectedFailure;
            }
            else if (status.Equals(NephosRESTEventStatus.TimeoutFailure))
            {
                anonymousSuccess = NephosRESTEventStatus.AnonymousTimeoutFailure;
            }
            else if (status.Equals(NephosRESTEventStatus.ExpectedTimeoutFailure))
            {
                anonymousSuccess = NephosRESTEventStatus.AnonymousExpectedTimeoutFailure;
            }
            else if (status.Equals(NephosRESTEventStatus.ThrottlingFailure))
            {
                anonymousSuccess = NephosRESTEventStatus.AnonymousThrottlingFailure;
            }
            else if (status.Equals(NephosRESTEventStatus.ExpectedThrottlingFailure))
            {
                anonymousSuccess = NephosRESTEventStatus.AnonymousExpectedThrottlingFailure;
            }
            else if (status.Equals(NephosRESTEventStatus.SuccessCacheHit))
            {
                anonymousSuccess = NephosRESTEventStatus.AnonymousSuccessCacheHit;
            }
            else if (status.Equals(NephosRESTEventStatus.ConditionNotMetFailure))
            {
                anonymousSuccess = NephosRESTEventStatus.AnonymousConditionNotMetFailure;
            }
            else if (status.Equals(NephosRESTEventStatus.NetworkFailure))
            {
                anonymousSuccess = NephosRESTEventStatus.AnonymousNetworkFailure;
            }
            else if (status.Equals(NephosRESTEventStatus.ProtocolFailure))
            {
                anonymousSuccess = NephosRESTEventStatus.AnonymousProtocolFailure;
            }
            else if (status.Equals(NephosRESTEventStatus.AuthorizationFailure))
            {
                anonymousSuccess = NephosRESTEventStatus.AnonymousAuthorizationFailure;
            }
            else if (status.Equals(NephosRESTEventStatus.PermissionFailureQuota))
            {
                anonymousSuccess = NephosRESTEventStatus.PermissionFailureQuota;
            }
            else if (status.Equals(NephosRESTEventStatus.PermissionFailureSAS))
            {
                anonymousSuccess = NephosRESTEventStatus.PermissionFailureSAS;
            }
            else if (!status.Equals(NephosRESTEventStatus.AnonymousExpectedGetPreconditionFailure))
            {
                Logger <IRestProtocolHeadLogger> .Instance.Error.Log("Billing: TransformNephosStatusForAuthenticatedRequests some unrecognized failure before authentication with status code {0}", new object[] { status });

                anonymousSuccess = NephosRESTEventStatus.AnonymousUnknownFailure;
            }
            else
            {
                anonymousSuccess = NephosRESTEventStatus.AnonymousExpectedGetPreconditionFailure;
            }
            return(anonymousSuccess);
        }