Esempio n. 1
0
 public void DeleteFromDBContext(params object[] objects)
 {
     foreach (var t in objects)
     {
         DBAppContext.Remove(t);
     }
 }
Esempio n. 2
0
        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();
        }
Esempio n. 3
0
        /// <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);
        }
Esempio n. 4
0
        /// <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;
         }
     }
 }
Esempio n. 7
0
 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();
     }
 }
Esempio n. 9
0
 protected virtual bool HasUnsavedChanges()
 {
     return(DBAppContext.HasUnsavedChanges());
 }
Esempio n. 10
0
 public void AddToDBContext(object obj)
 {
     DBAppContext.Add(obj);
 }
Esempio n. 11
0
 public bool CheckDBContext(IEnumerable <object> data)
 {
     return(DBAppContext.CheckExist(data.First()));
 }