Ejemplo n.º 1
0
        private void fillUserRefferenceCombo(int defaultValue)
        {
            UserTreeBL     userTreeBL     = new UserTreeBL();
            int            loggineduserid = int.Parse(UsersBS.loginedUser.get(UsersEntity.FIELD_ID).ToString());
            UserTreeEntity entity         = userTreeBL.get();

            cmbReferenceUserId.DataSource = null;
            cmbReferenceUserId.Items.Clear();

            var dataSource = new List <ComboBoxItem>();

            //BasicInfoUtil.AddUnKnown(dataSource);
            for (int i = 0; i < entity.Tables[entity.FilledTableName].Rows.Count; i++)
            {
                string name   = entity.get(i, UserTreeEntity.VIEW_FIELD_USER_NAME).ToString();
                string treeid = entity.get(i, UserTreeEntity.FIELD_ID).ToString();
                string userid = entity.get(i, UserTreeEntity.FIELD_USER_ID).ToString();
                dataSource.Add(new ComboBoxItem(name, treeid, userid));
            }

            cmbReferenceUserId.DataSource    = dataSource;
            cmbReferenceUserId.DisplayMember = "Text";
            cmbReferenceUserId.ValueMember   = "Value";
            for (int i = 0; i < cmbReferenceUserId.Items.Count; i++)
            {
                string c = ((ComboBoxItem)cmbReferenceUserId.Items[i]).CustomData;
                if (c != null && c.Equals(defaultValue.ToString()))
                {
                    cmbReferenceUserId.SelectedIndex = i;
                    break;
                }
            }
        }
Ejemplo n.º 2
0
        private void createTree(UserTreeEntity entity, TreeNode node)
        {
            UsersEntity userEntity = null;

            for (int i = 0; i < entity.Tables[entity.FilledTableName].Rows.Count; i++)
            {
                int childUserId = int.Parse(entity.get(i, UserTreeEntity.FIELD_USER_ID).ToString());
                int parentId    = int.Parse(entity.get(i, UserTreeEntity.FIELD_ID).ToString());
                userEntity = _usersBS.get(childUserId);
                TreeNode newNode = null;
                if (node == null)
                {
                    node           = new TreeNode(userEntity.ToString(i));
                    node.Tag       = NodeItem.ToNodeItem(entity, i);
                    node.ForeColor = Color.Green;
                    treeView1.Nodes.Add(node);
                    newNode = node;
                }
                else
                {
                    newNode           = new TreeNode(userEntity.ToString());
                    newNode.Tag       = NodeItem.ToNodeItem(entity, i);
                    newNode.ForeColor = Color.Green;
                    node.Nodes.Add(newNode);
                }

                createTree(_userTreeBL.getByParent(parentId), newNode);
            }
        }
Ejemplo n.º 3
0
        private void initTree()
        {
            UsersEntity    entity         = _usersBS.get(UsersEntity.FIELD_USER_TYPE + "=" + UsersBS.ADMIN);
            UserTreeEntity userTreeEntity = null;

            for (int i = 0; i < entity.Tables[entity.FilledTableName].Rows.Count; i++)
            {
                userTreeEntity = new UserTreeEntity();
                DataRow dr = userTreeEntity.Tables[userTreeEntity.TableName].NewRow();
                dr[UserTreeEntity.FIELD_USER_ID]   = entity.get(UsersEntity.FIELD_ID);
                dr[UserTreeEntity.FIELD_USER_PATH] = entity.get(UsersEntity.FIELD_ID).ToString();
                userTreeEntity.Tables[userTreeEntity.TableName].Rows.Add(dr);
                _userTreeBL.add(userTreeEntity);
            }

            userTreeEntity = _userTreeBL.get();
            for (int i = 0; i < userTreeEntity.Tables[userTreeEntity.FilledTableName].Rows.Count; i++)
            {
                entity = _usersBS.get(int.Parse(userTreeEntity.get(UserTreeEntity.FIELD_USER_ID).ToString()));
                TreeNode node = new TreeNode(entity.ToString());
                node.ForeColor = Color.Green;
                node.Tag       = NodeItem.ToNodeItem(userTreeEntity, i);
                treeView1.Nodes.Add(node);
            }
        }
