コード例 #1
0
 public virtual void DeleteInstance(IWorkflowInstance instance)
 {
     EntityEventManager.RaiseEvent <IWorkflowInstance>(EventStep.Before, EventType.Delete, instance);
     InstanceService.Delete(instance);
     EntityEventManager.RaiseEvent <IWorkflowInstance>(EventStep.After, EventType.Delete, instance);
     WorkflowInstanceLog(instance, "删除");
 }
コード例 #2
0
        public virtual int Insert(TEntity item)
        {
            int result = 0;

            if (item is ILastUpdateTime)
            {
                (item as ILastUpdateTime).LastUpdateTime = DateTime.Now;
            }
            if (item is IEntity)
            {
                var i = item as IEntity;
                if (i.Id.IsNullOrEmpty())
                {
                    i.Id     = Guid.NewGuid().ToString();
                    i.RentId = 1;
                }
            }
            EntityEventManager.RaiseEvent <TEntity>(EventStep.Before, EventType.Insert, item);
            result = Dao.Get().Insert(item);
            if (result > 0)
            {
                if (item is IExtProperty)
                {
                    (item as IExtProperty).SetProperty();
                }
                EntityEventManager.RaiseEvent <TEntity>(EventStep.After, EventType.Insert, item);
            }
            return(result);
        }
コード例 #3
0
 public virtual void AddInstance(IWorkflowInstance instance)
 {
     EntityEventManager.RaiseEvent <IWorkflowInstance>(EventStep.Before, EventType.Insert, instance);
     InstanceService.Insert(instance);
     EntityEventManager.RaiseEvent <IWorkflowInstance>(EventStep.After, EventType.Insert, instance);
     WorkflowInstanceLog(instance, "新增");
 }
コード例 #4
0
ファイル: Server.cs プロジェクト: afinegan/SEServerExtender
        private bool SetupManagers( )
        {
            _dedicatedServerWrapper = DedicatedServerAssemblyWrapper.Instance;
            _pluginManager          = PluginManager.Instance;
            _factionsManager        = FactionsManager.Instance;
            _entityEventManager     = EntityEventManager.Instance;
            _chatManager            = ChatManager.Instance;
            _sessionManager         = SessionManager.Instance;

            return(true);
        }
コード例 #5
0
        private bool SetupManagers()
        {
            m_serverWrapper       = ServerAssemblyWrapper.Instance;
            m_pluginManager       = PluginManager.Instance;
            m_gameAssemblyWrapper = SandboxGameAssemblyWrapper.Instance;
            m_factionsManager     = FactionsManager.Instance;
            m_logManager          = LogManager.Instance;
            m_entityEventManager  = EntityEventManager.Instance;
            m_chatManager         = ChatManager.Instance;

            return(true);
        }
コード例 #6
0
        public virtual int Delete(object id)
        {
            TEntity item = default(TEntity);

            if (id is TEntity)
            {
                item = (TEntity)id;
            }
            else
            {
                item = Get(id);
            }
            EntityEventManager.RaiseEvent <TEntity>(EventStep.Before, EventType.Delete, item);
            int result = Dao.Get().Delete(item);

            if (result > 0)
            {
                EntityEventManager.RaiseEvent <TEntity>(EventStep.After, EventType.Delete, item);
            }
            return(result);
        }
コード例 #7
0
        public virtual int Update(TEntity item)
        {
            if (item is ILastUpdateTime)
            {
                (item as ILastUpdateTime).LastUpdateTime = DateTime.Now;
            }
            if (item is IEntity)
            {
                var i = item as IEntity;
                i.RentId = 1;
            }
            EntityEventManager.RaiseEvent <TEntity>(EventStep.Before, EventType.Update, item);
            int result = Dao.Get().Update(item);

            if (result > 0)
            {
                if (item is IExtProperty)
                {
                    (item as IExtProperty).SetProperty();
                }
                EntityEventManager.RaiseEvent <TEntity>(EventStep.After, EventType.Update, item);
            }
            return(result);
        }
