예제 #1
0
 /// <summary>
 ///     Загрузить настройки внешнего вида для формы
 /// </summary>
 /// <param name="form">форма</param>
 /// <param name="xml">Xml с настройками внешнего вида формы</param>
 public static void DefaultFormState_InsertUpdate(this Form form, string xml)
 {
     using (var dbAdmin = new ApplicationEntitie(0))
     {
         try
         {
             if (!dbAdmin.DefaultFormStates.Any(f => f.FormName == form.Name))
             {
                 var defauleRule = new DefaultFormState
                 {
                     FormName   = form.Name,
                     DefaultXml = xml
                 };
                 dbAdmin.DefaultFormStates.Add(defauleRule);
             }
             else
             {
                 dbAdmin.DefaultFormStates.First(f => f.FormName == form.Name)
                 .DefaultXml = xml;
             }
             dbAdmin.SaveChanges();
         }
         catch (Exception ex)
         {
             DBException.WriteLog(ex);
         }
     }
 }
예제 #2
0
        /// <summary>
        ///     Сохранить текущий внешний вид для объекта класса
        ///     <see cref="T:DevExpress.XtraGrid.GridControl" />
        ///     в базу данных
        /// </summary>
        /// <param name="formName">Имя формы</param>
        /// <param name="controlName">Имя контрола</param>
        /// <param name="layout">Массив настроек контрола</param>
        /// <param name="layoutType">Тип сохранения контрола</param>
        public static UserLayout UserLayout_InsertUpdate(string formName, string controlName, byte[] layout, int layoutType = 1)
        {
            UserLayout userLayout;
            var        name = formName + "." + controlName;

            using (var db = new ApplicationEntitie(0))
            {
                userLayout = db.UserLayouts.FirstOrDefault(ul => ul.UserId == DBUser.Working.Id &&
                                                           ul.TableName == name && ul.LayoutType == layoutType);
                if (userLayout != null)
                {
                    userLayout.Layout = layout;
                }
                else
                {
                    userLayout = new UserLayout
                    {
                        Layout     = layout,
                        TableName  = name,
                        LayoutType = layoutType,
                        UserId     = DBUser.Working.Id
                    };
                    db.UserLayouts.Add(userLayout);
                }
                db.SaveChanges();
            }
            return(userLayout);
        }
예제 #3
0
        /// <summary>
        ///     Сохранить текущий внешний вид для объекта класса
        ///     <see cref="T:DevExpress.XtraGrid.GridControl" />
        ///     в базу данных
        /// </summary>
        /// <param name="control">Контрол для сохранения настроек</param>
        public static void SaveLastLayout(this Control control)
        {
            var tableName = control.UniqueName();

            using (var db = new ApplicationEntitie(0))
            {
                var layout     = control.GetLayoutData();
                var userLayout = db.UserLayouts.FirstOrDefault(ul => ul.UserId == DBUser.Working.Id && ul.TableName == tableName && ul.LayoutType == 2);
                if (userLayout != null)
                {
                    userLayout.Layout = layout;
                }
                else
                {
                    userLayout = new UserLayout
                    {
                        Layout     = layout,
                        TableName  = tableName,
                        LayoutType = 2,
                        UserId     = DBUser.Working.Id
                    };
                    db.UserLayouts.Add(userLayout);
                }
                db.SaveChanges();
            }
        }
예제 #4
0
 /// <summary>
 ///     Загрузить настройки внешнего вида для формы
 /// </summary>
 /// <param name="form">форма</param>
 /// <param name="xml">Xml с настройками внешнего вида формы</param>
 public static void DefaultFormState_InsertUpdate(this Form form, string xml)
 {
     using (var dbAdmin = new ApplicationEntitie(0))
     {
         try
         {
             if (!dbAdmin.DefaultFormStates.Any(f => f.FormName == form.Name))
             {
                 var defauleRule = new DefaultFormState
                 {
                     FormName = form.Name,
                     DefaultXml = xml
                 };
                 dbAdmin.DefaultFormStates.Add(defauleRule);
             }
             else
             {
                 dbAdmin.DefaultFormStates.First(f => f.FormName == form.Name)
                     .DefaultXml = xml;
             }
             dbAdmin.SaveChanges();
         }
         catch (Exception ex)
         {
             DBException.WriteLog(ex);
         }
     }
 }
