private void OnMetadataChanged(object sender, MetadataChangedEventArgs e) { var securityObject = sender as IManagementConsoleObject; if (securityObject != null) { if (MetadataUpdates.ContainsKey(securityObject)) { if (MetadataUpdates[securityObject].ContainsKey(e.Key)) { MetadataUpdates[securityObject][e.Key] = e.Value; } else { MetadataUpdates[securityObject].Add(e.Key, e.Value); } } else { MetadataUpdates.Add(securityObject, new Dictionary <string, string>()); MetadataUpdates[securityObject].Add(e.Key, e.Value); } PermissionDetails.ApplyEnabled = true; } }
private void UpdateSuccessful() { MetadataUpdates.Clear(); Updates.Clear(); PermissionDetails.ApplyEnabled = false; ProcessIndicatorPanel.Visibility = Visibility.Collapsed; }
private void XTreeView_SelectionChanged(object sender, Telerik.Windows.Controls.SelectionChangedEventArgs e) { if (sender == this) { return; } var isSkip = false; if (e.AddedItems.Count == 1) { var securityObject = e.AddedItems[0] as IManagementConsoleObject; if (securityObject != null) { ProjectListViewControlPanel.DataContext = securityObject; if (e.RemovedItems.Count == 1 && (Updates.Count > 0 || MetadataUpdates.Count > 0)) { var oldItem = e.RemovedItems[0]; SuperMessageBoxService.ShowWarning("Confirmation", "Do you want to apply your changes? \r\n\r\n" + "Press YES to apply\r\n" + "Press No to discard the changes you have made\r\n", "Yes", "No", "Cancel", ApplyChanges, () => { foreach (var update in Updates) { foreach (var updatePair in update.Value) { update.Key.ResetChange(updatePair.Key); } } Updates.Clear(); MetadataUpdates.Clear(); PermissionDetails.ApplyEnabled = false; var oldObject = oldItem as IManagementConsoleObject; if (oldObject != null) { oldObject.ReloadMetadata(); } XTreeView.SelectedItem = e.AddedItems[0]; }, () => { XTreeView.SelectedItem = oldItem; isSkip = true; }); } if (!isSkip && App.PermissionLevel == PermissionLevel.SecurityManager) { if (securityObject is Project) { if (!securityObject.IsLoaded) { _securityManager.GetSecurityAssociationsAsync(securityObject, ClientOnGetSecurityAssociationsCompleted, AllSecurityGroups, new GlymaSecurableObject { SecurableParentUid = Guid.Empty, SecurableObjectUid = securityObject.Id }); } foreach (var project in _projects) { if (project.Id != securityObject.Id) { project.IsSelected = false; } } } else if (securityObject is RootMap) { if (!securityObject.IsLoaded) { _securityManager.GetSecurityAssociationsAsync(securityObject, ClientOnGetSecurityAssociationsCompleted, AllSecurityGroups, new GlymaSecurableObject { SecurableParentUid = securityObject.ParentId, SecurableObjectUid = securityObject.Id }); } foreach (var project in _projects) { if (project.Id == securityObject.ParentId) { foreach (var rootMap in project.RootMaps) { if (rootMap.Id != securityObject.Id) { rootMap.IsSelected = false; } } } else { project.IsSelected = false; } } } } } Focus(); XTreeView.Focus(); } }