Пример #1
0
        public static WebResponse SendRequest(IEnvelope xml, System.Configuration.Configuration config)
        {
            var requestString = new StringBuilder();

            var settings = new XmlWriterSettings
            {
                Indent             = true,
                Encoding           = Encoding.UTF8,
                OmitXmlDeclaration = true
            };

            using (var writer = XmlWriter.Create(requestString, settings))
            {
                if (writer == null)
                {
                    throw new Exception("Unable to write to stream.");
                }

                var ns = new XmlSerializerNamespaces();
                ns.Add("urn", "urn:tempuri-org:webservice:Web");
                ns.Add("soapenv", "http://schemas.xmlsoap.org/soap/envelope/");

                var ser = new XmlSerializer(xml.GetType());

                ser.Serialize(writer, xml, ns);
            }

            var requestXml = new XmlDocument();

            requestXml.LoadXml(requestString.ToString());

            var byteData = Encoding.UTF8.GetBytes(requestXml.OuterXml);

            string url = config.AppSettings.Settings["AWWebServiceURL"].Value;
            var    req = (HttpWebRequest)WebRequest.Create(url);

            req.Method        = "POST";
            req.ContentType   = "text/xml";
            req.ContentLength = byteData.Length;
            req.Headers.Add("SOAPAction", "");

            using (var requestStream = req.GetRequestStream())
            {
                requestStream.Write(byteData, 0, byteData.Length);
            }

            WebResponse response;

            try
            {
                response = req.GetResponse();
            }
            catch (WebException ex)
            {
                response = ex.Response;
            }

            return(response);
        }
Пример #2
0
        public void TestITackCRUD()
        {
            IBoards   boards   = GetMockedIBoards();
            IEnvelope envelope = _erector.Container.Resolve <IEnvelope>();

            envelope.ServiceRoute = "ChatMessage";
            IChatMessageEnvelope chatMessageEnvelope = _erector.Container.Resolve <IChatMessageEnvelope>();

            chatMessageEnvelope.ServiceRoute = "ChatMessage";

            //Boards cannot be null.
            ITack nullBoardsTack = new Tack(null);

            try
            {
                IEnvelope envelopeNullBoard = nullBoardsTack.GET(envelope);
                Assert.Fail();
            }
            catch (InvalidOperationException ex)
            {
                string message = ex.Message;
                Assert.AreEqual(message, nullBoardsTack.ExceptionMessage_BoardsCannotBeNull);
            }

            ITack tack = new Tack(boards);

            //Create
            IEnvelope createEnvelope = tack.POST(envelope);

            Assert.IsNotNull(createEnvelope);
            Assert.AreEqual(createEnvelope.ServiceRoute, envelope.ServiceRoute);

            IEnvelope createChatMessageEnvelope = tack.POST(chatMessageEnvelope);

            Assert.IsNotNull(createChatMessageEnvelope);
            Assert.AreEqual(createChatMessageEnvelope.ServiceRoute, envelope.ServiceRoute);
            Assert.IsTrue(createChatMessageEnvelope.GetType() == typeof(ChatMessageEnvelope));

            //Read
            IEnvelope readEnvelope = tack.GET(envelope);

            Assert.IsNotNull(readEnvelope);
            Assert.AreEqual(readEnvelope.ServiceRoute, envelope.ServiceRoute);

            IEnvelope readChatMessageEnvelope = tack.GET(chatMessageEnvelope);

            Assert.IsNotNull(readChatMessageEnvelope);
            Assert.AreEqual(readChatMessageEnvelope.ServiceRoute, envelope.ServiceRoute);
            Assert.IsTrue(readChatMessageEnvelope.GetType() == typeof(ChatMessageEnvelope));

            //Update
            IEnvelope updateEnvelope = tack.PUT(envelope);

            Assert.IsNotNull(updateEnvelope);
            Assert.AreEqual(updateEnvelope.ServiceRoute, envelope.ServiceRoute);

            IEnvelope updateChatMessageEnvelope = tack.PUT(chatMessageEnvelope);

            Assert.IsNotNull(updateChatMessageEnvelope);
            Assert.AreEqual(updateChatMessageEnvelope.ServiceRoute, envelope.ServiceRoute);
            Assert.IsTrue(updateChatMessageEnvelope.GetType() == typeof(ChatMessageEnvelope));

            //Delete
            IEnvelope deleteEnvelope = tack.DELETE(envelope);

            Assert.IsNotNull(deleteEnvelope);
            Assert.AreEqual(deleteEnvelope.ServiceRoute, envelope.ServiceRoute);

            IEnvelope deleteChatMessageEnvelope = tack.DELETE(chatMessageEnvelope);

            Assert.IsNotNull(deleteChatMessageEnvelope);
            Assert.AreEqual(deleteChatMessageEnvelope.ServiceRoute, envelope.ServiceRoute);
            Assert.IsTrue(deleteChatMessageEnvelope.GetType() == typeof(ChatMessageEnvelope));
        }