Sample WebServicesCall CodeActivity for WF4

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
using System.Activities;
using System.Net;
using System.IO;
 
namespace MDM.Workflow.Activities.Core
{
    public class WebServicesCall : CodeActivity<string>
    {
        public InArgument<string> WebRequestUrl { getset; }
        public InArgument<string> SoapIn { getset; }
        public InArgument<string> SoapAction { getset; }
        public InArgument<string> ContentType { getset; }
        public InArgument<string> Accept { getset; }
        public InArgument<string> Method { getset; }
 
        protected override string Execute(CodeActivityContext context)
        {
            string ResponseText;
 
            HttpWebRequest HttpWebRequest1 = (HttpWebRequest)WebRequest.Create(WebRequestUrl.Get(context));
            HttpWebRequest1.Headers.Add("SOAPAction", SoapAction.Get(context));
            HttpWebRequest1.ContentType = ContentType.Get(context);
            HttpWebRequest1.Accept = Accept.Get(context);
            HttpWebRequest1.Method = Method.Get(context);
            HttpWebRequest1.AuthenticationLevel = System.Net.Security.AuthenticationLevel.None;
 
            if ("post" == HttpWebRequest1.Method.ToLower())
            {
                using (Stream RequestStream = HttpWebRequest1.GetRequestStream())
                using (StreamWriter RequestStreamWriter = new StreamWriter(RequestStream))
                    RequestStreamWriter.Write(SoapIn.Get(context));
            }
 
            WebResponse WebResponse1 = HttpWebRequest1.GetResponse();
            using (StreamReader ResponseStreamReader = new StreamReader(WebResponse1.GetResponseStream(), System.Text.Encoding.UTF8, true))
                ResponseText = ResponseStreamReader.ReadToEnd();
 
            return ResponseText;
        }
 
    }
}

Comments