Пример #1
0
        public WfServiceOperationDefinition AddCompensationService(WfServiceAddressDefinition address, string operationName)
        {
            address.NullCheck("address");
            operationName.CheckStringIsNullOrEmpty("operationName");

            return(this.CompensationServices.Append(new WfServiceOperationDefinition(address, operationName)));
        }
Пример #2
0
        private static JobBase CreateInvokeServiceJob()
        {
            InvokeWebServiceJob job = new InvokeWebServiceJob();

            job.JobID = UuidHelper.NewUuidString();

            job.Name                 = "即时服务调用";
            job.SvcOperationDefs     = new WfServiceOperationDefinitionCollection();
            job.LastStartExecuteTime = DateTime.Now.AddMinutes(-5);
            job.Category             = "单元测试";

            WfServiceAddressDefinition address = new WfServiceAddressDefinition(WfServiceRequestMethod.Post,
                                                                                null,
                                                                                "http://localhost/MCSWebApp/PermissionCenterServices/Services/PermissionCenterToADService.asmx");

            WfServiceOperationParameterCollection parameters = new WfServiceOperationParameterCollection();

            parameters.Add(new WfServiceOperationParameter()
            {
                Name = "callerID", Type = WfSvcOperationParameterType.RuntimeParameter, Value = "callerID"
            });

            WfServiceOperationDefinition serviceDef = new WfServiceOperationDefinition(address, "GetVersion", parameters, string.Empty);

            serviceDef.RtnXmlStoreParamName = "Version";
            serviceDef.Timeout = TimeSpan.FromSeconds(30);
            job.SvcOperationDefs.Add(serviceDef);

            return(job);
        }
Пример #3
0
        protected void buttonCallBranchProcess_Click(object sender, EventArgs e)
        {
            WfServiceAddressDefinition address = new WfServiceAddressDefinition(WfServiceRequestMethod.Post,
                                                                                "http://localhost/MCSWebApp/WfFormTemplate/Services/WfProcessService.svc",
                                                                                WfServiceContentType.Json);

            WfServiceOperationDefinition definition = new WfServiceOperationDefinition(address, "StartBranchProcesses");

            WfServiceOperationParameter p1 = new WfServiceOperationParameter("ownerActivityID", UuidHelper.NewUuidString());

            IWfBranchProcessTemplateDescriptor template       = new WfBranchProcessTemplateDescriptor("Test");
            WfBranchProcessTransferParams      transferParams = new WfBranchProcessTransferParams(template);

            WfServiceOperationParameter p2 = new WfServiceOperationParameter("branchTransferParams", WfSvcOperationParameterType.RuntimeParameter, "transferParams");

            definition.Params.Add(p1);
            definition.Params.Add(p2);

            WfServiceInvoker invoker = new WfServiceInvoker(definition);

            WfServiceInvoker.InvokeContext["transferParams"] = transferParams;

            object result = invoker.Invoke();

            resultLabel.Text = Server.HtmlEncode(result.ToString());
        }
		protected void buttonCallBranchProcess_Click(object sender, EventArgs e)
		{
			WfServiceAddressDefinition address = new WfServiceAddressDefinition(WfServiceRequestMethod.Post,
				"http://localhost/MCSWebApp/WfFormTemplate/Services/WfProcessService.svc",
				WfServiceContentType.Json);

			WfServiceOperationDefinition definition = new WfServiceOperationDefinition(address, "StartBranchProcesses");

			WfServiceOperationParameter p1 = new WfServiceOperationParameter("ownerActivityID", UuidHelper.NewUuidString());

			IWfBranchProcessTemplateDescriptor template = new WfBranchProcessTemplateDescriptor("Test");
			WfBranchProcessTransferParams transferParams = new WfBranchProcessTransferParams(template);

			WfServiceOperationParameter p2 = new WfServiceOperationParameter("branchTransferParams", WfSvcOperationParameterType.RuntimeParameter, "transferParams");

			definition.Params.Add(p1);
			definition.Params.Add(p2);

			WfServiceInvoker invoker = new WfServiceInvoker(definition);

			WfServiceInvoker.InvokeContext["transferParams"] = transferParams;

			object result = invoker.Invoke();

			resultLabel.Text = Server.HtmlEncode(result.ToString());
		}