예제 #5
0
 /// <summary>
 ///     Вернуть внешний вид для объекта в значение по умолчанию
 /// </summary>
 /// <param name="form">форма</param>
 /// <param name="name">имя объекта</param>
 /// <param name="pc">Объект, для которого необходимо вернуть состояние</param>
 /// <returns>Возвращается массив байтов</returns>
 public static void SaveDefaultLayout(this Form form, string name, Control pc)
 {
     using (var db = new ApplicationEntitie(0))
     {
         if (form == null)
         {
             throw new ArgumentException("Форма не задана");
         }
         var tableName = form.Name + "." + name;
         var layout    = pc.GetLayoutData();
         var defLayout = db.DefaultLayouts.FirstOrDefault(dl => dl.TableName == tableName);
         if (defLayout == null)
         {
             defLayout = new DefaultLayout
             {
                 TableName = tableName,
                 Layout    = layout
             };
             db.DefaultLayouts.Add(defLayout);
         }
         else if (!db.DefaultLayouts.Any(dl => dl.cs_Layout == SqlFunctions.Checksum(layout)))
         {
             defLayout.Layout = layout;
         }
         db.SaveChanges();
     }
 }
예제 #6
0
 /// <summary>
 ///     Получить пользователя по Id
 /// </summary>
 /// <param name="user">Пользователь</param>
 /// <param name="password">Новый пароль</param>
 /// <returns>Объект пользователя</returns>
 public static bool UpdatePassword(this User user, string password)
 {
     user.UserPassword = password;
     using (var db = new ApplicationEntitie(0))
     {
         db.Users.Find(user.Id)
         .UserPassword = password;
         db.SaveChanges();
         return(true);
     }
 }
예제 #7
0
 /// <summary>
 ///     Удалить пароль пользователя
 /// </summary>
 /// <param name="user">Пользователь</param>
 public static bool Users_RemovePassword_Id(this User user)
 {
     if (XtraMessageBox.Show("Вы уверены, что хотите удалить пароль сотрудника?", "Удаление пароля",
                             MessageBoxButtons.YesNo, MessageBoxIcon.Question) != DialogResult.Yes)
     {
         return(false);
     }
     user.UserPassword = null;
     using (var db = new ApplicationEntitie(0))
     {
         db.Users.Find(user.Id)
         .UserPassword = null;
         db.SaveChanges();
         return(true);
     }
 }
예제 #8
0
        /// <summary>
        ///     Сохранить текущий внешний вид для объекта класса
        ///     <see cref="T:DevExpress.XtraGrid.GridControl" />
        ///     в базу данных
        /// </summary>
        /// <param name="formName">Имя формы</param>
        /// <param name="controlName">Имя контрола</param>
        /// <param name="layoutName">Название сохранённой настройки</param>
        /// <param name="layout">Массив настроек контрола</param>
        /// <param name="layoutType">Тип сохранения контрола</param>
        public static UserLayout UserLayout_Insert(string formName, string controlName, string layoutName, byte[] layout, int layoutType = 1)
        {
            UserLayout userLayout;
            var        name = formName + "." + controlName;

            using (var db = new ApplicationEntitie(0))
            {
                userLayout = new UserLayout
                {
                    Layout     = layout,
                    TableName  = name,
                    LayoutType = layoutType,
                    LayoutName = layoutName,
                    UserId     = DBUser.Working.Id
                };
                db.UserLayouts.Add(userLayout);
                db.SaveChanges();
            }
            return(userLayout);
        }
예제 #9
0
        private void CreateClick(object sender, EventArgs e)
        {
            errorProvider.ClearErrors();
            if (!ValidateChildren() || errorProvider.HasErrors)
            {
                DialogResult = DialogResult.None;
                return;
            }
            var user = new User
            {
                LastName   = ParseToDefaultForm(txtLastName.Text),
                FirstName  = ParseToDefaultForm(txtFirstName.Text),
                MiddleName = ParseToDefaultForm(txtMiddleName.Text)
            };
            var newPass = new ChangePasswordForm().NewPassword();

            if (newPass == null)
            {
                DialogResult = DialogResult.None;
                return;
            }
            user.UserPassword = Security.CreateHash(newPass);
            using (var dbUser = new ApplicationEntitie(0))
            {
                var roles = ccbRoles.Properties.Items.Cast <CheckedListBoxItem>()
                            .
                            Where(item => item.CheckState == CheckState.Checked)
                            .
                            Select(r => (int)r.Value);
                foreach (var role in dbUser.Roles.Where(rr => roles.Contains(rr.Id)))
                {
                    dbUser.Roles.Attach(role);
                    user.Roles.Add(role);
                }
                dbUser.Users.Add(user);
                dbUser.SaveChanges();
                NewUser = user;
            }
        }