コード例 #8
0
ファイル: RegisterCenter.cs プロジェクト: yunqian44/FoxOne
        public static void RegisterEntityEvent()
        {
            if (!HasRegisterEntityEvent)
            {
                lock (obj)
                {
                    if (!HasRegisterEntityEvent)
                    {
                        EntityEventManager.RegisterEvent <IDepartment>(EventStep.Before, EventType.Insert, d =>
                        {
                            var o = d as IDepartment;
                            if (DBContext <IDepartment> .Instance.Where(k => k.Name.Equals(o.Name, StringComparison.OrdinalIgnoreCase)).Count() > 0)
                            {
                                throw new FoxOneException("Department_Name_Already_In_Use");
                            }
                            o.Alias  = o.Name;
                            o.Level  = o.Parent.Level + 1;
                            o.RentId = 1;
                            o.WBS    = o.Parent.WBS + (o.Parent.Childrens.Count() + 1).ToString().PadLeft(3, '0');
                            return(true);
                        });



                        EntityEventManager.RegisterEvent <IDepartment>(EventStep.Before, EventType.Delete, d =>
                        {
                            var o = d as IDepartment;
                            o.Member.ForEach(k =>
                            {
                                DBContext <IUser> .Delete(k);
                            });
                            o.Roles.ForEach(k =>
                            {
                                DBContext <IRole> .Delete(k);
                            });
                            o.Childrens.ForEach(k =>
                            {
                                DBContext <IDepartment> .Delete(k);
                            });
                            return(true);
                        });

                        EntityEventManager.RegisterEvent <IUser>(EventStep.Before, EventType.Delete, d =>
                        {
                            var o         = d as IUser;
                            var userRoles = DBContext <IUserRole> .Instance.Where(j => j.UserId.Equals(o.Id, StringComparison.OrdinalIgnoreCase));
                            userRoles.ForEach(k =>
                            {
                                DBContext <IUserRole> .Delete(k);
                            });
                            return(true);
                        });


                        EntityEventManager.RegisterEvent <IUser>(EventStep.Before, EventType.Insert, d =>
                        {
                            var o = d as IUser;
                            if (DBContext <IUser> .Instance.Where(k => k.LoginId.Equals(o.LoginId, StringComparison.OrdinalIgnoreCase) || k.MobilePhone == o.MobilePhone).Count() > 0)
                            {
                                throw new FoxOneException("LoginId_Or_MobilePhone_Alerady_Exist");
                            }
                            return(true);
                        });

                        EntityEventManager.RegisterEvent <IRole>(EventStep.Before, EventType.Delete, d =>
                        {
                            var o         = d as IRole;
                            var userRoles = DBContext <IUserRole> .Instance.Where(j => j.RoleId.Equals(o.Id, StringComparison.OrdinalIgnoreCase));
                            userRoles.ForEach(k =>
                            {
                                DBContext <IUserRole> .Delete(k);
                            });
                            var permissions = DBContext <IRolePermission> .Instance.Where(j => j.RoleId.Equals(o.Id, StringComparison.OrdinalIgnoreCase));
                            permissions.ForEach(k =>
                            {
                                DBContext <IRolePermission> .Delete(k);
                            });
                            return(true);
                        });


                        EntityEventManager.RegisterEvent <IRole>(EventStep.Before, EventType.Insert, d =>
                        {
                            var o     = d as IRole;
                            var roles = DBContext <IRole> .Instance.Where(j => j.RoleTypeId.Equals(o.RoleTypeId, StringComparison.OrdinalIgnoreCase) &&
                                                                          j.DepartmentId.Equals(o.DepartmentId, StringComparison.OrdinalIgnoreCase));
                            if (roles.Count() > 0)
                            {
                                throw new FoxOneException("Role_Alerady_Exist");
                            }
                            return(true);
                        });

                        EntityEventManager.RegisterEvent <IRoleType>(EventStep.Before, EventType.Delete, d =>
                        {
                            var o = d as IRoleType;
                            o.Roles.ForEach(k =>
                            {
                                DBContext <IRole> .Delete(k);
                            });
                            var permissions = DBContext <IRoleTypePermission> .Instance.Where(j => j.RoleTypeId.Equals(o.Id, StringComparison.OrdinalIgnoreCase));
                            permissions.ForEach(k =>
                            {
                                DBContext <IRoleTypePermission> .Delete(k);
                            });
                            return(true);
                        });

                        EntityEventManager.RegisterEvent <IPermission>(EventStep.Before, EventType.Insert, d =>
                        {
                            var o    = d as IPermission;
                            var temp = DBContext <IPermission> .Instance.FirstOrDefault(j => j.Code.Equals(o.Code, StringComparison.OrdinalIgnoreCase));
                            if (temp != null)
                            {
                                throw new FoxOneException("Permission_Code_Exist");
                            }
                            return(true);
                        });

                        EntityEventManager.RegisterEvent <IPermission>(EventStep.Before, EventType.Delete, d =>
                        {
                            var o = d as IPermission;
                            var roleTypePermission = DBContext <IRoleTypePermission> .Instance.Where(j => j.PermissionId.Equals(o.Id, StringComparison.OrdinalIgnoreCase));
                            roleTypePermission.ForEach(k =>
                            {
                                DBContext <IRoleTypePermission> .Delete(k);
                            });

                            var rolePermission = DBContext <IRolePermission> .Instance.Where(j => j.PermissionId.Equals(o.Id, StringComparison.OrdinalIgnoreCase));
                            rolePermission.ForEach(k =>
                            {
                                DBContext <IRolePermission> .Delete(k);
                            });
                            return(true);
                        });

                        EntityEventManager.RegisterEvent <PageEntity>(EventStep.Before, EventType.Delete, d =>
                        {
                            var o          = d as PageEntity;
                            var components = DBContext <ComponentEntity> .Instance.Where(i => i.PageId.Equals(o.Id, StringComparison.OrdinalIgnoreCase));
                            if (!components.IsNullOrEmpty())
                            {
                                components.ForEach(k =>
                                {
                                    DBContext <ComponentEntity> .Delete(k);
                                });
                            }
                            var pageFile = DBContext <PageLayoutFileEntity> .Instance.Where(i => i.PageOrLayoutId.Equals(o.Id, StringComparison.OrdinalIgnoreCase)).ToList();
                            if (!pageFile.IsNullOrEmpty())
                            {
                                pageFile.ForEach(k =>
                                {
                                    DBContext <PageLayoutFileEntity> .Delete(k);
                                });
                            }
                            return(true);
                        });

                        EntityEventManager.RegisterEvent <IWorkflowApplication>(EventStep.Before, EventType.Delete, d =>
                        {
                            var o = d as IWorkflowApplication;
                            if (DBContext <IWorkflowInstance> .Instance.Count(c => c.ApplicationId == o.Id) > 0)
                            {
                                throw new FoxOneException("当前流程应用有关联的实例,不能删除!");
                            }
                            return(true);
                        });

                        EntityEventManager.RegisterEvent <IWorkflowDefinition>(EventStep.Before, EventType.Delete, d =>
                        {
                            var o = d as IWorkflowDefinition;
                            if (DBContext <IWorkflowApplication> .Instance.Count(c => c.WorkflowId == o.Id) > 0)
                            {
                                throw new FoxOneException("当前流程定义有关联的流程应用,不能删除!");
                            }
                            var components = DBContext <ComponentEntity> .Instance.Where(i => i.PageId.Equals(o.Id, StringComparison.OrdinalIgnoreCase));
                            if (!components.IsNullOrEmpty())
                            {
                                components.ForEach(k =>
                                {
                                    DBContext <ComponentEntity> .Delete(k);
                                });
                            }
                            return(true);
                        });
                        HasRegisterEntityEvent = true;
                    }
                }
            }
        }
