예제 #1
0
        private void OnAddNewAccessGroupButtonClick(object sender, RoutedEventArgs e)
        {
            if (string.IsNullOrEmpty(AccessGroupNameTextBox.Text))
            {
                return;
            }

            var moduleAccess = AccessGroupAvailablesItemsControl.ItemsSource as DataView;

            if (moduleAccess == null)
            {
                return;
            }

            var accessGroupName = AccessGroupNameTextBox.Text;

            var groups = _admc.AccessGroupsTable.Select(string.Format("AccessGroupName = '{0}'", accessGroupName));

            if (groups.Length != 0)
            {
                MetroMessageBox.Show("Группа с таким названием уже существует!", "Предупреждение",
                                     MessageBoxButton.OK, MessageBoxImage.Warning);
                return;
            }

            // List of checked tiles
            var moduleIds      = new List <int>();
            var fullAccessList = new List <bool>();

            foreach (
                var availableModule in
                moduleAccess.Cast <DataRowView>().Where(availableModule => (bool)availableModule["Access"]))
            {
                var moduleId   = Convert.ToInt32(availableModule["ModuleID"]);
                var fullAccess = Convert.ToBoolean(availableModule["FullAccess"]);

                moduleIds.Add(moduleId);
                fullAccessList.Add(fullAccess);
            }

            _admc.AddNewAccessGroup(accessGroupName, moduleIds.ToArray(), fullAccessList.ToArray());

            AdministrationClass.AddNewAction(100);
            OnCancelAddAccessGroupButtonClick(null, null);
        }