Example #1
0
        public static GovTalkMessageEntity CreateBaseRequest(String serviceName, BaseMessageEntity message)
        {
            var auth = new AuthenticationEntity
            {
                Method = "clear",
                Value  = ConfigurationManager.AppSettings["GovTalkPassword"]
            };

            var idAuth = new IDAuthenticationEntity
            {
                SenderID       = ConfigurationManager.AppSettings["GovTalkUserName"],
                Authentication = auth,
            };

            var senderDetails = new SenderDetailsEntity
            {
                EmailAddress     = "nomail",
                IDAuthentication = idAuth,
            };

            var messageDetails = new MessageDetailsEntity
            {
                Class         = serviceName,
                Function      = "submit",
                Qualifier     = "request",
                CorrelationID = "cor",
            };

            var header = new HeaderEntity
            {
                SenderDetails  = senderDetails,
                MessageDetails = messageDetails,
            };

            var body = new BodyEntity
            {
                Entity = message,
            };

            var error = new ErrorEntity
            {
                EnvelopeVersion = "369.25",
                Number          = 2695,
                RaisedBy        = "me",
                Text            = "Exception",
                Type            = "TypedError"
            };

            var govTalkMessage = new GovTalkMessageEntity
            {
                EnvelopeVersion = 2.0M,
                Header          = header,
                Body            = body,
            };

            return(govTalkMessage);
        }
Example #2
0
        public static byte[] Serialize(GovTalkMessageEntity entity)
        {
            using (var stream = new MemoryStream())
            {
                using (var writer = new StreamWriter(stream, Encoding.UTF8))
                {
                    var ns = new XmlSerializerNamespaces();
                    ns.Add("", "http://www.govtalk.gov.uk/CM/envelope");

                    var xmlSer = new XmlSerializer(typeof(GovTalkMessageEntity));
                    xmlSer.Serialize(writer, entity, ns);

                    return(stream.ToArray());
                }
            }
        }
Example #3
0
        public static GovTalkMessageEntity SendRequest(GovTalkMessageEntity requestEntity)
        {
            var serviceUrl = GetServiceUrl();

            if (String.IsNullOrWhiteSpace(serviceUrl))
            {
                throw new Exception();
            }

            using (var client = new WebClient())
            {
                var requestBytes = Serialize(requestEntity);
                LogXml("Req", requestBytes);

                var responseBytes = client.UploadData(serviceUrl, requestBytes);
                LogXml("Res", responseBytes);

                var responseEntity = Deserialize(responseBytes);
                return(responseEntity);
            }
        }