Example #1
0
        private SoapRequestInfo CreateRequestInfo <TRequest>(TRequest actionRequest)
        {
            var requestType = typeof(TRequest);

            if (requestType.GetCustomAttributes(typeof(SoapRequestAttribute), false)
                .FirstOrDefault() is not SoapRequestAttribute soapRequestAttribute)
            {
                throw new SoapRequestAttributeNotFoundException(requestType);
            }

            var requestInfo = new SoapRequestInfo
            {
                Url              = Url,
                Credentials      = Credentials,
                Action           = actionRequest,
                ActionName       = soapRequestAttribute.Name,
                ServiceNameSpace = soapRequestAttribute.NameSpace
            };

            var propertyMappings = (from property in requestType.GetProperties()
                                    let attribute = property.GetCustomAttribute <SoapRequestFieldAttribute>(false)
                                                    where attribute != null
                                                    select new PropertyFieldMapping {
                FieldName = attribute.Name, Property = property
            }).ToArray();

            requestInfo.PropertyMappings = propertyMappings;

            return(requestInfo);
        }
Example #2
0
        private IHttpWebRequest CreateHttpWebRequest(SoapRequestInfo soapRequestInfo)
        {
            var httpWebRequest = SoapHttpWebRequestCreator.Create(soapRequestInfo, _webRequestFactory);

            OnConfigureHttpWebRequest(httpWebRequest);
            return(httpWebRequest);
        }