Ejemplo n.º 4
0
        public int delete(int id)
        {
            AbstractCommonData entity   = new UserTreeEntity();
            string             delQuery = "DELETE FROM " + entity.TableName + " where " + entity.IndexFieldName + "=" + provider.getSQLString(id);

            return(provider.delete(delQuery));
        }
Ejemplo n.º 5
0
        private UserTreeEntity removeDuplicates(UserTreeEntity entity)
        {
            if (entity.Tables[entity.FilledTableName].Rows.Count == 0)
            {
                return(entity);
            }
            string treeids  = "";
            string blackids = "";
            int    u1       = -1;

            for (int i = 0; i < entity.Tables[entity.FilledTableName].Rows.Count; i++)
            {
                if (blackids.IndexOf(entity.get(i, UserTreeEntity.FIELD_ID) + ",") < 0)
                {
                    treeids += entity.get(i, UserTreeEntity.FIELD_ID) + ",";
                    u1       = int.Parse(entity.get(i, UserTreeEntity.FIELD_USER_ID).ToString());
                    int u2 = -1;
                    for (int j = i + 1; j < entity.Tables[entity.FilledTableName].Rows.Count; j++)
                    {
                        string treeId = entity.get(j, UserTreeEntity.FIELD_ID) + "";
                        u2 = int.Parse(entity.get(j, UserTreeEntity.FIELD_USER_ID).ToString());
                        if (u1 == u2)
                        {
                            blackids += treeId + ",";
                        }
                    }
                }
            }
            string cond = "ID IN(" + treeids.Substring(0, treeids.Length - 1) + ") AND ACTIVE=1";

            entity = new UserTreeEntity();
            provider.loadToDataSet(entity, cond);
            return(entity);
        }
Ejemplo n.º 6
0
        private UserTreeEntity joinEntities(UserTreeEntity u1, UserTreeEntity u2)
        {
            if (u2 == null)
            {
                return(u1);
            }
            if (u1 == null)
            {
                return(u2);
            }

            for (int i = 0; i < u2.Tables[u2.FilledTableName].Rows.Count; i++)
            {
                DataRow dr = u1.Tables[u1.FilledTableName].NewRow();

                int userid = int.Parse(u2.get(i, UserTreeEntity.FIELD_USER_ID).ToString());
                if (!ContainsItem(userid, u1))
                {
                    dr[UserTreeEntity.VIEW_FIELD_USER_NAME]     = u2.get(i, UserTreeEntity.VIEW_FIELD_USER_NAME);
                    dr[UserTreeEntity.VIEW_FIELD_USER_USERTYPE] = u2.get(i, UserTreeEntity.VIEW_FIELD_USER_USERTYPE);
                    dr[UserTreeEntity.FIELD_ID]        = u2.get(i, UserTreeEntity.FIELD_ID);
                    dr[UserTreeEntity.FIELD_PARENT_ID] = u2.get(i, UserTreeEntity.FIELD_PARENT_ID);
                    dr[UserTreeEntity.FIELD_RADIF]     = u2.get(i, UserTreeEntity.FIELD_RADIF);
                    dr[UserTreeEntity.FIELD_USER_ID]   = u2.get(i, UserTreeEntity.FIELD_USER_ID);
                    dr[UserTreeEntity.FIELD_USER_PATH] = u2.get(i, UserTreeEntity.FIELD_USER_PATH);

                    u1.Tables[u1.FilledTableName].Rows.Add(dr);
                }
            }

            return(u1);
        }