コード例 #9
0
ファイル: Global.asax.cs プロジェクト: xym000/FoxOne
        public static void RegisterEntityEvent()
        {
            if (!HasRegisterEntityEvent)
            {
                lock (obj)
                {
                    if (!HasRegisterEntityEvent)
                    {
                        EntityEventManager.RegisterEvent <IDepartment>(EventStep.Before, EventType.Delete, d =>
                        {
                            var o = d as IDepartment;
                            o.Member.ForEach(k =>
                            {
                                DBContext <IUser> .Delete(k);
                            });
                            o.Roles.ForEach(k =>
                            {
                                DBContext <IRole> .Delete(k);
                            });
                            o.Childrens.ForEach(k =>
                            {
                                DBContext <IDepartment> .Delete(k);
                            });
                            return(true);
                        });

                        EntityEventManager.RegisterEvent <IUser>(EventStep.Before, EventType.Delete, d =>
                        {
                            var o         = d as IUser;
                            var userRoles = DBContext <IUserRole> .Instance.Where(j => j.UserId.Equals(o.Id, StringComparison.OrdinalIgnoreCase));
                            userRoles.ForEach(k =>
                            {
                                DBContext <IUserRole> .Delete(k);
                            });
                            return(true);
                        });

                        EntityEventManager.RegisterEvent <IUser>(EventStep.Before, EventType.Insert, d =>
                        {
                            var o = d as IUser;
                            if (DBContext <IUser> .Instance.Where(k => k.LoginId.Equals(o.LoginId, StringComparison.OrdinalIgnoreCase)).Count() > 0)
                            {
                                throw new FoxOneException("LoginId_Alerady_Exist");
                            }
                            return(true);
                        });

                        EntityEventManager.RegisterEvent <IRole>(EventStep.Before, EventType.Delete, d =>
                        {
                            var o         = d as IRole;
                            var userRoles = DBContext <IUserRole> .Instance.Where(j => j.RoleId.Equals(o.Id, StringComparison.OrdinalIgnoreCase));
                            userRoles.ForEach(k =>
                            {
                                DBContext <IUserRole> .Delete(k);
                            });
                            var permissions = DBContext <IRolePermission> .Instance.Where(j => j.RoleId.Equals(o.Id, StringComparison.OrdinalIgnoreCase));
                            permissions.ForEach(k =>
                            {
                                DBContext <IRolePermission> .Delete(k);
                            });
                            return(true);
                        });


                        EntityEventManager.RegisterEvent <IRole>(EventStep.Before, EventType.Insert, d =>
                        {
                            var o     = d as IRole;
                            var roles = DBContext <IRole> .Instance.Where(j => j.RoleTypeId.Equals(o.RoleTypeId, StringComparison.OrdinalIgnoreCase) &&
                                                                          j.DepartmentId.Equals(o.DepartmentId, StringComparison.OrdinalIgnoreCase));
                            if (roles.Count() > 0)
                            {
                                throw new FoxOneException("Role_Alerady_Exist");
                            }
                            return(true);
                        });

                        EntityEventManager.RegisterEvent <IRoleType>(EventStep.Before, EventType.Delete, d =>
                        {
                            var o = d as IRoleType;
                            o.Roles.ForEach(k =>
                            {
                                DBContext <IRole> .Delete(k);
                            });
                            var permissions = DBContext <IRoleTypePermission> .Instance.Where(j => j.RoleTypeId.Equals(o.Id, StringComparison.OrdinalIgnoreCase));
                            permissions.ForEach(k =>
                            {
                                DBContext <IRoleTypePermission> .Delete(k);
                            });
                            return(true);
                        });

                        EntityEventManager.RegisterEvent <IPermission>(EventStep.Before, EventType.Insert, d =>
                        {
                            var o    = d as IPermission;
                            var temp = DBContext <IPermission> .Instance.FirstOrDefault(j => j.Code.Equals(o.Code, StringComparison.OrdinalIgnoreCase));
                            if (temp != null)
                            {
                                throw new FoxOneException("Permission_Code_Exist");
                            }
                            return(true);
                        });

                        EntityEventManager.RegisterEvent <IPermission>(EventStep.Before, EventType.Delete, d =>
                        {
                            var o = d as IPermission;
                            var roleTypePermission = DBContext <IRoleTypePermission> .Instance.Where(j => j.PermissionId.Equals(o.Id, StringComparison.OrdinalIgnoreCase));
                            roleTypePermission.ForEach(k =>
                            {
                                DBContext <IRoleTypePermission> .Delete(k);
                            });

                            var rolePermission = DBContext <IRolePermission> .Instance.Where(j => j.PermissionId.Equals(o.Id, StringComparison.OrdinalIgnoreCase));
                            rolePermission.ForEach(k =>
                            {
                                DBContext <IRolePermission> .Delete(k);
                            });
                            return(true);
                        });

                        EntityEventManager.RegisterEvent <PageEntity>(EventStep.Before, EventType.Delete, d =>
                        {
                            var o          = d as PageEntity;
                            var components = DBContext <ComponentEntity> .Instance.Where(i => i.PageId.Equals(o.Id, StringComparison.OrdinalIgnoreCase));
                            if (!components.IsNullOrEmpty())
                            {
                                components.ForEach(k =>
                                {
                                    DBContext <ComponentEntity> .Delete(k);
                                });
                            }
                            var pageFile = DBContext <PageLayoutFileEntity> .Instance.Where(i => i.PageOrLayoutId.Equals(o.Id, StringComparison.OrdinalIgnoreCase)).ToList();
                            if (!pageFile.IsNullOrEmpty())
                            {
                                pageFile.ForEach(k =>
                                {
                                    DBContext <PageLayoutFileEntity> .Delete(k);
                                });
                            }
                            return(true);
                        });

                        HasRegisterEntityEvent = true;
                    }
                }
            }
        }