예제 #1
0
        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;
            }
        }
예제 #2
0
 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);
     }
 }
예제 #3
0
        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);
                }
            }
        }
예제 #4
0
        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("ذخیره شد");
        }