Ejemplo n.º 7
0
        private void LoadUsers()
        {
            int            logginedUserid = int.Parse(UsersBS.loginedUser.get(UsersEntity.FIELD_ID).ToString());
            UserTreeEntity entity         = null;

            if (_userTreeId <= 0)
            {
                fillUserRefferenceCombo(-1);
                rbAdmins.Enabled = false;
                rbUsers.Enabled  = false;
            }
            else
            {
                if (rbAdmins.Checked)
                {
                    entity = _userTreeBL.getByUserType(UsersBS.ADMIN);
                }
                else if (rbUsers.Checked)
                {
                    int type = int.Parse(UsersBS.loginedUser.get(UsersEntity.FIELD_USER_TYPE).ToString());
                    if (type == UsersBS.ADMIN)
                    {
                        entity = _userTreeBL.get();
                    }
                    else
                    {
                        UserTreeEntity entity1 = _userTreeBL.getByUser(logginedUserid);
                        UserTreeEntity entity2 = _userTreeBL.getParent(logginedUserid);

                        entity = joinEntities(entity1, entity2);
                    }
                }
                lstUserList.DataSource = null;
                lstUserList.Items.Clear();

                var dataSource = new List <ComboBoxItem>();
                //BasicInfoUtil.AddUnKnown(dataSource);
                string hash = "";
                if (entity != null && entity.Tables[entity.FilledTableName].Rows.Count > 0)
                {
                    for (int i = 0; i < entity.Tables[entity.FilledTableName].Rows.Count; i++)
                    {
                        string name   = entity.get(i, UserTreeEntity.VIEW_FIELD_USER_NAME).ToString();
                        string treeid = entity.get(i, UserTreeEntity.FIELD_ID).ToString();
                        string userid = entity.get(i, UserTreeEntity.FIELD_USER_ID).ToString();

                        if (hash.IndexOf(userid + ",") < 0)
                        {
                            dataSource.Add(new ComboBoxItem(name, treeid, userid));
                        }
                        hash += userid + ",";
                    }

                    lstUserList.DataSource    = dataSource;
                    lstUserList.DisplayMember = "Text";
                    lstUserList.ValueMember   = "Value";
                    lstUserList.SelectedIndex = 0;
                }
            }
        }
Ejemplo n.º 8
0
        private int getUserInTree(int id)
        {
            UserTreeBL     bl = new UserTreeBL();
            UserTreeEntity en = bl.getUserAllAccessPath(id);

            return(en.Tables[en.FilledTableName].Rows.Count);
        }
Ejemplo n.º 9
0
        public UserTreeEntity getByUserTableId(int userid)
        {
            UserTreeEntity entity = new UserTreeEntity();
            string         cond   = UserTreeEntity.FIELD_USER_ID + "=" + userid;

            provider.loadToDataSet(entity, cond);
            return(entity);
        }
Ejemplo n.º 10
0
        public UserTreeEntity getByUserType(int userType)
        {
            UserTreeEntity entity = new UserTreeEntity();
            string         cond   = UserTreeEntity.VIEW_FIELD_USER_USERTYPE + "=" + userType;

            provider.loadToDataSet(entity, cond);
            return(entity);
        }
Ejemplo n.º 11
0
        public UserTreeEntity getByUserIds(string ids)
        {
            UserTreeEntity entity = new UserTreeEntity();
            string         cond   = UserTreeEntity.FIELD_USER_ID + " in (" + ids + ")";

            provider.loadToDataSet(entity, cond);
            return(entity);
        }
Ejemplo n.º 12
0
        public UserTreeEntity get()
        {
            UserTreeEntity entity = new UserTreeEntity();

            //string cond = UserTreeEntity.FIELD_LETTER_TYPE + "=" + provider.getSQLString(letterType);
            provider.loadToDataSet(entity);
            return(removeDuplicates(entity));
        }
Ejemplo n.º 13
0
        public UserTreeEntity getByUserId(string userid)
        {
            UserTreeEntity entity = new UserTreeEntity();
            string         cond   = "'/'+" + UserTreeEntity.FIELD_USER_PATH + " like" + provider.getSQLString("%/" + userid + "/%");

            provider.loadToDataSet(entity, cond);
            return(entity);
        }
Ejemplo n.º 14
0
        public UserTreeEntity get(int id)
        {
            UserTreeEntity entity = new UserTreeEntity();
            string         cond   = UserTreeEntity.FIELD_ID + "=" + provider.getSQLString(id);

            provider.loadToDataSet(entity, cond);
            return(entity);
        }
