public UserActionManagerViewModel()
 {
     ActionEntityList = new ObservableCollection<ActionEntity>();
     ActionAndUserActionEntityList = new ObservableCollection<ActionAndUserActionEntity>();
     ActionAndUserActionEntityDictionary = new Dictionary<int, ActionAndUserActionEntity>();
     UserList = new List<UserEntity>();
     RootActionAndUserActionEntity = new ActionAndUserActionEntity();
     RootActionAndUserActionEntity.ChildList = new ObservableCollection<ActionAndUserActionEntity>();
     OnSave = new DelegateCommand(OnSaveCommand, CanSave);
 }
        private void UpdateRoleAndRoleAction()
        {
            ActionAndUserActionEntityDictionary.Clear();
            ActionAndUserActionEntityList.Clear();
            foreach (ActionEntity actionEntity in ActionEntityList)
            {
                ActionAndUserActionEntity actionAndUserActionEntity = new ActionAndUserActionEntity();
                actionAndUserActionEntity.ActionEntity = actionEntity;
                actionAndUserActionEntity.DocumentManagerDomainContext = DocumentManagerDomainContext;
                ActionAndUserActionEntityDictionary.Add(actionAndUserActionEntity.ActionEntity.ActionId, actionAndUserActionEntity);
            }

            foreach (KeyValuePair<int, ActionAndUserActionEntity> actionAndUserActionEntityPair in ActionAndUserActionEntityDictionary)
            {
                int supperActionID = actionAndUserActionEntityPair.Value.ActionEntity.SupperActionId.GetValueOrDefault(-1);
                if (supperActionID != 0)
                {
                    ActionAndUserActionEntity supperActionAndUserActionEntity;
                    if (ActionAndUserActionEntityDictionary.TryGetValue(supperActionID, out supperActionAndUserActionEntity))
                    {
                        AddRoleAndRoleAction(supperActionAndUserActionEntity, actionAndUserActionEntityPair.Value);
                    }
                }
            }
            UpdateUserAction();
        }
 private void AddRoleAndRoleAction(ActionAndUserActionEntity supperActionAndUserActionEntity, ActionAndUserActionEntity actionAndUserActionEntity)
 {
     if (supperActionAndUserActionEntity.ChildList == null)
     {
         supperActionAndUserActionEntity.ChildList = new ObservableCollection<ActionAndUserActionEntity>();
     }
     supperActionAndUserActionEntity.ChildList.Add(actionAndUserActionEntity);
     actionAndUserActionEntity.ParentActionAdnUserActionEntity = supperActionAndUserActionEntity;
 }