public PositionOrganizationChartsVM(PositionVM position, AccessType access) : base(access) { UnitOfWork = new SoheilEdmContext(); CurrentPosition = position; PositionDataService = new PositionDataService(UnitOfWork); PositionDataService.OrganizationChartAdded += OnOrganizationChartAdded; PositionDataService.OrganizationChartRemoved += OnOrganizationChartRemoved; OrganizationChartDataService = new OrganizationChartDataService(UnitOfWork); OrganizationChartPositionDataService = new OrganizationChartPositionDataService(UnitOfWork); var selectedVms = new ObservableCollection<OrganizationChartPositionVM>(); foreach (var positionOrganizationChart in PositionDataService.GetOrganizationCharts(position.Id)) { selectedVms.Add(new OrganizationChartPositionVM(positionOrganizationChart, Access, OrganizationChartPositionDataService)); } SelectedItems = new ListCollectionView(selectedVms); var allVms = new ObservableCollection<OrganizationChartVM>(); foreach (var organizationChart in OrganizationChartDataService.GetActives()) { allVms.Add(new OrganizationChartVM(organizationChart, Access, OrganizationChartDataService)); } AllItems = new ListCollectionView(allVms); IncludeCommand = new Command(Include, CanInclude); ExcludeCommand = new Command(Exclude, CanExclude); }
public PositionUsersVM(PositionVM position, AccessType access) : base(access) { UnitOfWork = new SoheilEdmContext(); CurrentPosition = position; PositionDataService = new PositionDataService(UnitOfWork); PositionDataService.UserAdded += OnUserAdded; PositionDataService.UserRemoved += OnUserRemoved; UserDataService = new UserDataService(UnitOfWork); var selectedVms = new ObservableCollection<UserPositionVM>(); foreach (var positionUser in PositionDataService.GetUsers(position.Id)) { selectedVms.Add(new UserPositionVM(positionUser, Access, RelationDirection.Reverse)); } SelectedItems = new ListCollectionView(selectedVms); var allVms = new ObservableCollection<UserVM>(); foreach (var user in UserDataService.GetActives(SoheilEntityType.Positions, CurrentPosition.Id)) { allVms.Add(new UserVM(user, Access, UserDataService)); } AllItems = new ListCollectionView(allVms); IncludeCommand = new Command(Include, CanInclude); ExcludeCommand = new Command(Exclude, CanExclude); }
private void OnPositionRemoved(object sender, ModelRemovedEventArgs e) { foreach (UserPositionVM item in SelectedItems) { if (item.Id == e.Id) { var model = PositionDataService.GetSingle(item.PositionId); var returnedVm = new PositionVM(model, Access, PositionDataService); AllItems.AddNewItem(returnedVm); AllItems.CommitNew(); SelectedItems.Remove(item); break; } } }
public PositionAccessRulesVM(PositionVM position, AccessType access):base(access) { UnitOfWork = new SoheilEdmContext(); CurrentPosition = position; PositionDataService = new PositionDataService(UnitOfWork); PositionDataService.AccessRuleChanged += OnAccessRuleChanged; AccessRuleDataService = new AccessRuleDataService(UnitOfWork); PositionAccessRuleDataService = new PositionAccessRuleDataService(UnitOfWork); RootNode = new PositionAccessNodeVM(Access) { Title = string.Empty, Id = -1, ParentId = -2 }; var selectedVms = new ObservableCollection<PositionAccessNodeVM>(); foreach (var accessRule in AccessRuleDataService.GetActives()) { selectedVms.Add(new PositionAccessNodeVM(accessRule.Id, position.Id, AccessRuleDataService, PositionAccessRuleDataService, 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 (PositionAccessNodeVM item in selectedVms) { if (item.ParentId == RootNode.Id) { RootNode.ChildNodes.Add(item); break; } } CurrentNode = RootNode; }
private void OnPositionAdded(object sender, ModelAddedEventArgs<Position> e) { var newPositionVm = new PositionVM(e.NewModel, Access, PositionDataService); Items.AddNewItem(newPositionVm); Items.CommitNew(); CurrentContent = newPositionVm; CurrentContent.IsSelected = true; }