Ejemplo n.º 15
0
        public UserTreeEntity getUserAllAccessPath(int userid)
        {
            UserTreeEntity entity = new UserTreeEntity();
            string         cond   = "'/'+" + UserTreeEntity.FIELD_USER_PATH + "+'/' like" + provider.getSQLString("/%" + userid + "/%");

            provider.loadToDataSet(entity, cond);

            return(removeDuplicates(entity));
        }
Ejemplo n.º 16
0
        public UserTreeEntity getByUser(int userId)
        {
            //UserTreeEntity userTreeEntity = get(userTreeId);
            //string userPath = userTreeEntity.get(UserTreeEntity.FIELD_USER_PATH).ToString();
            string         userPath = userId + "";
            UserTreeEntity u        = ((UserTreeDA)_abstractDA).getByUserId(userPath);

            return(u);
        }
Ejemplo n.º 17
0
        public int getUserIdByTreeId(int userTreeId)
        {
            //UserTreeEntity userTreeEntity = get(userTreeId);
            //string userPath = userTreeEntity.get(UserTreeEntity.FIELD_USER_PATH).ToString();
            if (userTreeId < 0)
            {
                return(userTreeId);
            }
            UserTreeEntity u      = ((UserTreeDA)_abstractDA).get(userTreeId);
            int            userid = int.Parse(u.get(UserTreeEntity.FIELD_USER_ID).ToString());

            return(userid);
        }
Ejemplo n.º 18
0
        private bool ContainsItem(int userid, UserTreeEntity entity)
        {
            for (int i = 0; i < entity.RowCount(); i++)
            {
                int uid = int.Parse(entity.get(i, UserTreeEntity.FIELD_USER_ID).ToString());
                if (uid == userid)
                {
                    return(true);
                }
            }

            return(false);
        }
Ejemplo n.º 19
0
        //return treeids for user of this tree -- users that is owner of nodes
        private string getSameUserIdsLikeThisNode(int treeid)
        {
            string         treeids = "";
            UserTreeEntity uEntity = _userTreeBL.get(treeid);
            int            userid  = int.Parse(uEntity.get(UserTreeEntity.FIELD_USER_ID).ToString());

            uEntity = _userTreeBL.getByUserTableId(userid);
            for (int i = 0; i < uEntity.Tables[uEntity.FilledTableName].Rows.Count; i++)
            {
                treeids += uEntity.get(i, UserTreeEntity.FIELD_ID) + ",";
            }

            return(treeids.Substring(0, treeids.Length - 1));
        }
Ejemplo n.º 20
0
        public int updateRefferenceUser(int letterid, int userTreeId)
        {
            if (letterid < 0)
            {
                return(0);
            }
            //
            int referFromUserId = int.Parse(UsersBS.loginedUser.get(UsersEntity.FIELD_ID).ToString());

            ((LetterDA)_abstractDA).updateRefferenceUser(letterid, userTreeId, referFromUserId);

            ReferLetterBL referLetterBL = new ReferLetterBL();
            //Register Refer to referletter table
            int currUserId = int.Parse(UsersBS.loginedUser.get(UsersEntity.FIELD_ID).ToString());
            // کاربری که در درخت قرار دارد را شناسایی کرده و
            // به userTreeUserId الحاق شود
            UserTreeBL userTreeBL = new UserTreeBL();

            UserTreeEntity usertreeEntity = userTreeBL.get(userTreeId);
            int            usertreeUserId = int.Parse(usertreeEntity.get(UserTreeEntity.FIELD_USER_ID).ToString());

            //بررسی برای برگشت ارجاع
            // اگر برگشت باشد ثبت می کند
            checkForReferenceCycle(letterid, currUserId, usertreeUserId);


            ReferLetterEntity entity = new ReferLetterEntity();
            DataRow           dr     = entity.Tables[entity.TableName].NewRow();

            dr[ReferLetterEntity.FIELD_LETTER_ID]       = letterid;
            dr[ReferLetterEntity.FIELD_REFER_DATE]      = DateTime.Now;
            dr[ReferLetterEntity.FIELD_REFER_FROM_USER] = currUserId;
            dr[ReferLetterEntity.FIELD_REFER_TO_USER]   = usertreeUserId;// کاربر در درخت کاربران

            entity.Tables[entity.TableName].Rows.Add(dr);
            referLetterBL.add(entity);

            //check how many reffer occured this letter
            // اگر بیش از حد ارجاع شده باشد رنگ ان را تغییر خواهیم داد
            int refCount = referLetterBL.getReferCount(letterid);
            ApplicationPropertiesBL appProBl = new ApplicationPropertiesBL();
            int masterRefCount = int.Parse(appProBl.getValue(ApplicationPropertiesBL.REFERENCE_COUNT));

            if (refCount >= masterRefCount)
            {
                string refColor = appProBl.getValue(ApplicationPropertiesBL.COLOR_REFERENCE_LIMIT);
                updateRefColor(letterid, refColor);
            }
            return(1);
        }
