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); }