예제 #10
0
 private void CreateClick(object sender, EventArgs e)
 {
     errorProvider.ClearErrors();
     if (!ValidateChildren() || errorProvider.HasErrors)
     {
         DialogResult = DialogResult.None;
         return;
     }
     var user = new User
     {
         LastName = ParseToDefaultForm(txtLastName.Text),
         FirstName = ParseToDefaultForm(txtFirstName.Text),
         MiddleName = ParseToDefaultForm(txtMiddleName.Text)
     };
     var newPass = new ChangePasswordForm().NewPassword();
     if (newPass == null)
     {
         DialogResult = DialogResult.None;
         return;
     }
     user.UserPassword = Security.CreateHash(newPass);
     using (var dbUser = new ApplicationEntitie(0))
     {
         var roles = ccbRoles.Properties.Items.Cast<CheckedListBoxItem>()
             .
             Where(item => item.CheckState == CheckState.Checked)
             .
             Select(r => (int) r.Value);
         foreach (var role in dbUser.Roles.Where(rr => roles.Contains(rr.Id)))
         {
             dbUser.Roles.Attach(role);
             user.Roles.Add(role);
         }
         dbUser.Users.Add(user);
         dbUser.SaveChanges();
         NewUser = user;
     }
 }
예제 #11
0
 private void DeleteStatesItemClick(object sender, EventArgs eventArgs)
 {
     if (!dxsmiRemove.Items.OfType <DXEditMenuItem>().Any(item => item.EditValue != null && (bool)item.EditValue))
     {
         MessageWindow.GetInstance("Не выбрано ни одно состояние");
     }
     else
     {
         using (var db = new ApplicationEntitie(0))
         {
             var database = db;
             foreach (var state in dxsmiRemove.Items
                      .OfType <DXEditMenuItem>()
                      .Where(item => (bool)item.EditValue)
                      .Select(item => database.UserLayouts.Find((int)item.Tag)))
             {
                 db.UserLayouts.Remove(state);
             }
             db.SaveChanges();
             MessageWindow.GetInstance("Выбранные состояния успешно удалены.", MessageType.Info);
         }
     }
 }
예제 #12
0
 /// <summary>
 ///     Сохранить текущий внешний вид для объекта класса
 ///     <see cref="T:DevExpress.XtraGrid.GridControl" />
 ///     в базу данных
 /// </summary>
 /// <param name="formName">Имя формы</param>
 /// <param name="controlName">Имя контрола</param>
 /// <param name="layout">Массив настроек контрола</param>
 /// <param name="layoutType">Тип сохранения контрола</param>
 public static UserLayout UserLayout_InsertUpdate(string formName, string controlName, byte[] layout, int layoutType = 1)
 {
     UserLayout userLayout;
     var name = formName + "." + controlName;
     using (var db = new ApplicationEntitie(0))
     {
         userLayout = db.UserLayouts.FirstOrDefault(ul => ul.UserId == DBUser.Working.Id &&
             ul.TableName == name && ul.LayoutType == layoutType);
         if (userLayout != null)
         {
             userLayout.Layout = layout;
         }
         else
         {
             userLayout = new UserLayout
             {
                 Layout = layout,
                 TableName = name,
                 LayoutType = layoutType,
                 UserId = DBUser.Working.Id
             };
             db.UserLayouts.Add(userLayout);
         }
         db.SaveChanges();
     }
     return userLayout;
 }
예제 #13
0
 /// <summary>
 ///     Удалить пароль пользователя
 /// </summary>
 /// <param name="user">Пользователь</param>
 public static bool Users_RemovePassword_Id(this User user)
 {
     if (XtraMessageBox.Show("Вы уверены, что хотите удалить пароль сотрудника?", "Удаление пароля",
         MessageBoxButtons.YesNo, MessageBoxIcon.Question) != DialogResult.Yes)
     {
         return false;
     }
     user.UserPassword = null;
     using (var db = new ApplicationEntitie(0))
     {
         db.Users.Find(user.Id)
             .UserPassword = null;
         db.SaveChanges();
         return true;
     }
 }