Ejemplo n.º 21
0
        public static NodeItem ToNodeItem(UserTreeEntity entity, int index)
        {
            NodeItem item = new NodeItem();

            item.Id     = int.Parse(entity.get(index, UserTreeEntity.FIELD_ID).ToString());
            item.UserId = int.Parse(entity.get(index, UserTreeEntity.FIELD_USER_ID).ToString());

            if (entity.get(index, UserTreeEntity.FIELD_PARENT_ID).ToString().Length > 0)
            {
                item.ParentId = int.Parse(entity.get(index, UserTreeEntity.FIELD_PARENT_ID).ToString());
            }
            item.UserPath = entity.get(index, UserTreeEntity.FIELD_USER_PATH).ToString();
            return(item);
        }
Ejemplo n.º 22
0
        public void loadTree()
        {
            UserTreeEntity entity = _userTreeBL.getByParent(-1);

            if (entity.Tables[entity.FilledTableName].Rows.Count <= 0)
            {
                initTree();
            }
            else
            {
                createTree(entity, null);
            }
            treeView1.Nodes[0].Expand();
        }
Ejemplo n.º 23
0
        private bool checkIsLetterUserEqualLogginedUser(int ownerTreeNodeId)
        {
            int            loggindeUserId = int.Parse(UsersBS.loginedUser.get(UsersEntity.FIELD_ID).ToString());
            UserTreeBL     userTree       = new UserTreeBL();
            UserTreeEntity treeEntity     = userTree.get(ownerTreeNodeId);

            if (treeEntity.Tables[treeEntity.FilledTableName].Rows.Count > 0)
            {
                int userId = int.Parse(treeEntity.get(UserTreeEntity.FIELD_USER_ID).ToString());
                if (userId.Equals(loggindeUserId))
                {
                    return(true);
                }
            }
            return(false);
        }
Ejemplo n.º 24
0
        public UserTreeEntity getByParentId(int parentId)
        {
            UserTreeEntity entity = new UserTreeEntity();
            string         cond   = "";

            if (parentId <= 0)
            {
                cond = UserTreeEntity.FIELD_PARENT_ID + " <=0 OR " + UserTreeEntity.FIELD_PARENT_ID + " IS NULL";
            }
            else
            {
                cond = UserTreeEntity.FIELD_PARENT_ID + "=" + provider.getSQLString(parentId);
            }
            provider.loadToDataSet(entity, cond);
            return(entity);
        }
Ejemplo n.º 25
0
        public string getAllChildsIds(int parentId)
        {
            UserTreeEntity entity = ((UserTreeDA)_abstractDA).getByParentId(parentId);

            if (entity.Tables[entity.FilledTableName].Rows.Count <= 0)
            {
                return("");
            }
            string ids = "";

            for (int i = 0; i < entity.RowCount(); i++)
            {
                ids += entity.get(i, UserTreeEntity.FIELD_USER_ID).ToString() + ",";
            }
            return(ids.Substring(0, ids.Length - 1));
        }
