public void Execute(PersistBrokerPluginContext context) { switch (context.Action) { case EntityAction.PreCreate: case EntityAction.PreUpdate: CheckUserInfo(context.Entity, context.Broker); break; case EntityAction.PostCreate: CreateAuthInfo(context.Entity, context.Broker); break; case EntityAction.PostUpdate: UpdateAuthInfo(context.Entity, context.Broker); break; case EntityAction.PostDelete: DeleteAuthInfo(context.Entity, context.Broker); break; default: break; } }
public void Execute(PersistBrokerPluginContext context) { if (context.EntityName != "sys_entity") { return; } var broker = context.Broker; switch (context.Action) { case EntityAction.PostCreate: // 创建权限 new SysRolePrivilegeService(broker).CreateRoleMissingPrivilege(); // 重新注册权限并清除缓存 UserPrivilegesCache.Clear(broker); break; case EntityAction.PostDelete: var privileges = new SysRolePrivilegeService(broker).GetPrivileges(context.Entity.Id).ToArray(); broker.Delete(privileges); UserPrivilegesCache.Clear(broker); break; default: break; } }
public void Execute(PersistBrokerPluginContext context) { var entity = context.Entity as blog; switch (context.Action) { case EntityAction.PostCreate: case EntityAction.PostUpdate: var id = context.Entity.Id; var sql = @" UPDATE sys_file SET objectid = @objectid WHERE sys_fileid = @id "; var paramList = new Dictionary <string, object>() { { "@id", entity.surfaceid }, { "@objectid", id } }; context.Broker.Execute(sql, paramList); new DraftService(context.Broker).DeleteDataByBlogId(id); // 删除草稿 break; default: break; } }
public void Execute(PersistBrokerPluginContext context) { var data = context.Entity as classification; switch (context.Action) { case EntityAction.PostCreate: case EntityAction.PostUpdate: CreateOrUpdateMenu(context.Broker, data); break; case EntityAction.PostDelete: { var menu = context.Broker.Retrieve <sys_menu>("SELECT * FROM sys_menu WHERE router = @code", new Dictionary <string, object>() { { "@code", $"blogs/{context.Entity.GetAttributeValue<string>("code")}" } }); if (menu != null) { context.Broker.Delete(menu); } } break; default: break; } }
public void Execute(PersistBrokerPluginContext context) { if (context.EntityName != "robot_message_task") { return; } var obj = context.Entity as robot_message_task; switch (context.Action) { case EntityAction.PostCreate: case EntityAction.PostUpdate: JobHelpers.RegisterJob(new RobotMessageTaskJob(obj.name, obj.robotidName, obj.runtime), obj, obj.job_state.ToTriggerState()); break; case EntityAction.PreCreate: var jobState = new RobotMessageTaskJob().DefaultTriggerState.ToSelectOption(); obj.job_state = jobState.Value.ToString(); obj.job_stateName = jobState.Name; break; case EntityAction.PreUpdate: case EntityAction.PostDelete: JobHelpers.DeleteJob(obj.name, obj.robotidName); break; default: break; } }
public void Execute(PersistBrokerPluginContext context) { var obj = context.Entity as gallery; switch (context.Action) { case EntityAction.PreCreate: break; case EntityAction.PreUpdate: break; case EntityAction.PostCreate: case EntityAction.PostUpdate: var data1 = context.Broker.Retrieve <sys_file>(obj.previewid); var data2 = context.Broker.Retrieve <sys_file>(obj.imageid); data1.objectId = obj.Id; data2.objectId = obj.Id; context.Broker.Update(data1); context.Broker.Update(data2); break; case EntityAction.PreDelete: break; case EntityAction.PostDelete: break; default: break; } }
public void Execute(PersistBrokerPluginContext context) { var entity = context.Entity; switch (context.Action) { case EntityAction.PreCreate: break; case EntityAction.PostCreate: break; case EntityAction.PreUpdate: break; case EntityAction.PostUpdate: break; case EntityAction.PreDelete: break; case EntityAction.PostDelete: { #region 如果文件没有实体关联就删除 var sql = @" SELECT * FROM sys_file WHERE hash_code = @hash_code AND sys_fileid <> @Id" ; var paramList = new Dictionary <string, object>() { { "@hash_code", entity.GetAttributeValue <string>("hash_code") }, { "@id", entity.GetAttributeValue <string>("sys_fileid") } }; var dataList = context.Broker.RetrieveMultiple <sys_file>(sql, paramList); if (dataList.IsEmpty()) { ServiceContainer.Resolve <IStoreStrategy>(StoreConfig.Config.Type).Delete(new List <string>() { entity.GetAttributeValue <string>("real_name") }); } break; #endregion } default: break; } }
public void Execute(PersistBrokerPluginContext context) { var entity = context.Entity; switch (context.Action) { case EntityAction.PostCreate: { var data = entity as upvote; var message = new message_remind() { Id = Guid.NewGuid().ToString(), name = $"{data.name}消息提醒", is_read = false, is_readName = "否", receiverId = data.object_ownerid, receiverIdName = data.object_owneridName, message_type = "upvote", content = JsonConvert.SerializeObject(data) }; context.Broker.Create(message); } break; case EntityAction.PreDelete: { var data = context.Broker.Retrieve <upvote>(context.Entity.Id); var sql = @" SELECT * FROM ( SELECT *, content::jsonb ->> 'objectId' AS objectid FROM message_remind WHERE 1=1 AND message_type = 'upvote' ) t1 WHERE t1.objectid = @id"; var dataList = context.Broker.RetrieveMultiple <message_remind>(sql, new Dictionary <string, object>() { { "@id", data.objectId } }); dataList.Each(item => context.Broker.Delete(item)); } break; default: break; } }
public void Execute(PersistBrokerPluginContext context) { var entity = context.Entity; switch (context.Action) { case EntityAction.PreCreate: { var reciver = entity["mail_address"].ToString(); var title = entity["name"].ToString(); var content = entity["content"].ToString(); MailUtil.SendMail(reciver, title, content); } break; default: break; } }
public void Execute(PersistBrokerPluginContext context) { if (context.EntityName != nameof(sys_role_privilege)) { return; } switch (context.Action) { case EntityAction.PostCreate: case EntityAction.PostDelete: case EntityAction.PostUpdate: UserPrivilegesCache.Clear(context.Broker); break; default: break; } }
public void Execute(PersistBrokerPluginContext context) { switch (context.Action) { case EntityAction.PreCreate: case EntityAction.PreUpdate: var entity = context.Entity; if (entity.GetAttributeValue("checked") == null) { context.Entity["checked"] = 0; } if (entity.GetAttributeValue("wechat") == null) { context.Entity["wechat"] = WeChatConfig.Config.Appid; } break; default: break; } }
public void Execute(PersistBrokerPluginContext context) { if (context.EntityName != "sys_role") { return; } var obj = context.Entity as sys_role; switch (context.Action) { case EntityAction.PostDelete: { AssertUtil.CheckBoolean <SpException>(obj.is_basic, "禁止删除基础角色", "D283AEBF-60CA-4DFF-B08D-6D3DD10AFBBA"); } break; default: break; } }
public void Execute(PersistBrokerPluginContext context) { var entity = context.Entity; var broker = context.Broker; switch (context.Action) { case EntityAction.PreCreate: { var data = entity as sys_attrs; var columns = new List <Column>() { MapperHelper.Map <Column>(data) }; broker.Execute(broker.DbClient.Driver.GetAddColumnSql(data.entityCode, columns)); } break; case EntityAction.PostDelete: { var column = new Column() { Name = entity.GetAttributeValue <string>("code") }; var tableName = broker.Retrieve <sys_entity>(entity.GetAttributeValue <string>("entityid"))?.code; if (!string.IsNullOrEmpty(tableName)) { broker.Execute(broker.DbClient.Driver.GetDropColumnSql(tableName, new List <Column>() { column })); } } break; default: break; } }
public void Execute(PersistBrokerPluginContext context) { var entity = context.Entity as wechat_material; switch (context.Action) { case EntityAction.PreCreate: case EntityAction.PreUpdate: // 如果素材未上传到系统,则根据url请求图片保存 if (string.IsNullOrEmpty(entity.sys_fileid)) { var result = HttpUtil.DownloadImage(entity.url, out var contentType); var id = Guid.NewGuid().ToString(); var stream = StreamUtil.BytesToStream(result); var hash_code = SHAUtil.GetFileSHA1(stream); var config = StoreConfig.Config; ServiceContainer.Resolve<IStoreStrategy>(config?.Type).Upload(stream, entity.name, out var filePath); var sysImage = new sys_file() { sys_fileId = id, name = entity.name, real_name = entity.name, hash_code = hash_code, file_type = "wechat_material", content_type = contentType, objectId = entity.Id }; new SysFileService(context.Broker).CreateData(sysImage); entity.sys_fileid = id; entity.local_url = SysFileService.GetDownloadUrl(id); } break; case EntityAction.PreDelete: WeChatApi.DeleteMaterial(entity.GetAttributeValue<string>("media_id")); context.Broker.Delete("sys_file", entity.GetAttributeValue<string>("sys_fileid")); break; default: break; } }
public void Execute(PersistBrokerPluginContext context) { var broker = context.Broker; switch (context.Action) { case EntityAction.PostCreate: { var data = context.Entity as comments; var messageRemind = new message_remind() { Id = Guid.NewGuid().ToString(), name = $"{data.name}消息提醒", is_read = false, is_readName = "否", content = JsonConvert.SerializeObject(data), message_type = data.comment_type }; if (data.comment_type == "comment") { messageRemind.receiverId = data.object_ownerid; messageRemind.receiverIdName = data.object_owneridName; } else if (data.comment_type == "reply") { messageRemind.receiverId = data.replyid; messageRemind.receiverIdName = data.replyidName; } broker.Create(messageRemind); } break; default: break; } }