public void WorkflowContinue() { var service = GetService(); var context = new WorkflowContextData(Guid.Empty, UserId); Guid userAction = Guid.NewGuid(); service.WorkflowContinueWithUserAction(context, userAction); }
public WorkflowContextData WorkflowContinueWithUploadFile(WorkflowContextData contextData, byte[] uploadData, string fileName) { var context = new WorkflowContext(contextData, Provider); if (contextData != null) { context.UploadFileReturn(uploadData, fileName); } return(WorkflowEngine.Continue(contextData)); }
/// <summary> /// Продолжение выполнения бизнес-процесса /// </summary> /// <param name="contextData">Контекст выполнения бизнес-процесса</param> /// <returns>Контекст выполнения бизнес-процесса</returns> public WorkflowContextData WorkflowContinue(WorkflowContextData contextData) { var context = new WorkflowContext(contextData, Provider); if (contextData != null) { context.ShowReturn(null); } return(WorkflowEngine.Continue(contextData)); }
/// <summary> /// Продолжение выполнения бизнес-процесса с учетом документа /// </summary> /// <param name="contextData">Контекст выполнения бизнес-процесса</param> /// <param name="document">Документ</param> /// <returns>Контекст выполнения бизнес-процесса</returns> public WorkflowContextData WorkflowContinueWithDocument(WorkflowContextData contextData, Doc document) { if (contextData != null) { var context = new WorkflowContext(contextData, Provider); contextData.SelectedDocument = document; context.ShowSelectReturn(document != null ? document.Id : Guid.Empty); } return(WorkflowEngine.Continue(contextData)); }
/// <summary> /// Продолжение выполнения бизнес-процесса с учетом документа /// </summary> /// <param name="contextData">Контекст выполнения бизнес-процесса</param> /// <param name="docId">Идентификатор документа</param> /// <returns>Контекст выполнения бизнес-процесса</returns> public WorkflowContextData WorkflowContinueWithDocumentId(WorkflowContextData contextData, Guid docId) { var context = new WorkflowContext(contextData, Provider); if (contextData != null) { context.ShowSelectReturn(docId); } return(WorkflowEngine.Continue(contextData)); }
/// <summary> /// Продолжение выполнения бизнес-процесса с учетом пользовательского действия /// </summary> /// <param name="contextData">Контекст выполнения бизнес-процесса</param> /// <param name="userAction">Идентификатор пользовательского действия</param> /// <returns>Контекст выполнения бизнес-процесса</returns> public WorkflowContextData WorkflowContinueWithUserAction(WorkflowContextData contextData, Guid userAction /*, Guid? forDocId */) { var context = new WorkflowContext(contextData, Provider); if (contextData != null) { context.ShowReturn(userAction); } return(WorkflowEngine.Continue(contextData)); }
public ExternalProcessExecuteResult Launch(string serviceUrl, string userName, string password, string processName, WorkflowContextData contextData) { var binding = new WSHttpBinding(SecurityMode.Message); binding.Security.Message.ClientCredentialType = MessageCredentialType.UserName; binding.MessageEncoding = WSMessageEncoding.Mtom; binding.SendTimeout = new TimeSpan(0, 10, 0); binding.OpenTimeout = new TimeSpan(0, 10, 0); binding.MaxReceivedMessageSize = 1024 * 1024 * 1024; var uri = new Uri(serviceUrl); var endpoint = //new EndpointAddress(serviceUrl); new EndpointAddress(uri, EndpointIdentity.CreateDnsIdentity("localhost")); var channelFactory = new ChannelFactory <IWorkflowManager>(binding, endpoint); if (channelFactory.Credentials != null) { channelFactory.Credentials.UserName.UserName = userName; channelFactory.Credentials.UserName.Password = password; channelFactory.Credentials.ServiceCertificate.SetDefaultCertificate( StoreLocation.LocalMachine, StoreName.TrustedPeople, X509FindType.FindBySubjectName, "localhost"); } IWorkflowManager client = null; try { client = channelFactory.CreateChannel(); var result = client.WorkflowGateExecute(processName, contextData); ((ICommunicationObject)client).Close(); return(result); } catch (Exception e) { throw; } throw new ApplicationException(String.Format("Не могу установить соединение для {0}!", serviceUrl)); }
public ExternalProcessExecuteResult Launch(string serviceUrl, string userName, string password, string processName, WorkflowContextData contextData) { var binding = GetBinding(); var uri = new Uri(serviceUrl); //var endpoint = new EndpointAddress(serviceUrl); var endpoint = new EndpointAddress(uri, EndpointIdentity.CreateDnsIdentity("localhost")); var channelFactory = new ChannelFactory <IWorkflowManager>(binding, endpoint); if (channelFactory.Credentials != null) { channelFactory.Credentials.UserName.UserName = userName; channelFactory.Credentials.UserName.Password = password; channelFactory.Credentials.ServiceCertificate.SetDefaultCertificate( StoreLocation.CurrentUser, StoreName.My, X509FindType.FindBySubjectName, "localhost"); } IWorkflowManager client = null; try { client = channelFactory.CreateChannel(); var result = client.WorkflowGateExecute(processName, contextData); ((ICommunicationObject)client).Close(); return(result); } catch (Exception e) { if (client != null) { ((ICommunicationObject)client).Abort(); } var fileName = Logger.GetLogFileName("ProcessLaunher"); Logger.OutputLog(fileName, e, "ProcessLauncher.Launch"); } throw new ApplicationException(String.Format("Не могу установить соединение для {0}!", serviceUrl)); }
/// <summary> /// Формирует выходной документ из шаблона на основе документа и данных рабочего контекста /// </summary> /// <param name="document">Документ, из которого берутся данные для подстановки в шаблон</param> /// <param name="contextData">Контекст бизнес процесса, из которого берутся данные для подстановки в шаблон</param> /// <param name="fileName">Наименование файла - шаблона выходного документа в форматах (Excel, PDF)</param> /// <returns>Массив двоичных данных представляющих собой выходной файл</returns> public byte[] GenerateFromTemplate(Doc document, WorkflowContextData contextData, string fileName) { var context = new WorkflowContext(contextData, Provider); var generator = ReportGeneratorProvider.FindForTemplate(fileName); if (generator != null) { using (var stream = generator.Generate(document, fileName, context)) { using (var buf = new MemoryStream()) { stream.Position = 0; stream.CopyTo(buf); return(buf.GetBuffer()); } } } throw new ApplicationException(String.Format("Неизвестный тип файла \"{0}\"", fileName)); }
protected void Run(IWorkflowManager workflowManager) { var param = new Dictionary <string, object>(); if (DocumentId != null) { /*var document = FindDocumentById((Guid) DocumentId); * * if (document != null) * param.Add("InputDocument", document);*/ param.Add("InputDocumentId", DocumentId); } if (MenuId != null) { param.Add("InputAttributeId", MenuId); } ProcessContext = workflowManager.WorkflowExecute(ProcessId, param); }
public ContextState FindProcessContextState(WorkflowContextData context) { var prev = Previous; while (prev != null) { if (prev is IProcessContextState) { var processContext = ((IProcessContextState)prev).GetWorkflowContext(); if (processContext.ParentProcessId == context.ParentProcessId) { return(prev); } } prev = prev.Previous; } return(null); }
public WorkflowContextData ContinueWithUploadFile(byte[] fileData, string fileName, IWorkflowManager workflowManager) { return(ProcessContext = workflowManager.WorkflowContinueWithUploadFile(ProcessContext, fileData, fileName)); }
public ExternalProcessExecuteResult WorkflowGateExecute(string gateName, WorkflowContextData contextData) { return(WorkflowEngine.RunGate(gateName, contextData)); }
public void TestExternalProcLaunch() { var data = new WorkflowContextData(); Launch(TjTestNrszServiceUtl, "d", "123", "FindPersons", data); }
public WorkflowContextData Continue(IWorkflowManager workflowManager) { return(ProcessContext = workflowManager.WorkflowContinue(ProcessContext)); }
public WorkflowContextData ContinueWithDocument(Doc document, IWorkflowManager workflowManager) { return(ProcessContext = workflowManager.WorkflowContinueWithDocument(ProcessContext, document)); }
public WorkflowContextData ContinueWithDocument(Guid docId, IWorkflowManager workflowManager) { return(ProcessContext = workflowManager.WorkflowContinueWithDocumentId(ProcessContext, docId)); }
public WorkflowContextData ContinueWithUserAction(Guid actionId, IWorkflowManager workflowManager) { return(ProcessContext = workflowManager.WorkflowContinueWithUserAction(ProcessContext, actionId)); }
public Doc DocumentInit(Doc doc, WorkflowContextData data) { return(DocRepo.InitDocFrom(doc, data)); }
/// <summary> /// Продолжение выполнения процесса /// </summary> /// <param name="contextData">Контекст процесса</param> /// <returns>Результат выполения процесса (промежуточный, или конечный)</returns> public WorkflowContextData Continue(WorkflowContextData contextData) { return(new WorkflowContextData(Guid.Empty, UserId)); }
public GenerateTemplate(IContext context, ContextState previous, string fileName, WorkflowContextData processContext) : base(context, previous) { FileName = fileName; ProcessContext = processContext; }