Esempio n. 1
0
        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);
            }