Ejemplo n.º 26
0
        private void mnuAddUser_Click(object sender, EventArgs e)
        {
            TreeNode parentNode     = (TreeNode)contextMenuStrip.Tag;
            NodeItem parentNodeItem = (NodeItem)parentNode.Tag;
            //show user List
            UserList list   = new UserList();
            string   childs = _userTreeBL.getAllChildsIds(parentNodeItem.Id);

            list.UnselectIds = parentNodeItem.UserPath.Replace("/", ",") + (childs.Length > 0? "," + childs : "");
            list.initList();
            list.ShowAdminUsers = false;
            list.ShowDialog();
            //prepare to create node and save it to database and also show in tree
            string name   = list.UserName;
            int    userid = list.Id;

            if (userid > 0) // if any user selected
            {
                //بررسی تکراری وارد نکردن کاربر
                if (("/" + parentNodeItem.UserPath + "/").IndexOf("/" + userid + "/") >= 0)
                {
                    MessageBox.Show("کاربری که اضافه می کنید در سطوح بالاتر وجود دارد، امکان اضافه کردن کاربر تکراری وجود ندارد");
                    return;
                }
                //create entity
                UserTreeEntity userTreeEntity = new UserTreeEntity();
                DataRow        dr             = userTreeEntity.Tables[userTreeEntity.TableName].NewRow();
                dr[UserTreeEntity.FIELD_USER_ID]   = userid;
                dr[UserTreeEntity.FIELD_PARENT_ID] = parentNodeItem.Id;
                dr[UserTreeEntity.FIELD_USER_PATH] = parentNodeItem.UserPath + "/" + userid;

                //add entity to database
                userTreeEntity.Tables[userTreeEntity.TableName].Rows.Add(dr);
                int newid = _userTreeBL.add(userTreeEntity);

                dr[UserTreeEntity.FIELD_ID]    = newid;
                userTreeEntity.FilledTableName = userTreeEntity.TableName;

                //create node and add it to Tree
                UsersEntity entity = _usersBS.get(userid);
                TreeNode    node   = new TreeNode(entity.ToString());

                node.Tag = NodeItem.ToNodeItem(userTreeEntity);
                parentNode.Nodes.Add(node);
                parentNode.Expand();
            }
        }
Ejemplo n.º 27
0
        public UserTreeEntity getParent(int userid)
        {
            UserTreeEntity entity = new UserTreeEntity();
            string         cond   = "'/'+" + UserTreeEntity.FIELD_USER_PATH + " like" + provider.getSQLString("%/" + userid + "");

            provider.loadToDataSet(entity, cond);
            string parentIds = "";

            for (int i = 0; i < entity.Tables[entity.FilledTableName].Rows.Count; i++)
            {
                string path = entity.get(i, UserTreeEntity.FIELD_USER_PATH).ToString();
                if (path != null && path.Length >= 3)
                {
                    parentIds += getParent(path) + ",";
                }
            }

            if (parentIds.Length > 0)
            {
                parentIds = parentIds.Substring(0, parentIds.Length - 1);
                return(getByUserIds(parentIds));
            }
            return(null);
        }
Ejemplo n.º 28
0
        private void mnuDeleteUser_Click(object sender, EventArgs e)
        {
            TreeNode parentNode     = (TreeNode)contextMenuStrip.Tag;
            NodeItem parentNodeItem = (NodeItem)parentNode.Tag;

            UserTreeEntity userTreeEntity = _userTreeBL.getByParent(parentNodeItem.Id);

            if (userTreeEntity.RowCount() > 0)
            {
                MessageBox.Show("برای حذف یک نود کاربر باید ابتدا تمامی کاربران زیرین را حذف نمایید!");
                return;
            }
            else
            {
                DeleteUserForm form = new DeleteUserForm();
                form.UserTreeId = parentNodeItem.Id;
                form.loadForm();
                form.ShowDialog();
                if (form.IsUserTreeNodeDeleted)
                {
                    parentNode.Remove();
                }
            }
        }
Ejemplo n.º 29
0
 public static NodeItem ToNodeItem(UserTreeEntity entity)
 {
     return(ToNodeItem(entity, 0));
 }
Ejemplo n.º 30
0
 public int add(UserTreeEntity entity)
 {
     return(((UserTreeDA)_abstractDA).add(entity));
 }