private void LoadData() { Type[] types = this.Assembly.GetTypes().Where(t => ((t.IsSubclassOf(typeof(Njit.Program.Forms.BaseForm)) || t.IsSubclassOf(typeof(Njit.Program.ComponentOne.Forms.BaseForm)) || (t.GetInterface(typeof(Njit.Common.IAccessPermission).FullName) != null)) && !t.IsSubclassOf(typeof(Njit.Program.Forms.MainForm)) && !t.IsSubclassOf(typeof(Njit.Program.ComponentOne.Forms.MainForm)))).ToArray(); try { this.Cursor = Cursors.WaitCursor; Model.MainModelDataContext dc = new Model.MainModelDataContext(this.Connection.ConnectionString); treeView.SuspendLayout(); treeView.Nodes.Clear(); foreach (var item in dc.AccessPermissionTrees.ToArray().Where(t => t.Group == null)) { TreeNode node = AddNode(null, item, types); AddSubNodes(dc, node, item, types); } //CheckNodesForControls(treeView.Nodes); AddFormsThatIsNotExist(types); treeView.ExpandAll(); treeView.ResumeLayout(true); } finally { this.Cursor = Cursors.Default; } }
private void AddSubNodes(Model.MainModelDataContext dc, TreeNode groupNode, Model.AccessPermissionTree accessPermissionTree, Type[] types) { foreach (var item in dc.AccessPermissionTrees.Where(t => t.Group == accessPermissionTree.Item)) { TreeNode node = AddNode(groupNode, item, types); AddSubNodes(dc, node, item, types); } }
private void SaveNodes(TreeNodeCollection treeNodeCollection, Model.MainModelDataContext dc) { foreach (TreeNode item in treeNodeCollection) { //int code; //var codeQuery = dc.AccessPermissionTrees.Select(t => t.ID).ToArray(); //if (codeQuery.Count() == 0) // code = 1; //else // code = codeQuery.Max() + 1; Njit.Common.IAccessPermission c = item.Tag as Njit.Common.IAccessPermission; Model.AccessPermissionTree entity = Model.AccessPermissionTree.GetNewInstance(c == null ? item.Text : c.GetPath(), item.Parent == null ? null : GetParentName(item), item.Text, item.Checked, false); int originalCode; if (int.TryParse(item.Name, out originalCode)) { var query = dc.AccessPermissionTrees.Where(t => t.ID == originalCode); if (query.Count() == 1) { Model.AccessPermissionTree originalEntity = query.Single(); //Model.AccessPermissionTree.Copy(originalEntity, entity); this.DataAccess.UpdateWithObject(entity, originalEntity); //originalEntity.ID = originalCode; } } else { this.DataAccess.InsertObject(entity); //dc.AccessPermissionTrees.InsertOnSubmit(entity); } dc.SubmitChanges(); if (item.Nodes.Count > 0) { SaveNodes(item.Nodes, dc); } } }
private void btnSave_Click(object sender, EventArgs e) { if (!CheckNodesForName(treeView.Nodes)) { return; } if (this.Connection == null) { PersianMessageBox.Show("پایگاه داده مشخص نشده است"); return; } this.DataAccess.Execute("UPDATE [AccessPermissionTree] SET [Flag]=@p", "@p", true); Model.MainModelDataContext dc = new Model.MainModelDataContext(this.Connection.ConnectionString); SaveNodes(treeView.Nodes, dc); dc.SubmitChanges(); this.DataAccess.Execute("DELETE FROM [AccessPermissionTree] WHERE [Flag]=@p", "@p", true); PersianMessageBox.Show("ذخیره شد"); }