public UserPositionsVM(UserVM user, AccessType access) : base(access) { UnitOfWork = new SoheilEdmContext(); CurrentUser = user; UserDataService = new UserDataService(UnitOfWork); PositionDataService = new PositionDataService(UnitOfWork); AccessRuleDataService = new AccessRuleDataService(UnitOfWork); UserDataService.PositionAdded += OnPositionAdded; UserDataService.PositionRemoved += OnPositionRemoved; var selectedVms = new ObservableCollection<UserPositionVM>(); foreach (var userPosition in UserDataService.GetPositions(user.Id)) { selectedVms.Add(new UserPositionVM(userPosition, Access, RelationDirection.Straight)); } SelectedItems = new ListCollectionView(selectedVms); var allVms = new ObservableCollection<PositionVM>(); foreach (var position in PositionDataService.GetActives(SoheilEntityType.Users, CurrentUser.Id)) { allVms.Add(new PositionVM(position, Access, PositionDataService)); } AllItems = new ListCollectionView(allVms); //AllItems = new ListCollectionView(PositionDataService.GetActives()); IncludeCommand = new Command(Include, CanInclude); ExcludeCommand = new Command(Exclude, CanExclude); }
private void OnUserRemoved(object sender, ModelRemovedEventArgs e) { foreach (UserPositionVM item in SelectedItems) { if (item.Id == e.Id) { var model = UserDataService.GetSingle(item.UserId); var returnedVm = new UserVM(model, Access, UserDataService); AllItems.AddNewItem(returnedVm); AllItems.CommitNew(); SelectedItems.Remove(item); break; } } }
public UserAccessRulesVM(UserVM user, AccessType access):base(access) { UnitOfWork = new SoheilEdmContext(); CurrentUser = user; UserDataService = new UserDataService(UnitOfWork); UserDataService.AccessRuleChanged += OnAccessRuleChanged; AccessRuleDataService = new AccessRuleDataService(UnitOfWork); UserAccessRuleDataService = new UserAccessRuleDataService(UnitOfWork); PositionAccessRuleDataService = new PositionAccessRuleDataService(UnitOfWork); RootNode = new UserAccessNodeVM(Access) { Title = string.Empty, Id = -1, ParentId = -2 }; var selectedVms = new ObservableCollection<UserAccessNodeVM>(); var ruleAccessList = AccessRuleDataService.GetPositionsAccessOfUser(user.Id); foreach (var accessRule in AccessRuleDataService.GetActives()) { selectedVms.Add(new UserAccessNodeVM(accessRule.Id, user.Id, AccessRuleDataService, UserAccessRuleDataService, ruleAccessList, Access)); } var allVms = new ObservableCollection<AccessRuleVM>(); foreach (var accessRule in AccessRuleDataService.GetActives()) { allVms.Add(new AccessRuleVM(AccessRuleDataService, accessRule, Access)); } AllItems = new ListCollectionView(allVms); IncludeCommand = new Command(Include, CanInclude); ExcludeTreeCommand = new Command(ExcludeTree, CanExcludeTree); foreach (UserAccessNodeVM item in selectedVms) { if (item.ParentId == RootNode.Id) { RootNode.ChildNodes.Add(item); break; } } CurrentNode = RootNode; }
private void OnUserAdded(object sender, ModelAddedEventArgs<User> e) { var newUserVm = new UserVM(e.NewModel, Access, UserDataService); Items.AddNewItem(newUserVm); Items.CommitNew(); CurrentContent = newUserVm; CurrentContent.IsSelected = true; }