/// <summary> /// Initializes a new instance of the <see cref="ServiceException"/> class. /// </summary> /// <param name="serviceError">The service error.</param> /// <param name="serviceResponse">The service response.</param> public ServiceException(ErrorsError serviceError, object serviceResponse) : base(serviceError != null ? serviceError.Message : "Unknown") { if (serviceError != null) { _errorCode = serviceError.Code; } _serviceResponse = serviceResponse; }
/// <summary> /// Initializes a new instance of the <see cref="ExceedsMaxAssignmentsPerWorkerException"/> class. /// </summary> /// <param name="serviceError">The service error.</param> /// <param name="serviceResponse">The service response.</param> public ExceedsMaxAssignmentsPerWorkerException(ErrorsError serviceError, object serviceResponse) : base(serviceError, serviceResponse) { }
/// <summary> /// Initializes a new instance of the <see cref="AccessKeyException"/> class. /// </summary> /// <param name="serviceError">The service error.</param> /// <param name="serviceResponse">The service response.</param> public AccessKeyException(ErrorsError serviceError, object serviceResponse) : base(serviceError, serviceResponse) { }
/// <summary> /// Initializes a new instance of the <see cref="PermissionDeniedException"/> class. /// </summary> /// <param name="serviceError">The service error.</param> /// <param name="serviceResponse">The service response.</param> public PermissionDeniedException(ErrorsError serviceError, object serviceResponse) : base(serviceError, serviceResponse) { }
/// <summary> /// Initializes a new instance of the <see cref="ParseErrorException"/> class. /// </summary> /// <param name="serviceError">The service error.</param> /// <param name="serviceResponse">The service response.</param> public ParseErrorException(ErrorsError serviceError, object serviceResponse) : base(serviceError, serviceResponse) { }
/// <summary> /// Initializes a new instance of the <see cref="NoHITsAvailableException"/> class. /// </summary> /// <param name="serviceError">The service error.</param> /// <param name="serviceResponse">The service response.</param> public NoHITsAvailableException(ErrorsError serviceError, object serviceResponse) : base(serviceError, serviceResponse) { }
/// <summary> /// Initializes a new instance of the <see cref="ObjectAlreadyExistsException"/> class. /// </summary> /// <param name="serviceError">The service error.</param> /// <param name="serviceResponse">The service response.</param> public ObjectAlreadyExistsException(ErrorsError serviceError, object serviceResponse) : base(serviceError, serviceResponse) { }
/// <summary> /// Initializes a new instance of the <see cref="QualificationTypeRetryException"/> class. /// </summary> /// <param name="serviceError">The service error.</param> /// <param name="serviceResponse">The service response.</param> public QualificationTypeRetryException(ErrorsError serviceError, object serviceResponse) : base(serviceError, serviceResponse) { }
/// <summary> /// Initializes a new instance of the <see cref="InvalidTransportEndpointException"/> class. /// </summary> /// <param name="serviceError">The service error.</param> /// <param name="serviceResponse">The service response.</param> public InvalidTransportEndpointException(ErrorsError serviceError, object serviceResponse) : base(serviceError, serviceResponse) { }
/// <summary> /// Initializes a new instance of the <see cref="InvalidParameterValueException"/> class. /// </summary> /// <param name="serviceError">The service error.</param> /// <param name="serviceResponse">The service response.</param> public InvalidParameterValueException(ErrorsError serviceError, object serviceResponse) : base(serviceError, serviceResponse) { }
/// <summary> /// Initializes a new instance of the <see cref="InvalidStateException"/> class. /// </summary> /// <param name="serviceError">The service error.</param> /// <param name="serviceResponse">The service response.</param> public InvalidStateException(ErrorsError serviceError, object serviceResponse) : base(serviceError, serviceResponse) { }
/// <summary> /// Initializes a new instance of the <see cref="InsufficientFundsException"/> class. /// </summary> /// <param name="serviceError">The service error.</param> /// <param name="serviceResponse">The service response.</param> public InsufficientFundsException(ErrorsError serviceError, object serviceResponse) : base(serviceError, serviceResponse) { }
/// <summary> /// Processes errors found in a response /// </summary> private static void ProcessErrors(ErrorsError[] errors, object ret, OperationRequest opsReq) { StringBuilder sb = new StringBuilder("Errors for request ID "); sb.Append(opsReq.RequestId); sb.Append(":"); sb.Append(Environment.NewLine); ErrorsError err = null; for (int i = 0; i < errors.Length; i++) { // append error information to generic error message err = errors[i]; sb.Append("Error #"); sb.Append(i + 1); sb.Append(" - "); sb.Append(err.Code); sb.Append(": "); sb.Append(err.Message); // add additional data returned with the error (if any) if (err.Data != null && err.Data.Length > 0) { sb.Append(" (Data: "); for (int j = 0; j < err.Data.Length - 1; j++) { sb.Append("["); sb.Append(err.Data[j].Key); sb.Append("="); sb.Append(err.Data[j].Value); sb.Append("], "); } sb.Append("["); sb.Append(err.Data[err.Data.Length - 1].Key); sb.Append("="); sb.Append(err.Data[err.Data.Length - 1].Value); sb.Append("]"); sb.Append(" )"); } sb.Append(Environment.NewLine); // check for specific exceptions we want to raise if (err.Code != null) { string code = err.Code; if ("AWS.BadCredentialSupplied|AWS.NotAuthorized|AWS.BadClaimsSupplied".IndexOf(code) != -1) { throw new AccessKeyException(err, ret); } if ("AWS.MechanicalTurk.NoMoreWorkableHITsInGroupException|AWS.MechanicalTurk.NoHITsAvailableInGroupException|AWS.MechanicalTurk.NoHITsAvailableForIterator".IndexOf(code) != -1) { throw new NoHITsAvailableException(err, ret); } if ("AWS.MechanicalTurk.QualificationDoesNotExist|AWS.MechanicalTurk.QualificationRequestDoesNotExist|AWS.MechanicalTurk.QualificationTypeDoesNotExist|AWS.MechanicalTurk.AssignmentDoesNotExist|AWS.MechanicalTurk.HITDoesNotExist".IndexOf(code) != -1) { throw new ObjectDoesNotExistException(err, ret); } if ("AWS.MechanicalTurk.InvalidHITState|AWS.MechanicalTurk.InvalidQualificationTypeState|AWS.MechanicalTurk.InvalidQualificationState|AWS.MechanicalTurk.InvalidQualificationRequestState|AWS.MechanicalTurk.InvalidAssignmentState|AWS.MechanicalTurk.HITAlreadyPassedReview".IndexOf(code) != -1) { throw new InvalidStateException(err, ret); } if ("AWS.MechanicalTurk.AssignmentAlreadyExists|AWS.MechanicalTurk.QualificationTypeAlreadyExists|AWS.MechanicalTurk.QualificationAlreadyExists".IndexOf(code) != -1) { throw new ObjectAlreadyExistsException(err, ret); } if ("AWS.MechanicalTurk.PermissionDeniedException|AWS.MechanicalTurk.DoesNotMeetRequirements".IndexOf(code) != -1) { throw new PermissionDeniedException(err, ret); } if ("AWS.MechanicalTurk.QualificationTypeRetryDelayNotElapsed|AWS.MechanicalTurk.QualificationTypeDoesNotAllowRetake".IndexOf(code) != -1) { throw new QualificationTypeRetryException(err, ret); } if ("AWS.MechanicalTurk.XMLParseError|AWS.MechanicalTurk.XHTMLParseError".IndexOf(code) != -1) { throw new ParseErrorException(err, ret); } if ("AWS.MechanicalTurk.InvalidTransportEndpoint".Equals(code)) { throw new InvalidTransportEndpointException(err, ret); } if ("AWS.MechanicalTurk.InvalidParameterValue".Equals(code)) { throw new InvalidParameterValueException(err, ret); } if ("AWS.MechanicalTurk.ExceedsMaxAssignmentsPerWorker".Equals(code)) { throw new ExceedsMaxAssignmentsPerWorkerException(err, ret); } if ("AWS.MechanicalTurk.InsufficientFunds".Equals(code)) { throw new InsufficientFundsException(err, ret); } if ("AWS.MechanicalTurk.HITLayoutDoesNotExist".Equals(code)) { throw new HitLayoutDoesNotExistException(err, ret); } } } throw new ServiceException("AWS.MechanicalTurk.GenericError", sb.ToString(), ret); }
/// <summary> /// Initializes a new instance of the <see cref="HitLayoutDoesNotExistException"/> class. /// </summary> /// <param name="serviceError">The service error.</param> /// <param name="serviceResponse">The service response.</param> public HitLayoutDoesNotExistException(ErrorsError serviceError, object serviceResponse) : base(serviceError, serviceResponse) { }
/// <summary> /// Initializes a new instance of the <see cref="ObjectDoesNotExistException"/> class. /// </summary> /// <param name="serviceError">The service error.</param> /// <param name="serviceResponse">The service response.</param> public ObjectDoesNotExistException(ErrorsError serviceError, object serviceResponse) : base(serviceError, serviceResponse) { }