246 lines · 8.9 KB · C#
RawDownload
//******************************************************************************************************//  ApplicationRoles.cs - Gbtc////  Copyright © 2012, Grid Protection Alliance.  All Rights Reserved.////  Licensed to the Grid Protection Alliance (GPA) under one or more contributor license agreements. See//  the NOTICE file distributed with this work for additional information regarding copyright ownership.//  The GPA licenses this file to you under the MIT License (MIT), the "License"; you may//  not use this file except in compliance with the License. You may obtain a copy of the License at:////      http://www.opensource.org/licenses/MIT////  Unless agreed to in writing, the subject software distributed under the License is distributed on an//  "AS-IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. Refer to the//  License for the specific language governing permissions and limitations.////  Code Modification History://  ----------------------------------------------------------------------------------------------------//  05/10/2011 - Mehulbhai P Thakkar//       Generated original version of source code.//  12/20/2012 - Starlynn Danyelle Gilliam//       Modified Header.////****************************************************************************************************** using System;using System.Collections.Generic;using System.Collections.ObjectModel;using System.Windows;using System.Windows.Input;using GSF.TimeSeries.UI.Commands;using GSF.TimeSeries.UI.DataModels; namespace GSF.TimeSeries.UI.ViewModels{    /// <summary>    /// Class to hold bindable <see cref="ApplicationRole"/> collection.3    /// </summary>    internal class ApplicationRoles : PagedViewModelBase<ApplicationRole, Guid>    {        #region [ Members ]         // Fields        private RelayCommand m_addUserCommand;        private RelayCommand m_removeUserCommand;        private RelayCommand m_addGroupCommand;        private RelayCommand m_removeGroupCommand;         #endregion         #region [ Properties ]         /// <summary>        /// Gets flag that determines if <see cref="PagedViewModelBase{T1, T2}.CurrentItem"/> is a new record.        /// </summary>        public override bool IsNewRecord        {            get            {                return (CurrentItem.ID == null || CurrentItem.ID == Guid.Empty);            }        }         /// <summary>        /// Gets <see cref="ICommand"/> for add users to role operation.        /// </summary>        public ICommand AddUserCommand        {            get            {                if (m_addUserCommand == null)                    m_addUserCommand = new RelayCommand(AddUser, (param) => CanSave);                 return m_addUserCommand;            }        }         /// <summary>        /// Gets <see cref="ICommand"/> to remove users from role operation.        /// </summary>        public ICommand RemoveUserCommand        {            get            {                if (m_removeUserCommand == null)                    m_removeUserCommand = new RelayCommand(RemoveUser, (param) => CanSave);                 return m_removeUserCommand;            }        }         /// <summary>        /// Gets <see cref="ICommand"/> for add groups to role operation.        /// </summary>        public ICommand AddGroupCommand        {            get            {                if (m_addGroupCommand == null)                    m_addGroupCommand = new RelayCommand(AddGroup, (param) => CanSave);                 return m_addGroupCommand;            }        }         /// <summary>        /// Gets <see cref="ICommand"/> to remove groups from role operation.        /// </summary>        public ICommand RemoveGroupCommand        {            get            {                if (m_removeGroupCommand == null)                    m_removeGroupCommand = new RelayCommand(RemoveGroup, (param) => CanSave);                 return m_removeGroupCommand;            }        }         #endregion         #region [ Constructor ]         /// <summary>        /// Creates an instance of <see cref="ApplicationRoles"/> class.        /// </summary>        /// <param name="itemsPerPage">Integer value to determine number of items per page.</param>        /// <param name="autoSave">Boolean value to determine is user changes should be saved automatically.</param>        public ApplicationRoles(int itemsPerPage, bool autoSave = true)            : base(itemsPerPage, autoSave)        {        }         #endregion         #region [ Methods ]         /// <summary>        /// Gets the primary key value of the <see cref="PagedViewModelBase{T1, T2}.CurrentItem"/>.        /// </summary>        /// <returns>The primary key value of the <see cref="PagedViewModelBase{T1, T2}.CurrentItem"/>.</returns>        public override Guid GetCurrentItemKey()        {            return CurrentItem.ID;        }         /// <summary>        /// Gets the string based named identifier of the <see cref="PagedViewModelBase{T1, T2}.CurrentItem"/>.        /// </summary>        /// <returns>The string based named identifier of the <see cref="PagedViewModelBase{T1, T2}.CurrentItem"/>.</returns>        public override string GetCurrentItemName()        {            return CurrentItem.Name;        }         /// <summary>        /// Handles <see cref="AddUserCommand"/>.        /// </summary>        /// <param name="parameter">Collection of users to be added to <see cref="SecurityGroup"/>.</param>        private void AddUser(object parameter)        {            ObservableCollection<object> usersToBeAdded = (ObservableCollection<object>)parameter;             if (usersToBeAdded.Count > 0)            {                List<Guid> userIDs = new List<Guid>();                 foreach (object item in usersToBeAdded)                    userIDs.Add(((KeyValuePair<Guid, string>)item).Key);                 string result = ApplicationRole.AddUsers(null, CurrentItem.ID, userIDs);                 Popup(result, "Add Role Users", MessageBoxImage.Information);                 CurrentItem.CurrentUsers = ApplicationRole.GetCurrentUsers(null, CurrentItem.ID);                CurrentItem.PossibleUsers = ApplicationRole.GetPossibleUsers(null, CurrentItem.ID);            }        }         /// <summary>        /// Handles <see cref="RemoveUserCommand"/>.        /// </summary>        /// <param name="parameter">Collection of users to be removed from <see cref="SecurityGroup"/>.</param>        private void RemoveUser(object parameter)        {            ObservableCollection<object> usersToBeRemoved = (ObservableCollection<object>)parameter;             if (usersToBeRemoved.Count > 0)            {                List<Guid> userIDs = new List<Guid>();                 foreach (object item in usersToBeRemoved)                    userIDs.Add(((KeyValuePair<Guid, string>)item).Key);                 string result = ApplicationRole.RemoveUsers(null, CurrentItem.ID, userIDs);                 Popup(result, "Remove Role Users", MessageBoxImage.Information);                 CurrentItem.CurrentUsers = ApplicationRole.GetCurrentUsers(null, CurrentItem.ID);                CurrentItem.PossibleUsers = ApplicationRole.GetPossibleUsers(null, CurrentItem.ID);            }        }         private void AddGroup(object parameter)        {            ObservableCollection<object> groupsToBeAdded = (ObservableCollection<object>)parameter;             if (groupsToBeAdded.Count > 0)            {                List<Guid> groupIDs = new List<Guid>();                 foreach (object item in groupsToBeAdded)                    groupIDs.Add(((KeyValuePair<Guid, string>)item).Key);                 string result = ApplicationRole.AddGroups(null, CurrentItem.ID, groupIDs);                 Popup(result, "Add Role Groups", MessageBoxImage.Information);                 CurrentItem.CurrentGroups = ApplicationRole.GetCurrentGroups(null, CurrentItem.ID);                CurrentItem.PossibleGroups = ApplicationRole.GetPossibleGroups(null, CurrentItem.ID);            }        }         private void RemoveGroup(object parameter)        {            ObservableCollection<object> groupsToBeRemoved = (ObservableCollection<object>)parameter;             if (groupsToBeRemoved.Count > 0)            {                List<Guid> groupIDs = new List<Guid>();                 foreach (object item in groupsToBeRemoved)                    groupIDs.Add(((KeyValuePair<Guid, string>)item).Key);                 string result = ApplicationRole.RemoveGroups(null, CurrentItem.ID, groupIDs);                 Popup(result, "Remove Role Groups", MessageBoxImage.Information);                 CurrentItem.CurrentGroups = ApplicationRole.GetCurrentGroups(null, CurrentItem.ID);                CurrentItem.PossibleGroups = ApplicationRole.GetPossibleGroups(null, CurrentItem.ID);            }        }         #endregion    }}

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t