public virtual void DoModifyFileOperations(string rootPath, MaterialFileOeprationInfo fileOperation, MaterialContent content) { var task = new InvokeServiceTask() { TaskID = UuidHelper.NewUuidString(), TaskTitle = string.Format(this.taskTitleTemplate, fileOperation.Material.OriginalName, fileOperation.Material.ID), }; var parameters = new WfServiceOperationParameterCollection { new WfServiceOperationParameter("rootPath", rootPath), new WfServiceOperationParameter("fileOperation", fileOperation.Operation.ToString()), new WfServiceOperationParameter("materialConnectionName", DbConnectionMappingContext.GetMappedConnectionName(MaterialAdapter.Instance.GetConnectionName())), new WfServiceOperationParameter("contentConnectionName", DbConnectionMappingContext.GetMappedConnectionName(MaterialContentAdapter.Instance.ConnectionName)), new WfServiceOperationParameter("materialId", fileOperation.Material.ID), new WfServiceOperationParameter("url", fileOperation.Material.ShowFileUrl) }; task.SvcOperationDefs.Add(new WfServiceOperationDefinition( new WfServiceAddressDefinition(WfServiceRequestMethod.Post, null, ResourceUriSettings.GetConfig().Paths[this.resourceUri].Uri.ToString()), "DoFileToDocService", parameters, "ReturnValue") ); DbConnectionMappingContext.DoMappingAction( DbConnectionMappingContext.GetMappedConnectionName(InvokeServiceTaskAdapter.Instance.ConnectionName), InvokeServiceTaskAdapter.Instance.ConnectionName, () => { InvokeServiceTaskAdapter.Instance.Update(task); }); }
public virtual void DoModifyFileOperations(string rootPath, MaterialFileOeprationInfo fileOperation, MaterialContent content) { var task = new InvokeServiceTask() { TaskID = UuidHelper.NewUuidString(), TaskTitle = string.Format(this.taskTitleTemplate, fileOperation.Material.OriginalName, fileOperation.Material.ID), }; var parameters = new WfServiceOperationParameterCollection { new WfServiceOperationParameter("rootPath", rootPath), new WfServiceOperationParameter("fileOperation", fileOperation.Operation.ToString()), new WfServiceOperationParameter("materialConnectionName", DbConnectionMappingContext.GetMappedConnectionName(MaterialAdapter.Instance.GetConnectionName())), new WfServiceOperationParameter("contentConnectionName", DbConnectionMappingContext.GetMappedConnectionName(MaterialContentAdapter.Instance.ConnectionName)), new WfServiceOperationParameter("materialId", fileOperation.Material.ID), new WfServiceOperationParameter("url", fileOperation.Material.ShowFileUrl) }; task.SvcOperationDefs.Add(new WfServiceOperationDefinition( new WfServiceAddressDefinition(WfServiceRequestMethod.Post, null, ResourceUriSettings.GetConfig().Paths[this.resourceUri].Uri.ToString()), "DoFileToDocService", parameters, "ReturnValue") ); DbConnectionMappingContext.DoMappingAction( DbConnectionMappingContext.GetMappedConnectionName(InvokeServiceTaskAdapter.Instance.ConnectionName), InvokeServiceTaskAdapter.Instance.ConnectionName, () => { InvokeServiceTaskAdapter.Instance.Update(task); }); }
protected override void OnExecute(SysTask task) { InvokeServiceTask invokeServiceTask = new InvokeServiceTask(task); WfServiceInvoker.InvokeContext.Clear(); WfServiceInvoker.InvokeContext.CopyFrom(invokeServiceTask.Context); foreach (WfServiceOperationDefinition svcDefinition in invokeServiceTask.SvcOperationDefs) { WfServiceInvoker svcInvoker = new WfServiceInvoker(svcDefinition); svcInvoker.Headers.Set("SysTaskID", task.TaskID); svcInvoker.Invoke(); } }
public void InvokeServiceTaskPersistTest() { DO.InvokeServiceTask task = PrepareTask(); DO.InvokeServiceTaskAdapter.Instance.Update(task); DO.InvokeServiceTask taskLoaded = (DO.InvokeServiceTask)DO.InvokeServiceTaskAdapter.Instance.Load(task.TaskID); Assert.IsNotNull(taskLoaded); Assert.IsTrue(taskLoaded.Data.IsNotEmpty()); Assert.AreEqual(task.TaskID, taskLoaded.TaskID); Assert.AreEqual(task.TaskTitle, taskLoaded.TaskTitle); Assert.AreEqual(task.SvcOperationDefs.Count, taskLoaded.SvcOperationDefs.Count); Assert.AreEqual(task.SvcOperationDefs[0].AddressDef.Address, taskLoaded.SvcOperationDefs[0].AddressDef.Address); Assert.AreEqual(task.Context.Count, taskLoaded.Context.Count); }
private static InvokeServiceTask PrepareTask() { string url = "http://localhost/MCSWebApp/PermissionCenterServices/services/PermissionCenterToADService.asmx"; DO.InvokeServiceTask task = new DO.InvokeServiceTask() { TaskID = UuidHelper.NewUuidString(), TaskTitle = "新任务", }; WfServiceOperationParameterCollection parameters = new WfServiceOperationParameterCollection(); parameters.Add(new WfServiceOperationParameter("callerID", "InvokeServiceTaskPersistTest")); task.SvcOperationDefs.Add(new Workflow.WfServiceOperationDefinition( new Workflow.WfServiceAddressDefinition(WfServiceRequestMethod.Post, null, url), "GetVersion", parameters, "ReturnValue") ); return(task); }
public void InvokeServiceTaskExecuteTest() { DO.InvokeServiceTask task = PrepareTask(); DO.InvokeServiceTaskAdapter.Instance.Update(task); DO.SysTask taskLoaded = DO.SysTaskAdapter.Instance.Load(task.TaskID); ISysTaskExecutor executor = SysTaskSettings.GetSettings().GetExecutor(taskLoaded.TaskType); executor.Execute(taskLoaded); Console.WriteLine(WfServiceInvoker.InvokeContext[task.SvcOperationDefs.FirstOrDefault().RtnXmlStoreParamName]); SysAccomplishedTask accomplishedTask = SysAccomplishedTaskAdapter.Instance.Load(taskLoaded.TaskID); Assert.IsNotNull(accomplishedTask); Assert.AreEqual(taskLoaded.Data, accomplishedTask.Data); Console.WriteLine(accomplishedTask.StatusText); }
private static InvokeServiceTask PrepareTask() { string url = "http://localhost/MCSWebApp/PermissionCenterServices/services/PermissionCenterToADService.asmx"; DO.InvokeServiceTask task = new DO.InvokeServiceTask() { TaskID = UuidHelper.NewUuidString(), TaskTitle = "新任务", }; WfServiceOperationParameterCollection parameters = new WfServiceOperationParameterCollection(); parameters.Add(new WfServiceOperationParameter("callerID", "InvokeServiceTaskPersistTest")); task.SvcOperationDefs.Add(new Workflow.WfServiceOperationDefinition( new Workflow.WfServiceAddressDefinition(WfServiceRequestMethod.Post, null, url), "GetVersion", parameters, "ReturnValue") ); return task; }