public void ActionExecute(ExecutingContext executeContext) { if (executeContext.Instance.State == WorkflowInstanceState.Reject || executeContext.Instance.State == WorkflowInstanceState.Kill) { CommandBus.Dispatch <string>(new DeletePending(), executeContext.Instance.InstanceID); } else { var current = executeContext.To; if (current.NodeType == WorkflowNodeCategory.Decision) { DecisionJump(executeContext); } else { if (!executeContext.Result && !String.IsNullOrEmpty(executeContext.From.Cooperation)) { CooperationPending.Execute(executeContext); } else { string instanceID = executeContext.Instance.InstanceID; if (current.NodeType == WorkflowNodeCategory.End) { CommandBus.Dispatch <string>(new DeletePending(), instanceID); } else { AssignToPendingUser(executeContext, current); } } } } }
public override void OnExecuting(ExecutingContext args) { if (args.Args.FirstOrDefault() != null) { args.Args[0] = args.Args[0].ToString() + "Hello"; } }
public void OnSubscribeExecuting(ExecutingContext context) { _logger.LogInformation( $"^^^^^^^^^^^^^^^^^^^^^^^^^{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff")}###订阅收到消息:{context.DeliverMessage.Headers["cap-msg-name"]}^^^^^^^^^^^^^^^^^^^^^^^^^^"); _logger.LogInformation( $"^^^^^^^^^^^^^^^^^^^^^^^^^^开始处理订阅的消息:{context.DeliverMessage.Headers["cap-corr-id"]}^^^^^^^^^^^^^^^^^^^^^^^^^^"); }
public static string Cooperation(WorkflowContext context, ExecutingContext executeContext) { string resultTo = String.Empty; Node current = context.Current; AbstractWorkflow workflowService = WorkflowGlobalServiceProvider.Resolve <AbstractWorkflow>(); IWorkflowCooperationService workflowCooperationService = workflowService.NodeService.WorkflowCooperationService; IStrategyService strategyService = (IStrategyService)Utils.CreateInstance(current.Assistant); string instanceID = context.Instance.InstanceID; workflowService.NodeService.WorkflowCooperationService.Persistent(new WorkflowCooperation { NodeID = current.NID, InstanceID = context.Instance.InstanceID, TransitionID = context.TransitionID, CreateTime = DateTime.Now }); IList <WorkflowCooperation> records = workflowCooperationService.Query(instanceID).Where(e => e.NodeID == current.NID).ToList(); executeContext.Result = strategyService.Check(records); if (executeContext.Result) { IWorkflowCooperationDecision workflowCooperationDecision = (IWorkflowCooperationDecision)Utils.CreateInstance(current.Cooperation); resultTo = workflowCooperationDecision.Execute(records); workflowService.NodeService.WorkflowCooperationService.Delete(instanceID, current.NID); } else { workflowService.Actions.ForEach(pluin => pluin.ActionExecute(executeContext)); } return(resultTo); }
public void OnProcess(ExecutingContext executeContext) { if (executeContext.Instance.Current.NodeType == WorkflowNodeCategory.Decision) { DecisionJump(executeContext); } else { //写入审批记录 WriteRecord(executeContext); string instanceID = executeContext.Instance.InstanceID; var current = GetCurrentNode(instanceID); if (current.Name == "结束") { pendingService.Delete(p => p.INSTANCEID == instanceID); } else { //流程跳转|流程撤销(重新指派人审批) 仅限演示 List <Group> items = current.Groups; List <User> userList = GetUsersByGroup(items); foreach (User user in userList) { WritePending(user.IDENTIFICATION.ToString(), executeContext); } string NID = executeContext.Instance.Current.NID; pendingService.Delete(pending => pending.NODEID == NID && pending.INSTANCEID == instanceID); } } }
public void ActionExecute(ExecutingContext executeContext) { string cateCode = (String)executeContext.Data.CateCode; string instanceID = (String)executeContext.Instance.InstanceID; FormService.Execute(cateCode, instanceID); }
object IAutoIdentityService.GetAutoIdentityValue(string fullTableName) { IDataBaseService dataBaseService = ExecutingContext.GetService <IDataBaseService>(ServiceName.ADWDB); IDataManager dataManager = EntityManager.FromDataBaseService(ServiceName.ADWDB); if (DataBaseType == DBMS.AzureStorage) { TableId tableId = dataManager.GetEntity <TableId>(fullTableName); if (tableId != null) { tableId.NextId++; } else { IEntityManager em = dataManager as IEntityManager; tableId = em.CreateInstance <TableId>(); tableId.TableName = fullTableName; tableId.NextId = 1; } dataManager.SaveTransactional(); return(tableId.NextId); } else { return(dataManager.GetNextId(fullTableName)); } }
byte[] IOffice.ExportExcel(string fileName) { var svc = ExecutingContext.GetService <IProductionService>("ProductionService"); var ds = svc.LoadAllProducts(); byte[] bytes = null; //if (fileName.EndsWith(".xls")) { var tempFileName = Context.MapPath(@"~\" + fileName); Aspectize.ExcelHelper.SaveToFile(tempFileName, ds); bytes = File.ReadAllBytes(tempFileName); File.Delete(tempFileName); //} else { // var xlSvc = ExecutingContext.GetService<IAspectizeExcel>("AspectizeExcel"); // bytes = xlSvc.ToExcel(ds, null); //} ExecutingContext.SetHttpDownloadFileName(fileName); return(bytes); }
private void Invoke(Node to, ExecutingContext executeContext, WorkflowContext context) { string instanceID = context.Instance.InstanceID; workflowService.InstanceService.Jump(context.Current.ID, to.ID, instanceID, new WorkflowProcess() { RelationshipID = executeContext.From.NID, CreateTime = DateTime.Now, ActorID = context.ActorID, Origin = executeContext.From.ID, Destination = executeContext.To.ID, TransitionID = context.TransitionID, InstanceID = executeContext.Instance.InstanceID, NodeType = executeContext.From.NodeType, Direction = WorkflowOpertaion.Back }, workflowService.ProcessService); workflowService.Actions.ForEach(pluin => pluin.ActionExecute(executeContext)); if (to.NodeType == WorkflowNodeCategory.Decision) { Jump(new WorkflowContext() { Instance = WorkflowInstance.GetInstance(instanceID), TransitionID = context.TransitionID, Data = context.Data, Message = "系统流转", ActorID = context.ActorID, Current = to }); } }
DataSet ILoadDataService.UploadAttachment(UploadedFile[] uploadedFiles, Guid workItemId) { IDataManager dm = EntityManager.FromDataBaseService("MyDataService"); IEntityManager em = dm as IEntityManager; var fileService = ExecutingContext.GetService <IFileService>("MyFileService"); var workItem = dm.GetEntity <WorkItem>(workItemId); foreach (UploadedFile uploadedFile in uploadedFiles) { var attachment = em.CreateInstance <Attachment>(); string pathFile = string.Format(@"{0:N}/{1:N}", workItemId, attachment.Id); attachment.FileName = uploadedFile.Name; attachment.FileLength = uploadedFile.ContentLength; em.AssociateInstance <WorkItemAttachment>(workItem, attachment); fileService.Write(pathFile, uploadedFile.Stream); } dm.SaveTransactional(); return(dm.Data); }
void IInscriptionService.ResetPassword(string email) { IDataManager dm = EntityManager.FromDataBaseService(ServiceName.MyDataService); List <User> users = dm.GetEntities <User>(new QueryCriteria(User.Fields.Email, ComparisonOperator.Equal, email.ToLower().Trim())); if (users.Count == 1) { User user = users[0]; if (user.Status != EnumUserStatus.Blocked) { user.Status = EnumUserStatus.Pending; user.VerificationCode = Guid.NewGuid(); var mailService = ExecutingContext.GetService <IAspectizeSMTPService>(ServiceName.MyMailService); string subject = "Reset your password"; string applicationLink = string.Format(@"{0}{1}/[email protected]&code={2}", ExecutingContext.CurrentHostUrl, ExecutingContext.CurrentApplicationName, user.VerificationCode); string body = string.Format(@"Click on the following link to fill a new password: <a href='{0}' target='_blank'>New password</a>", applicationLink); mailService.SendMailSimple(false, email, subject, body); dm.SaveTransactional(); } } }
/// <summary> /// 写待办信息 /// </summary> /// <param name="actorID">参与者</param> /// <param name="executeContext"></param> public void WritePending(string actorID, ExecutingContext executeContext) { var node = GetCurrentNode(executeContext.Instance.InstanceID); string cateCode = (String)executeContext.Data.CateCode; string instanceID = (String)executeContext.Instance.InstanceID; Category model = new CategoryQueryService().Query() .FirstOrDefault(cate => cate.NID == cateCode); string json = (String)executeContext.Data.Json; Pending entry = new Pending { NID = Guid.NewGuid().ToString(), ActorID = actorID, InstanceID = instanceID, NodeID = node.NID, Url = model.Url, CreateDateTime = DateTime.Now, NodeName = node.Name, CateCode = cateCode, CateName = model.Name, Title = Parse(json, model.Expression) }; CommandBus.Dispatch <Pending>(new CreatePending(), entry); }
public void ActionExecute(ExecutingContext executeContext) { if (executeContext.Instance.Current.NodeType != WorkflowNodeCategory.Decision) { //写入审批记录 WriteRecord(executeContext); } }
Guid IAdminService.UploadLogoFile(Stream data, Dictionary <string, object> info) { IFileService fileService = ExecutingContext.GetService <IFileService>(AdventureWorksFileService); fileService.Write("Logo", data); return(Guid.NewGuid()); }
void ILoadDataService.BuildDataDemo() { //string adwCnxString = @"Data Source=NICOW8\SQLEXPRESS;Initial Catalog=AdventureWorks;Integrated Security=True"; //IDataManager dmSQL = EntityManager.FromConnectionString(adwCnxString, DBMS.SQLServer2005); //IEntityManager emSql = dmSQL as IEntityManager; //dmSQL.LoadAssociated<SalesReason, SalesOrderHeaderSalesReason>(); //foreach (SalesReason salesReason in emSql.GetAllInstances<SalesReason>()) //{ // //salesReason.data.SetAdded(); // foreach (SalesOrderHeaderSalesReason sohsr in salesReason.GetRelationsInstances<SalesOrderHeader, SalesOrderHeaderSalesReason>()) // { // sohsr.data.SetAdded(); // } //} //IDataManager dm = EntityManager.FromDataSetAndBaseService(emSql.Data, ServiceName.ADWDB); //dm.SaveTransactional(); IDataManager dm = EntityManager.FromDataBaseService(ServiceName.ADWDB); var relations = new List <IRoleRelationQuery>(); relations.Add(new RoleRelationQuery <Category, CategorySubcategory>()); relations.Add(new RoleRelationQuery <Subcategory, ProductSubcategory>()); relations.Add(new RoleRelationQuery <Product, ProductProductPhoto>()); dm.LoadEntitiesGraph <Category>(relations); relations = new List <IRoleRelationQuery>(); relations.Add(new RoleRelationQuery <Employee, EmployeeManager>()); relations.Add(new RoleRelationQuery <Employee, EmployeeContact>()); dm.LoadEntitiesGraph <Employee>(relations); relations = new List <IRoleRelationQuery>(); relations.Add(new RoleRelationQuery <SalesPerson, ContactSalesPerson>()); //relations.Add(new RoleRelationQuery<SalesPerson, SalesOrderHeaderSalesPerson>()); //relations.Add(new RoleRelationQuery<SalesOrderHeader, SalesOrderHeaderSalesReason>()); dm.LoadEntitiesGraphFields <SalesPerson>(EntityLoadOption.AllFields, relations); dm.LoadEntities <Department>(); IFileService fs = ExecutingContext.GetService <IFileService>(ServiceName.ADWFileService); var data = DataSetHelper.BinarySave(dm.Data); fs.Write("DataDemo2", data); }
public void ActionExecute(ExecutingContext executingContext) { IList <IWorkflowAction> actions = GetWorkflowActions(executingContext.To); foreach (IWorkflowAction action in actions) { action.ActionExecute(executingContext); } }
public override void OnExecuting(ExecutingContext input) { List <object> oList = new List <object>(); foreach (string s in input.Args) { oList.Add(s.Replace("!", "").Replace("#", "")); } input.Args = oList.ToArray(); }
/// <summary> /// 写入审批记录 /// </summary> /// <param name="executeContext"></param> public void WriteRecord(ExecutingContext executeContext) { //写入审批记录 recordService.Insert(new Record() { INSTANCEID = executeContext.Instance.InstanceID, NODENAME = executeContext.From.Name, MESSAGE = executeContext.Data.Message }); }
public void ActionExecute(ExecutingContext executingContext) { var current = executingContext.To; if (current.NodeType != WorkflowNodeCategory.Decision) { IWorkflowNodeService workflowNodeService = WorkflowGlobalServiceProvider.Resolve <IWorkflowNodeService>(); workflowNodeService.Execute(current); } }
/// <summary> /// 写待办信息 /// </summary> /// <param name="actorID">参与者</param> /// <param name="executeContext"></param> public void WritePending(string actorID, ExecutingContext executeContext) { pendingService.Insert(new Pending() { ACTORID = actorID, INSTANCEID = executeContext.Instance.InstanceID, NODEID = GetCurrentNode(executeContext.Instance.InstanceID).NID, APPELLATION = executeContext.Data.Url }); }
public void Init() { Mock <MethodInfo> moqmethodInfo = new Mock <MethodInfo>(); var args = new object[] { "12345!!##,,11dasd" }; moqmethodInfo.Setup(o => o.Name).Returns("Test_ExecutedContext"); _executedContext = new ExecutedContext(moqmethodInfo.Object, args, It.IsAny <object>()); _executing = new ExecutingContext(moqmethodInfo.Object, args); }
public void OnCompleted(ExecutingContext executeContext) { //以下代码仅用于演示 //流程结束(在完成事件中可以做业务操作) ApplyService applyService = new ApplyService(); Apply model = applyService.GetInstanceByInstanceID(executeContext.Instance.InstanceID); model.STATUS = 8; applyService.Persistent(model); new PendingService().Delete(executeContext.Instance.InstanceID); }
/// <summary> /// 写待办信息 /// </summary> /// <param name="actorID">参与者</param> /// <param name="executeContext"></param> public void WritePending(string actorID, ExecutingContext executeContext) { pendingService.Insert(new Pending() { ACTORID = actorID, ACTION = executeContext.Operation.ToString(), INSTANCEID = executeContext.Instance.InstanceID, NODEID = GetCurrentNode(executeContext.Instance.InstanceID).NID, APPELLATION = string.Format("<a href=\"javascript:;\" onclick=\"parent.window.document.getElementById('frmContent').src='../FileApply/FileApply/{0}'\">你有待办任务。</a>", executeContext.Data.bussinessID) }); }
//------------------------------------------------------------------------------------------------------------------------------- public bool GetDataSetExport(string keyExport) { AspectizeUser aspectizeUser = ExecutingContext.CurrentUser; IEntityManager em = EntityManager.FromDataSet(DataSetHelper.Create()); if (aspectizeUser.IsAuthenticated) { int nTimosSessionId = (int)aspectizeUser[CUserTimosWebApp.c_champSessionId]; ITimosServiceForAspectize serviceClientAspectize = (ITimosServiceForAspectize)C2iFactory.GetNewObject(typeof(ITimosServiceForAspectize)); CResultAErreur result = serviceClientAspectize.GetSession(nTimosSessionId); if (!result) { throw new SmartException(1100, "Votre session a expiré, veuillez vous reconnecter"); } try { result = serviceClientAspectize.GetDataSetExport(nTimosSessionId, keyExport); if (!result) { throw new SmartException(1010, "Erreur GetDataSetExport(nTimosSessionId = " + nTimosSessionId + ", keyExport = " + keyExport + ")" + Environment.NewLine + result.MessageErreur); } if (result && result.Data != null) { DataSet ds = result.Data as DataSet; if (ds != null && ds.Tables.Count > 0) { var fs = ExecutingContext.GetService <IFileService>("TimosFileService"); string relativePath = keyExport + ".json"; string json = JsonConvert.SerializeObject(ds, Formatting.None); MemoryStream stream = new MemoryStream(Encoding.ASCII.GetBytes(json)); fs.Write(relativePath, stream); } } } catch (Exception ex) { throw new SmartException(1010, "Erreur GetExportsForUser(nTimosSessionId = " + nTimosSessionId + ", keyExport = " + keyExport + ")" + Environment.NewLine + ex.Message); } } else { throw new SmartException(1100, "Votre session a expiré, veuillez vous reconnecter"); } return(true); }
void IInitializable.Initialize(Dictionary <string, object> parameters) { if (dsDemo == null) { IFileService fs = ExecutingContext.GetService <IFileService>(ServiceName.ADWFileService); var dataDemo = fs.Read("DataDemo2"); dsDemo = DataSetHelper.BinaryLoad(dataDemo); } }
/// <summary> /// 多条件跳转 /// </summary> /// <param name="executeContext">执行上下文</param> private void DecisionJump(ExecutingContext executeContext) { string instanceID = executeContext.Instance.InstanceID; string NID = executeContext.From.NID; Dictionary <string, object> deleteArg = new Dictionary <string, object>() { { "instanceID", instanceID }, { "nodeID", NID } }; CommandBus.Dispatch <Dictionary <string, Object> >(new DeletePending(), deleteArg); }
public void Init() { Mock <IMethodCallMessage> moqCallMessage = new Mock <IMethodCallMessage>(); Mock <IMethodReturnMessage> moqReturnMessage = new Mock <IMethodReturnMessage>(); moqCallMessage.Setup(o => o.Args).Returns(new object[] { "12345!!##,,11dasd" }); moqCallMessage.Setup(o => o.MethodName).Returns("Test_ExecutedContext"); moqReturnMessage.Setup(o => o.ReturnValue).Returns(It.IsAny <object>); _executedContext = new ExecutedContext(moqReturnMessage.Object); _executing = new ExecutingContext(moqCallMessage.Object); }
public void ActionExecute(ExecutingContext executeContext) { if (executeContext.Instance.Current.NodeType != WorkflowNodeCategory.Decision) { //写入审批记录 recordService.Insert(new Record() { INSTANCEID = executeContext.Instance.InstanceID, NODENAME = executeContext.From.Name, MESSAGE = executeContext.Data.Message }); } }
DataSet ILoadDataService.LoadDataDemo() { if (dsDemo == null) { IFileService fs = ExecutingContext.GetService <IFileService>(ServiceName.ADWFileService); var dataDemo = fs.Read("DataDemo2"); dsDemo = DataSetHelper.BinaryLoad(dataDemo); } return(dsDemo); }
public void ActionExecute(ExecutingContext executeContext) { var current = executeContext.To; if (executeContext.Instance.State != WorkflowInstanceState.Kill && current.NodeType != WorkflowNodeCategory.Decision) { string instanceID = executeContext.Instance.InstanceID; List <User> userList = bridgeService.GetCarbonCopies(current, (String)executeContext.Data.Carbon); foreach (User user in userList) { WriteCarbon(user.ID, current.NID, instanceID); } } }