public void DeleteFromDBContext(params object[] objects) { foreach (var t in objects) { DBAppContext.Remove(t); } }
private void AdminToolShown(object sender, EventArgs e) { try { Focus(); //Загружаем список всех ролей в выпадающий список #if DEBUG lueRoles.Properties.DataSource = DBAppContext.Roles_SelectAll(); #else lueRoles.Properties.DataSource = DBAppContext.Roles_SelectAll() .Where(r => !r.IsAdmin) .ToArray(); #endif } catch (Exception ex) { DBException.WriteLog(ex); } finally { Cursor = Cursors.Default; } MessageWindow.GetInstance(@"Выберите роль для загрузки настроек", MessageType.Info); CloseWaitForm(); }
/// <summary> /// Сохранить сделанные для ролей изменения в базу данных /// </summary> private void SaveItemClick(object sender, ItemClickEventArgs e) { if (!isChangedProperty || lueRoles.EditValue == null || ActiveForm == null) { return; } var currentRoleId = (int)lueRoles.EditValue; var xmls = ActiveForm.SaveXmlFormRule(); var setting = DBAppContext .Where <RolesRule>(rr => rr.FormName.Equals(ActiveForm.Name) && rr.RoleId == currentRoleId) .FirstOrDefault(); if (setting != null) { setting.ControlsXML = xmls; } else { var ruleRole = new RolesRule { ControlsXML = xmls, RoleId = currentRoleId, FormName = ActiveForm.Name }; DBAppContext.RolesRules.Add(ruleRole); } MessageWindow.GetInstance("Настройки для роли успешно сохранены.", MessageType.Info); }
/// <summary> /// Загрузить настройки роли для активной формы /// </summary> private void LoadRolesForActiveForm() { if (lueRoles.EditValue == null || ActiveForm == null) { return; } HighlightControl.IsPaint = false; bbiSave.Enabled = true; bbiDefault.Enabled = true; bbiRestore.Enabled = true; try { var name = ActiveForm.Name; tlControls.DataSource = ActiveForm.GetDataTableControl(); //Обновим форму до первоначальных настроек var xml = DBAppContext.RolesRule_GetFormXML(name, (int)lueRoles.EditValue); ActiveForm.LoadAllControlsState(xml); isChangedProperty = false; } catch (Exception ex) { DBException.WriteLog(ex); } finally { HighlightControl.IsPaint = true; } }
/// <summary> /// Добавление выбранных в CheckedComboBox пользователей к текущей роли /// </summary> private void UsersEditValueChanged(object sender, EventArgs e) { if (string.IsNullOrEmpty(riccbeUsers.GetCheckedItems().ToString())) { return; } var query = riccbeUsers.Items.Cast <CheckedListBoxItem>() .Where(t => t.CheckState == CheckState.Checked) .Select(i => (int)i.Value) .SelectMany(pId => DBAppContext.Where <User>(p => p.Id == pId)) .ToList(); cgvUsers.BeginDataUpdate(); try { foreach (var user in query) { CurrentRole.Users.Add(user); bsRoleUsers.Add(user); } } catch (Exception ex) { DBException.WriteLog(ex); } finally { cgvUsers.EndDataUpdate(); } }
/// <summary> /// Событие при попадании фокуса в ячейку таблицы gcUsers, если ячейка доступна для редактирования /// </summary> /// <remarks> /// При клике пользователя на строку добавления сотрудников к роли, /// показывается CheckedComboBox с пользователями, ещё не относящимися к данной роли. В данном /// методе находят все сотрудники не из текущей роли и формируется список, если все сотрудники /// добавлены, то показывается сообщение в виде ToolTip /// </remarks> private void UsersShowingEditor(object sender, CancelEventArgs e) { if (cgvUsers.FocusedRowHandle == GridControl.NewItemRowHandle) { if (cgvUsers.FocusedColumn == colSurnameInitials) { var userIds = CurrentRole.Users .Select(u => u.Id) .ToList(); var queue = DBAppContext .Where <User>(u => !userIds.Contains(u.Id) && !u.IsLocked) .OrderBy(u => u.SurnameInitials); if (queue.Any()) { riccbeUsers.DataSource = queue.ToList(); } else { MessageWindow.GetInstance("К данной роли добавлены все пользователи", MessageType.Attention); e.Cancel = true; } } else { e.Cancel = true; } } else { if (cgvUsers.FocusedColumn == colSurnameInitials) { e.Cancel = true; } } }
public virtual bool SaveChanges(bool showMsg = true) { try { this.CommitFormsChanges(); DBAppContext.SaveChanges(); if (showMsg) { MessageWindow.GetInstance("Изменения успешно сохранены.", MessageType.Info); } } catch (SqlException e) { var msg = e.Message.GetUserMessageByErrorMessage(); if (msg.IsEmptyAfterTrim()) { DBException.WriteLog(e); } else { XtraMessageBox.Show(this, msg, @"Операция отменена", MessageBoxButtons.OK, MessageBoxIcon.Error); } return(false); } catch (DbUpdateException e) { var inner = e.InnerException; while (inner.InnerException != null) { inner = inner.InnerException; } var msg = inner.Message.GetUserMessageByErrorMessage(); if (msg.IsEmptyAfterTrim()) { DBException.WriteLog(e); } else { XtraMessageBox.Show(this, msg, @"Операция отменена", MessageBoxButtons.OK, MessageBoxIcon.Error); } return(false); } catch (Exception e) { MessageWindow.GetInstance("Произошла ошибка при обновлении информации в базе данных. Операция отменена."); DBException.WriteLog(e); return(false); } return(true); }
public override void RefreshData() { base.RefreshData(); ShowWaitForm(); try { bsUser.DataSource = DBAppContext.Users_SelectAll(); bsRole.DataSource = DBAppContext.Roles_SelectAll_IncludeUsers(); } catch (Exception ex) { DBException.WriteLog(ex); } finally { CloseWaitForm(); } }
protected virtual bool HasUnsavedChanges() { return(DBAppContext.HasUnsavedChanges()); }
public void AddToDBContext(object obj) { DBAppContext.Add(obj); }
public bool CheckDBContext(IEnumerable <object> data) { return(DBAppContext.CheckExist(data.First())); }