private void NewUserFormShown(object sender, EventArgs e) { using (var db = new ApplicationEntitie(0)) { ccbRoles.Properties.DataSource = db.Roles.ToList(); } }
/// <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(); } }
/// <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); } } }
/// <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(); } }
/// <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); }
/// <summary> /// Получить пользователя по Id /// </summary> /// <param name="id">Id пользователя</param> /// <returns>Объект пользователя</returns> public static User Users_Select_Id(int id) { using (var db = new ApplicationEntitie(0)) { return(db.Users.Include(u => u.Roles) .First(u => u.Id == id)); } }
public static void Refresh <T>(this ApplicationEntitie db) where T : class { foreach (var entity in db.Set <T>()) { db.Entry(entity).State = EntityState.Detached; } db.Set <T>().Load(); }
/// <summary> /// Получить всех пользователей в виде массива /// </summary> /// <returns>Массив объектов пользователей</returns> public static List <User> Users_SelectNotLocked() { using (var db = new ApplicationEntitie(0)) { return(db.Users .Where(u => !u.IsLocked) .ToList()); } }
/// <summary> /// Загрузить состояние контролов по умолчанию для формы /// </summary> /// <param name="form">Форма для загрузки настроек</param> public static string DefaultFormState_Load_FormName(this Form form) { using (var dbAdmin = new ApplicationEntitie(0)) { return dbAdmin.DefaultFormStates.Any(f => f.FormName == form.Name) ? dbAdmin.DefaultFormStates.First(f => f.FormName == form.Name).DefaultXml : null; } }
/// <summary> /// Загрузить состояние контролов по умолчанию для формы /// </summary> /// <param name="form">Форма для загрузки настроек</param> public static string DefaultFormState_Load_FormName(this Form form) { using (var dbAdmin = new ApplicationEntitie(0)) { return(dbAdmin.DefaultFormStates.Any(f => f.FormName == form.Name) ? dbAdmin.DefaultFormStates.First(f => f.FormName == form.Name).DefaultXml : null); } }
/// <summary> /// Получить настройки для ролей данного пользователя для заданной формы /// </summary> /// <param name="form">Заданная формы</param> /// <returns>Список xml с настройками</returns> public static List<string> RolesRule_Load_FormName(this Form form) { using (var dbAdmin = new ApplicationEntitie(0)) { var rolesId = DBUser.Working.Roles.Select(r => r.Id); return (from rr in dbAdmin.RolesRules where rolesId.Contains(rr.RoleId) && rr.FormName == form.Name select rr.ControlsXML).ToList(); } }
/// <summary> /// Получить настройки для ролей данного пользователя для заданной формы /// </summary> /// <param name="form">Заданная формы</param> /// <returns>Список xml с настройками</returns> public static List <string> RolesRule_Load_FormName(this Form form) { using (var dbAdmin = new ApplicationEntitie(0)) { var rolesId = DBUser.Working.Roles.Select(r => r.Id); return((from rr in dbAdmin.RolesRules where rolesId.Contains(rr.RoleId) && rr.FormName == form.Name select rr.ControlsXML).ToList()); } }
/// <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); } }
/// <summary> /// Получить список ролей для текущего пользователя /// </summary> /// <returns>Строка с перечисленными ролями пользователя</returns> public static string GetRolesIdStrin(this User user) { var result = new StringBuilder(); using (var db = new ApplicationEntitie(0)) { var roles = db.Users.First(u => u.Id == user.Id).Roles; foreach (var role in roles) { result.Append(role.Id + " "); } } return result.ToString(); }
/// <summary> /// Получить список ролей для текущего пользователя /// </summary> /// <returns>Строка с перечисленными ролями пользователя</returns> public static string GetRolesIdStrin(this User user) { var result = new StringBuilder(); using (var db = new ApplicationEntitie(0)) { var roles = db.Users.First(u => u.Id == user.Id).Roles; foreach (var role in roles) { result.Append(role.Id + " "); } } return(result.ToString()); }
public static void Add(this ApplicationEntitie db, object entity) { try { if (db.Entry(entity).State != EntityState.Added) { db.Entry(entity).State = EntityState.Added; } } catch (Exception e) { DBException.WriteLog(e); } }
public virtual void RefreshData() { if (DesignMode) { return; } if (CheckToSaveData() == DialogResult.Cancel) { return; } if (DBAppContext != null) { DBAppContext = new ApplicationEntitie(0); } }
public static bool CheckExist(this ApplicationEntitie db, object entity) { try { if (db.Entry(entity).State != EntityState.Detached) { return(true); } } catch (Exception) { return(false); } return(false); }
/// <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); } }
/// <summary> /// Применить настройку внешнего вида для объекта из таблицы настроек по умолчанию /// </summary> /// <param name="form">Форма на которой находится объект</param> /// <param name="name">Название объекта</param> /// <param name="control">Объект</param> public static void AcceptDefaultLayoutForControl(this Form form, string name, Control control) { ISupportXtraSerializer sxs = null; var gc = control as GridControl; if (gc != null) { sxs = gc.MainView; } else { var pv = control as PivotGridControl; if (pv != null) { sxs = pv; } else { var tl = control as TreeList; if (tl != null) { sxs = tl; } } } if (sxs == null) { return; } using (var db = new ApplicationEntitie(0)) { var tableName = form.Name + "." + name; var defLayout = db.DefaultLayouts.FirstOrDefault(dl => dl.TableName == tableName); if (defLayout == null) { MessageWindow.GetInstance("Для данной формы не найдено начальное состояние."); return; } sxs.RestoreLayoutSerializingFromStream(defLayout.Layout); } var tuner = control.GetControlTuner() as ILayoutTuner; if (tuner != null) { tuner.LoadPropertiesFromXml(control, FormControls.XmlDocumentFromStrinList(form.GetXmlSettings())); } }
/// <summary> /// Вернуть последний сохранённый Layout для объекта /// </summary> /// <param name="form">форма</param> /// <param name="name">имя объекта</param> /// <returns>Возвращается массив байтов</returns> public static byte[] GetLastLayout(this Form form, string name) { using (var db = new ApplicationEntitie(0)) { if (form == null) { throw new ArgumentException("Форма не задана"); } var tableName = form.Name + "." + name; var userlayout = db.UserLayouts.FirstOrDefault(ul => ul.UserId == DBUser.Working.Id && ul.TableName == tableName && ul.LayoutType == 2); if (userlayout != null) { return(userlayout.Layout); } } return(null); }
public static void Remove(this ApplicationEntitie db, object entity) { try { if (db.Entry(entity).State == EntityState.Added) { db.Entry(entity).State = EntityState.Detached; } else if (db.Entry(entity).State != EntityState.Deleted) { db.Entry(entity).State = EntityState.Deleted; } } catch (Exception e) { DBException.WriteLog(e); } }
/// <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); }
public static bool HasAnyRelationships(this ApplicationEntitie db, Func <ObjectStateEntry, int, object> getValue) { db.ChangeTracker.DetectChanges(); var objectContext = ((IObjectContextAdapter)db).ObjectContext; return(objectContext .ObjectStateManager .GetObjectStateEntries(EntityState.Added) .Where(e => e.IsRelationship) .Select(e => Tuple.Create( objectContext.GetObjectByKey((EntityKey)getValue(e, 0)), objectContext.GetObjectByKey((EntityKey)getValue(e, 1)))) .Any() || objectContext .ObjectStateManager .GetObjectStateEntries(EntityState.Deleted) .Any(e => e.IsRelationship)); // .Select(e => Tuple.Create( // objectContext.GetObjectByKey((EntityKey) getValue(e, 0)), // objectContext.GetObjectByKey((EntityKey) getValue(e, 1)))).Any(); }
/// <summary> /// Получить список всех ролей из базы данных /// </summary> /// <param name="db">DBContext</param> /// <param name="formName">Название формы</param> /// <param name="roleId">Id роли</param> /// <returns>Настройки для формы</returns> public static string RolesRule_GetFormXML(this ApplicationEntitie db, string formName, int roleId) { string result = null; var roleRule = db.Where <RolesRule>(rr => rr.FormName.Equals(formName) && rr.RoleId == roleId).FirstOrDefault(); if (roleRule == null) { if (db.Where <DefaultFormState>(f => f.FormName == formName).Any()) { result = db .Where <DefaultFormState>(f => f.FormName == formName) .First() .DefaultXml; } } else { result = roleRule.ControlsXML; } return(result); }
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; } }
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; } }
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); } } }
/// <summary> /// Выбрать все роли в системе /// </summary> public static List <Role> Roles_SelectAll(this ApplicationEntitie db) { return(db.Roles.ToList()); }
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); } } }
/// <summary> /// Получить пользователя по Id /// </summary> /// <param name="id">Id пользователя</param> /// <returns>Объект пользователя</returns> public static User Users_Select_Id(int id) { using (var db = new ApplicationEntitie(0)) { return db.Users.Include(u => u.Roles) .First(u => u.Id == id); } }
/// <summary> /// Вернуть последний сохранённый Layout для объекта /// </summary> /// <param name="form">форма</param> /// <param name="name">имя объекта</param> /// <returns>Возвращается массив байтов</returns> public static byte[] GetLastLayout(this Form form, string name) { using (var db = new ApplicationEntitie(0)) { if (form == null) { throw new ArgumentException("Форма не задана"); } var tableName = form.Name + "." + name; var userlayout = db.UserLayouts.FirstOrDefault(ul => ul.UserId == DBUser.Working.Id && ul.TableName == tableName && ul.LayoutType == 2); if (userlayout != null) { return userlayout.Layout; } } return null; }
/// <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; } }
public static bool Any <T>(this ApplicationEntitie db, Func <T, bool> predicate) where T : class { return(db.Set <T>() .Any(predicate) || db.Set <T>() .Local.Any(predicate)); }
public static IEnumerable <T> WhereLocal <T>(this ApplicationEntitie db, Func <T, bool> predicate) where T : class { return(db.Set <T>().Local.Where(predicate)); }
/// <summary> /// Получить всех пользователей в виде массива /// </summary> /// <returns>Массив объектов пользователей</returns> public static List<User> Users_SelectNotLocked() { using (var db = new ApplicationEntitie(0)) { return db.Users .Where(u => !u.IsLocked) .ToList(); } }
/// <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; }
public static bool HasUnsavedChanges(this ApplicationEntitie db) { return(db.ChangeTracker.Entries() .Any(e => e.State == EntityState.Added || e.State == EntityState.Modified || e.State == EntityState.Deleted) || db.HasAnyRelationships((e, i) => e.CurrentValues[i])); }
public static IList <T> ToList <T>(this ApplicationEntitie db) where T : class { return(db.Set <T>().ToList()); }
public static T[] ToArray <T>(this ApplicationEntitie db) where T : class { return(db.Set <T>().ToArray()); }
/// <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; }
/// <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; } }