예제 #14
0
 /// <summary>
 ///     Вернуть внешний вид для объекта в значение по умолчанию
 /// </summary>
 /// <param name="form">форма</param>
 /// <param name="name">имя объекта</param>
 /// <param name="pc">Объект, для которого необходимо вернуть состояние</param>
 /// <returns>Возвращается массив байтов</returns>
 public static void SaveDefaultLayout(this Form form, string name, Control pc)
 {
     using (var db = new ApplicationEntitie(0))
     {
         if (form == null)
         {
             throw new ArgumentException("Форма не задана");
         }
         var tableName = form.Name + "." + name;
         var layout = pc.GetLayoutData();
         var defLayout = db.DefaultLayouts.FirstOrDefault(dl => dl.TableName == tableName);
         if (defLayout == null)
         {
             defLayout = new DefaultLayout
             {
                 TableName = tableName,
                 Layout = layout
             };
             db.DefaultLayouts.Add(defLayout);
         }
         else if (!db.DefaultLayouts.Any(dl => dl.cs_Layout == SqlFunctions.Checksum(layout)))
         {
             defLayout.Layout = layout;
         }
         db.SaveChanges();
     }
 }
예제 #15
0
 private void DeleteStatesItemClick(object sender, EventArgs eventArgs)
 {
     if (!dxsmiRemove.Items.OfType<DXEditMenuItem>().Any(item => item.EditValue != null && (bool)item.EditValue))
     {
         MessageWindow.GetInstance("Не выбрано ни одно состояние");
     }
     else
     {
         using (var db = new ApplicationEntitie(0))
         {
             var database = db;
             foreach (var state in dxsmiRemove.Items
                 .OfType<DXEditMenuItem>()
                 .Where(item => (bool)item.EditValue)
                 .Select(item => database.UserLayouts.Find((int)item.Tag)))
             {
                 db.UserLayouts.Remove(state);
             }
             db.SaveChanges();
             MessageWindow.GetInstance("Выбранные состояния успешно удалены.", MessageType.Info);
         }
     }
 }
예제 #16
0
 /// <summary>
 ///     Сохранить текущий внешний вид для объекта класса
 ///     <see cref="T:DevExpress.XtraGrid.GridControl" />
 ///     в базу данных
 /// </summary>
 /// <param name="control">Контрол для сохранения настроек</param>
 public static void SaveLastLayout(this Control control)
 {
     var tableName = control.UniqueName();
     using (var db = new ApplicationEntitie(0))
     {
         var layout = control.GetLayoutData();
         var userLayout = db.UserLayouts.FirstOrDefault(ul => ul.UserId == DBUser.Working.Id && ul.TableName == tableName && ul.LayoutType == 2);
         if (userLayout != null)
         {
             userLayout.Layout = layout;
         }
         else
         {
             userLayout = new UserLayout
             {
                 Layout = layout,
                 TableName = tableName,
                 LayoutType = 2,
                 UserId = DBUser.Working.Id
             };
             db.UserLayouts.Add(userLayout);
         }
         db.SaveChanges();
     }
 }
예제 #17
0
 /// <summary>
 ///     Сохранить текущий внешний вид для объекта класса
 ///     <see cref="T:DevExpress.XtraGrid.GridControl" />
 ///     в базу данных
 /// </summary>
 /// <param name="formName">Имя формы</param>
 /// <param name="controlName">Имя контрола</param>
 /// <param name="layoutName">Название сохранённой настройки</param>
 /// <param name="layout">Массив настроек контрола</param>
 /// <param name="layoutType">Тип сохранения контрола</param>
 public static UserLayout UserLayout_Insert(string formName, string controlName, string layoutName, byte[] layout, int layoutType = 1)
 {
     UserLayout userLayout;
     var name = formName + "." + controlName;
     using (var db = new ApplicationEntitie(0))
     {
         userLayout = new UserLayout
         {
             Layout = layout,
             TableName = name,
             LayoutType = layoutType,
             LayoutName = layoutName,
             UserId = DBUser.Working.Id
         };
         db.UserLayouts.Add(userLayout);
         db.SaveChanges();
     }
     return userLayout;
 }
예제 #18
0
 /// <summary>
 ///     Получить пользователя по Id
 /// </summary>
 /// <param name="user">Пользователь</param>
 /// <param name="password">Новый пароль</param>
 /// <returns>Объект пользователя</returns>
 public static bool UpdatePassword(this User user, string password)
 {
     user.UserPassword = password;
     using (var db = new ApplicationEntitie(0))
     {
         db.Users.Find(user.Id)
             .UserPassword = password;
         db.SaveChanges();
         return true;
     }
 }