Пример #5
0
        protected void btnConfirm_Click(object sender, EventArgs e)
        {
            try
            {
                string key                     = this.opKey.Value.Trim();
                string address                 = this.txtServiceAddress.Text.Trim();
                string requestMethod           = this.dropSendType.SelectedValue;
                string credentialKey           = this.dropCredential.SelectedValue;
                WfNetworkCredential credential = new WfNetworkCredential();

                WfGlobalParameters         parameters     = WfGlobalParameters.LoadProperties(ParametersKey);
                WfServiceAddressDefinition serviceAddress = parameters.ServiceAddressDefs[key];

                if (serviceAddress == null)
                {
                    serviceAddress = new WfServiceAddressDefinition();
                }

                serviceAddress.Key           = key;
                serviceAddress.Address       = address;
                serviceAddress.RequestMethod = (WfServiceRequestMethod)Enum.Parse(typeof(WfServiceRequestMethod), requestMethod);
                serviceAddress.ContentType   = (WfServiceContentType)Enum.Parse(typeof(WfServiceContentType), this.ddlContentType.SelectedValue);
                serviceAddress.Credential    = parameters.Credentials.FirstOrDefault(p => p.Key == credentialKey);

                parameters.ServiceAddressDefs.Remove(p => p.Key == serviceAddress.Key);
                parameters.ServiceAddressDefs.Add(serviceAddress);
                parameters.Update();
                WebUtility.RefreshParentWindow();
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
		protected void btnConfirm_Click(object sender, EventArgs e)
		{
			try
			{
				string key = this.opKey.Value.Trim();
				string address = this.txtServiceAddress.Text.Trim();
				string requestMethod = this.dropSendType.SelectedValue;
				string credentialKey = this.dropCredential.SelectedValue;
				WfNetworkCredential credential = new WfNetworkCredential();

				WfGlobalParameters parameters = WfGlobalParameters.LoadProperties(ParametersKey);
				WfServiceAddressDefinition serviceAddress = parameters.ServiceAddressDefs[key];

				if (serviceAddress == null)
				{
					serviceAddress = new WfServiceAddressDefinition();
				}

				serviceAddress.Key = key;
				serviceAddress.Address = address;
				serviceAddress.RequestMethod = (WfServiceRequestMethod)Enum.Parse(typeof(WfServiceRequestMethod), requestMethod);
				serviceAddress.ContentType = (WfServiceContentType)Enum.Parse(typeof(WfServiceContentType), this.ddlContentType.SelectedValue);
				serviceAddress.Credential = parameters.Credentials.FirstOrDefault(p => p.Key == credentialKey);

				parameters.ServiceAddressDefs.Remove(p => p.Key == serviceAddress.Key);
				parameters.ServiceAddressDefs.Add(serviceAddress);
				parameters.Update();
				WebUtility.RefreshParentWindow();
			}
			catch (Exception ex)
			{
				throw ex;
			}
		}
Пример #7
0
        public void WcfServiceTest()
        {
            WfNetworkCredential credential = new WfNetworkCredential();
            string url        = @"http://localhost/MCSWebApp/WcfServiceDemo/Service1.svc";
            string addressKey = "testaddress";
            WfServiceAddressDefinition addressDef =
                new WfServiceAddressDefinition(WfServiceRequestMethod.Post, credential, url);

            addressDef.Key         = addressKey;
            addressDef.ContentType = WfServiceContentType.Json;

            WfGlobalParameters.Default.ServiceAddressDefs.Add(addressDef);

            string paraVal = @"{""BoolValue"":""true"",""StringValue"":""test""}";
            WfServiceOperationParameter operationParam =
                new WfServiceOperationParameter()
            {
                Name = "composite", Type = WfSvcOperationParameterType.String, Value = paraVal
            };
            WfServiceOperationDefinition operationDef =
                new WfServiceOperationDefinition(addressKey, "PostContract", new WfServiceOperationParameterCollection()
            {
                operationParam
            }, "");
            WfServiceInvoker invoker = new WfServiceInvoker(operationDef);
            var result = invoker.Invoke();

            Console.WriteLine(result.ToString());
        }
Пример #8
0
 private void SetHiddenJsonData()
 {
     try
     {
         string Key = MCS.Web.Library.WebUtility.GetRequestParamString("key", string.Empty);
         if (!string.IsNullOrEmpty(Key))
         {
             WfGlobalParameters         parameters = WfGlobalParameters.LoadProperties(ParametersKey);
             WfServiceAddressDefinition def        = parameters.ServiceAddressDefs[Key];
             if (def == null)
             {
                 return;
             }
             //hidResultData.Value = JSONSerializerExecute.Serialize(parameters.ServiceAddressDefs.Find(p=>p.Address==Key));
             this.opKey.Value                  = def.Key;
             this.opKey.Disabled               = true;
             this.txtServiceAddress.Text       = def.Address;
             this.dropCredential.SelectedValue = def.Credential == null ? "" : def.Credential.Key;
             this.dropSendType.SelectedValue   = def.RequestMethod.ToString();
             this.ddlContentType.SelectedValue = def.ContentType.ToString();
         }
     }
     catch (Exception ex)
     {
         WebUtility.ShowClientError(ex.Message, ex.StackTrace, "错误");
     }
 }
Пример #9
0
        private WfServiceOperationDefinition GetWfServiceOperationDefinition(string functionName, string servicAddressKey)
        {
            WfServiceAddressDefinition serviceAddressDef = WfGlobalParameters.Default.ServiceAddressDefs[servicAddressKey];
            string addressUri = GetWsdlUrl(serviceAddressDef.Address);

            WebClient wc = new WebClient();

            using (Stream stream = wc.OpenRead(addressUri))
            {
                ServiceDescription sd            = ServiceDescription.Read(stream);
                Binding            targetBinding = GetBinding(sd, serviceAddressDef.RequestMethod);

                if (targetBinding == null && serviceAddressDef.RequestMethod == WfServiceRequestMethod.Post)
                {
                    targetBinding = GetPostableBinding(sd);
                }

                if (targetBinding == null)
                {
                    throw new NotImplementedException("服务不支持此种操作类型" + serviceAddressDef.RequestMethod.ToString());
                }

                Operation operation = GetOperation(sd, targetBinding, functionName);

                WfServiceOperationParameterCollection reqParameters = GetOperationParams(sd, operation);

                WfServiceOperationDefinition operationDef =
                    new WfServiceOperationDefinition(serviceAddressDef.Key, functionName, reqParameters, string.Empty);

                return(operationDef);
            }
        }
		public WfServiceInvokerFactory()
		{
			Url = @"http://localhost/MCSWebApp/WebTestProject/Services/ProcessTestService.asmx";
			ParaList = new WfServiceOperationParameterCollection();
			Credential = new WfNetworkCredential();
			AddressDef = new WfServiceAddressDefinition(WfServiceRequestMethod.Get,
				Credential, Url);
			AddressDef.Key = Guid.NewGuid().ToString();
			WfGlobalParameters.Default.ServiceAddressDefs.Add(AddressDef);
			AddressDef.ServiceNS = @"http://tempuri.org/";
			SvcOpDef = new WfServiceOperationDefinition(AddressDef.Key, Operation, ParaList, "");
		}
Пример #11
0
 public WfServiceInvokerFactory()
 {
     Url        = @"http://localhost/MCSWebApp/WebTestProject/Services/ProcessTestService.asmx";
     ParaList   = new WfServiceOperationParameterCollection();
     Credential = new WfNetworkCredential();
     AddressDef = new WfServiceAddressDefinition(WfServiceRequestMethod.Get,
                                                 Credential, Url);
     AddressDef.Key = Guid.NewGuid().ToString();
     WfGlobalParameters.Default.ServiceAddressDefs.Add(AddressDef);
     AddressDef.ServiceNS = @"http://tempuri.org/";
     SvcOpDef             = new WfServiceOperationDefinition(AddressDef.Key, Operation, ParaList, "");
 }
		protected void buttonGetServiceName_Click(object sender, EventArgs e)
		{
			WfServiceAddressDefinition address = new WfServiceAddressDefinition(WfServiceRequestMethod.Post,
				"http://localhost/MCSWebApp/WfFormTemplate/Services/WfProcessService.svc",
				WfServiceContentType.Json);

			WfServiceOperationDefinition definition = new WfServiceOperationDefinition(address, "GetServerTime");
			WfServiceInvoker invoker = new WfServiceInvoker(definition);

			object result = invoker.Invoke();

			resultLabel.Text = Server.HtmlEncode(result.ToString());
		}
		protected virtual void InitServiceDefinitions()
		{
			WfServiceAddressDefinition address = new WfServiceAddressDefinition(WfServiceRequestMethod.Post, string.Empty, WfServiceContentType.Json);
			this.PrepareAddress(address);

			WfServiceOperationParameterCollection parameters = new WfServiceOperationParameterCollection();

			WfServiceOperationDefinition definition = new WfServiceOperationDefinition(address, this.GetOperationName(), parameters, "returnValue");

			this.PrepareParameters(parameters);

			this.SvcOperationDefs.Add(definition);
		}
Пример #14
0
        protected void buttonGetServiceName_Click(object sender, EventArgs e)
        {
            WfServiceAddressDefinition address = new WfServiceAddressDefinition(WfServiceRequestMethod.Post,
                                                                                "http://localhost/MCSWebApp/WfFormTemplate/Services/WfProcessService.svc",
                                                                                WfServiceContentType.Json);

            WfServiceOperationDefinition definition = new WfServiceOperationDefinition(address, "GetServerTime");
            WfServiceInvoker             invoker    = new WfServiceInvoker(definition);

            object result = invoker.Invoke();

            resultLabel.Text = Server.HtmlEncode(result.ToString());
        }
        protected virtual void InitServiceDefinitions()
        {
            WfServiceAddressDefinition address = new WfServiceAddressDefinition(WfServiceRequestMethod.Post, string.Empty, WfServiceContentType.Json);

            this.PrepareAddress(address);

            WfServiceOperationParameterCollection parameters = new WfServiceOperationParameterCollection();

            WfServiceOperationDefinition definition = new WfServiceOperationDefinition(address, this.GetOperationName(), parameters, "returnValue");

            this.PrepareParameters(parameters);

            this.SvcOperationDefs.Add(definition);
        }
        public static void AreEqual(this WfServiceAddressDefinition actual, WfServiceAddressDefinitionConfigurationElement element)
        {
            if (actual == null && element == null)
            {
                return;
            }

            Assert.AreEqual(actual.RequestMethod, element.RequestMethod);
            Assert.AreEqual(actual.ContentType, element.ContentType);

            AssertStringEqual(actual.Address, element.Uri.ToUriString());

            actual.Credential.AreEqual(element.Identity);
        }
		public override object Deserialize(IDictionary<string, object> dictionary, Type type, JavaScriptSerializer serializer)
		{
			WfServiceAddressDefinition svcAddressDef = new WfServiceAddressDefinition();
			svcAddressDef.Key = DictionaryHelper.GetValue(dictionary, "Key", string.Empty);
			svcAddressDef.Address = DictionaryHelper.GetValue(dictionary, "Address", string.Empty);
			svcAddressDef.ServiceNS = DictionaryHelper.GetValue(dictionary, "ServiceNS", string.Empty);
			svcAddressDef.RequestMethod = DictionaryHelper.GetValue(dictionary, "RequestMethod", WfServiceRequestMethod.Get);
			svcAddressDef.ContentType = DictionaryHelper.GetValue(dictionary, "ContentType", WfServiceContentType.Form);

			if (dictionary.ContainsKey("Credential"))
			{
				svcAddressDef.Credential = JSONSerializerExecute.Deserialize<WfNetworkCredential>(dictionary["Credential"]);
			}

			return svcAddressDef;
		}
Пример #18
0
        internal static InvokeWebServiceJob CreateImmediateJob(string jobID, string name, string category, string url, string methodName, WfServiceOperationParameterCollection parameters)
        {
            InvokeWebServiceJob job = new InvokeWebServiceJob();

            job.JobID    = jobID;
            job.Category = category;

            job.Name             = name;
            job.SvcOperationDefs = new WfServiceOperationDefinitionCollection();

            WfServiceAddressDefinition address = new WfServiceAddressDefinition(WfServiceRequestMethod.Post, null, url);

            WfServiceOperationDefinition serviceDef = new WfServiceOperationDefinition(address, methodName, parameters, string.Empty);

            serviceDef.Timeout = TimeSpan.FromSeconds(24 * 60 * 60);
            job.SvcOperationDefs.Add(serviceDef);

            return(job);
        }
Пример #19
0
        private List <string> GetOperationList(string addressKey)
        {
            List <string> result = new List <string>();
            WfServiceAddressDefinition serviceAddressDef = WfGlobalParameters.Default.ServiceAddressDefs[addressKey];
            string addressUri = GetWsdlUrl(serviceAddressDef.Address);

            WebClient wc = new WebClient();

            if (serviceAddressDef.Credential != null)
            {
                wc.Credentials = (NetworkCredential)serviceAddressDef.Credential;
            }

            using (Stream stream = wc.OpenRead(addressUri))
            {
                ServiceDescription sd            = ServiceDescription.Read(stream);
                Binding            targetBinding = GetBinding(sd, serviceAddressDef.RequestMethod);

                if (targetBinding == null && serviceAddressDef.RequestMethod == WfServiceRequestMethod.Post)
                {
                    targetBinding = GetPostableBinding(sd);
                }

                if (targetBinding == null)
                {
                    return(result);
                }

                PortType portType = sd.PortTypes[targetBinding.Type.Name];
                foreach (Operation op in portType.Operations)
                {
                    result.Add(op.Name);
                }
                return(result);
            }
        }
		public void WcfServiceTest()
		{
			WfNetworkCredential credential = new WfNetworkCredential();
			string url = @"http://localhost/MCSWebApp/WcfServiceDemo/Service1.svc";
			string addressKey = "testaddress";
			WfServiceAddressDefinition addressDef =
				new WfServiceAddressDefinition(WfServiceRequestMethod.Post, credential, url);
			addressDef.Key = addressKey;
			addressDef.ContentType = WfServiceContentType.Json;

			WfGlobalParameters.Default.ServiceAddressDefs.Add(addressDef);

			string paraVal = @"{""BoolValue"":""true"",""StringValue"":""test""}";
			WfServiceOperationParameter operationParam =
				new WfServiceOperationParameter() { Name = "composite", Type = WfSvcOperationParameterType.String, Value = paraVal };
			WfServiceOperationDefinition operationDef =
				new WfServiceOperationDefinition(addressKey, "PostContract", new WfServiceOperationParameterCollection() { operationParam }, "");
			WfServiceInvoker invoker = new WfServiceInvoker(operationDef);
			var result = invoker.Invoke();
			Console.WriteLine(result.ToString());
		}
Пример #21
0
		private static JobBase CreateInvokeServiceJob()
		{
			InvokeWebServiceJob job = new InvokeWebServiceJob();

			job.JobID = UuidHelper.NewUuidString();

			job.Name = "即时服务调用";
			job.SvcOperationDefs = new WfServiceOperationDefinitionCollection();
			job.LastStartExecuteTime = DateTime.Now.AddMinutes(-5);
			job.Category = "单元测试";

			WfServiceAddressDefinition address = new WfServiceAddressDefinition(WfServiceRequestMethod.Post,
				null,
				"http://localhost/MCSWebApp/PermissionCenterServices/Services/PermissionCenterToADService.asmx");

			WfServiceOperationParameterCollection parameters = new WfServiceOperationParameterCollection();

			parameters.Add(new WfServiceOperationParameter() { Name = "callerID", Type = WfSvcOperationParameterType.RuntimeParameter, Value = "callerID" });

			WfServiceOperationDefinition serviceDef = new WfServiceOperationDefinition(address, "GetVersion", parameters, string.Empty);

			serviceDef.RtnXmlStoreParamName = "Version";
			serviceDef.Timeout = TimeSpan.FromSeconds(30);
			job.SvcOperationDefs.Add(serviceDef);

			return job;
		}
		protected virtual void PrepareAddress(WfServiceAddressDefinition address)
		{
			address.Address = ResourceUriSettings.GetConfig().Paths.CheckAndGet("wfProcessService").Uri.ToUriString();
		}
 protected virtual void PrepareAddress(WfServiceAddressDefinition address)
 {
     address.Address = ResourceUriSettings.GetConfig().Paths.CheckAndGet("wfProcessService").Uri.ToUriString();
 }
Пример #24
0
        internal static InvokeWebServiceJob CreateImmediateJob(string jobID, string name, string category, string url, string methodName, WfServiceOperationParameterCollection parameters)
        {
            InvokeWebServiceJob job = new InvokeWebServiceJob();

            job.JobID = jobID;
            job.Category = category;

            job.Name = name;
            job.SvcOperationDefs = new WfServiceOperationDefinitionCollection();

            WfServiceAddressDefinition address = new WfServiceAddressDefinition(WfServiceRequestMethod.Post, null, url);

            WfServiceOperationDefinition serviceDef = new WfServiceOperationDefinition(address, methodName, parameters, string.Empty);

            serviceDef.Timeout = TimeSpan.FromSeconds(24 * 60 * 60);
            job.SvcOperationDefs.Add(serviceDef);

            return job;
        }