private SystemManageDomainContext systemManageDomainContext; // = new SystemManageDomainContext();

        #endregion Fields

        #region Constructors

        public RoleRightManagerViewModel()
        {
            ActionEntityList = new ObservableCollection<ActionEntity>();
            RoleEntityList = new ObservableCollection<RoleEntity>();
            ActionAndRoleActionEntityList = new ObservableCollection<ActionAndRoleActionEntity>();
            ActionAndRoleAnctionEntityDictionary = new Dictionary<int, ActionAndRoleActionEntity>();
            RootActionAndRoleActionEntity = new ActionAndRoleActionEntity();
            RootActionAndRoleActionEntity.ChildList = new ObservableCollection<ActionAndRoleActionEntity>();
            OnSave = new DelegateCommand(OnSaveCommand, CanSave);
        }
        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);
                    }
                }
            }
        }
 private void AddRoleAndRoleAction(ActionAndRoleActionEntity supperActionAndRoleActionEntity, ActionAndRoleActionEntity actionAndRoleActionEntity)
 {
     if (supperActionAndRoleActionEntity.ChildList == null)
     {
         supperActionAndRoleActionEntity.ChildList = new ObservableCollection<ActionAndRoleActionEntity>();
     }
     supperActionAndRoleActionEntity.ChildList.Add(actionAndRoleActionEntity);
     actionAndRoleActionEntity.ParentActionAndRoleActionEntity = supperActionAndRoleActionEntity;
 }