public Response ValidateMerchantAccount(Request request) { string methodName = "ValidateMerchantAccount"; // Convert request ValidateMerchantAccountRequest validateRequest = null; try { validateRequest = ValidateMerchantAccountRequest.ConvertFrom(request); } catch (SampleException ex) { return(PaymentUtilities.CreateAndLogResponseForReturn(methodName, this.Name, Platform, locale: request == null ? null : request.Locale, properties: null, errors: ex.Errors)); } // Validate merchant account List <PaymentError> errors = new List <PaymentError>(); ValidateMerchantProperties(validateRequest, errors); if (errors.Count > 0) { return(PaymentUtilities.CreateAndLogResponseForReturn(methodName, this.Name, Platform, validateRequest.Locale, errors)); } // Create response var validateResponse = new ValidateMerchantAccountResponse(validateRequest.Locale, validateRequest.ServiceAccountId, this.Name); // Convert response and return Response response = ValidateMerchantAccountResponse.ConvertTo(validateResponse); PaymentUtilities.LogResponseBeforeReturn(methodName, this.Name, Platform, response); return(response); }
internal static ValidateMerchantAccountRequest ConvertFrom(Request request) { var validateRequest = new ValidateMerchantAccountRequest(); var errors = new List <PaymentError>(); validateRequest.ReadBaseProperties(request, errors); foreach (PaymentProperty property in request.Properties) { if (property.Namespace != GenericNamespace.MerchantAccount) { errors.Add(new PaymentError(ErrorCode.InvalidMerchantProperty, string.Format("Invalid namespace {0} for property {1}", property.Namespace, property.Name))); } else if (!SampleMerchantAccountProperty.ArrayList.Contains(property.Name)) { errors.Add(new PaymentError(ErrorCode.InvalidMerchantProperty, string.Format("Invalid property {0}", property.Name))); } } if (errors.Count > 0) { throw new SampleException(errors); } return(validateRequest); }