private void UpdateRoleAndRoleAction()
        {
            IsBusy = true;
            ActionAndRoleAnctionEntityDictionary.Clear();
            ActionAndRoleActionEntityList.Clear();
            foreach (ActionEntity actionEntity in ActionEntityList)
            {
                ActionAndRoleActionEntity actionAndRoleActionEntity = new ActionAndRoleActionEntity();
                actionAndRoleActionEntity.ActionEntity = actionEntity;
                actionAndRoleActionEntity.SystemManageDomainContext = systemManageDomainContext;
                ActionAndRoleAnctionEntityDictionary.Add(actionAndRoleActionEntity.ActionEntity.ActionID, actionAndRoleActionEntity);
            }

            foreach (KeyValuePair <int, ActionAndRoleActionEntity> actionAndRoleActionEntityPair in ActionAndRoleAnctionEntityDictionary)
            {
                int supperActionID = actionAndRoleActionEntityPair.Value.ActionEntity.SupperActionID;
                if (supperActionID != 0)
                {
                    ActionAndRoleActionEntity supperActionAndRoleActionEntity;
                    if (ActionAndRoleAnctionEntityDictionary.TryGetValue(supperActionID, out supperActionAndRoleActionEntity))
                    {
                        AddRoleAndRoleAction(supperActionAndRoleActionEntity, actionAndRoleActionEntityPair.Value);
                    }
                }
            }
        }
        void loadOperation_RoleActionCompleted(object sender, EventArgs e)
        {
            LoadOperation loadOperation = sender as LoadOperation;

            foreach (ProductManager.Web.Model.role_action role_action in loadOperation.Entities)
            {
                RoleActionEntity roleActionEntity = new RoleActionEntity();
                roleActionEntity.RoleAction = role_action;
                roleActionEntity.Update();
                ActionAndRoleActionEntity actionAndRoleActionEntity;
                if (ActionAndRoleAnctionEntityDictionary.TryGetValue(roleActionEntity.ActionID, out actionAndRoleActionEntity))
                {
                    actionAndRoleActionEntity.RoleActionEntity = roleActionEntity;
                }
            }

            RootActionAndRoleActionEntity.ChildList.Clear();
            foreach (KeyValuePair <int, ActionAndRoleActionEntity> actionAndRoleActionEntityPair in ActionAndRoleAnctionEntityDictionary)
            {
                actionAndRoleActionEntityPair.Value.CurrentRoleEntity = SelectRoleEntity;
                int supperActionID = actionAndRoleActionEntityPair.Value.ActionEntity.SupperActionID;
                if (supperActionID == 0)
                {
                    RootActionAndRoleActionEntity.ChildList.Add(actionAndRoleActionEntityPair.Value);
                }
            }
            UpdateChanged("RootActionAndRoleActionEntity");
            IsBusy = false;
        }
        public void LoadData()
        {
            IsBusy = true;
            systemManageDomainContext = new SystemManageDomainContext();
            systemManageDomainContext.PropertyChanged -= systemManageDomainContext_PropertyChanged;
            systemManageDomainContext.PropertyChanged += systemManageDomainContext_PropertyChanged;
            RootActionAndRoleActionEntity.ChildList.Clear();
            ActionAndRoleAnctionEntityDictionary.Clear();
            RoleEntityList.Clear();
            ActionEntityList.Clear();
            LoadOperation <ProductManager.Web.Model.action> loadOperationAction
                = systemManageDomainContext.Load <ProductManager.Web.Model.action>(systemManageDomainContext.GetActionQuery());

            loadOperationAction.Completed += LoadOperation_ActionCompleted;
        }