private void AddSearchPropertyNode(SearchProperty phrase, AdvanceSearchNode andOrNode)
        {
            var newnode = new AdvanceSearchNode();

            newnode.ParentNode = andOrNode;
            newnode.Title      = phrase.ColumnID.ToString();
            andOrNode.ChildItems.Add(newnode);
            newnode.NodeManager = andOrNode.NodeManager.AddChildItem();
            newnode.NodeManager.SetHeader(newnode.Title);
            newnode.Phrase = phrase;

            I_AdvanceSearchMenu removeMenu = newnode.NodeManager.AddMenu("حذف");

            removeMenu.Clicked += (sender1, e1) => RemoveMenu_Clicked(sender1, e1, andOrNode, newnode);
        }
        //private AdvanceSearchNode AddSearchRepository(AdvanceSearchNode parentNode, DP_SearchRepository searchRepository)
        //{
        //    if (searchRepository == null)
        //        return null;
        //    var newnode = new AdvanceSearchNode();
        //    newnode.ParentNode = parentNode;
        //    newnode.Title = searchRepository.Name;
        //    newnode.NodeManager.SetHeader(newnode.Title);
        //    newnode.Phrase = searchRepository;
        //    if (parentNode != null)
        //    {
        //        parentNode.ChildItems.Clear();
        //        parentNode.NodeManager.ClearItems();
        //        newnode.EntityID = searchRepository.TargetEntityID;
        //        newnode.NodeManager = parentNode.NodeManager.AddChildItem();

        //    }
        //    else
        //    {
        //        newnode.EntityID = SearchInitializer.EntityID;
        //        RootNode = newnode;
        //        newnode.NodeManager = AdvancedSearchView.AddTreeItem();
        //    }
        //    foreach (var item in searchRepository.Phrases)
        //    {
        //        if (item is DP_SearchRepository)
        //        {
        //            AddSearchRepository(newnode, (item as DP_SearchRepository));
        //        }
        //        else if (item is LogicPhrase)
        //        {
        //            AddLogicPhrase(newnode, (item as LogicPhrase));
        //        }
        //        else if (item is SearchProperty)
        //        {
        //            AddChildNode((item as SearchProperty), newnode);
        //        }
        //    }
        //    return newnode;
        //}
        private AdvanceSearchNode AddLogicNode(AdvanceSearchNode parentNode, LogicPhraseDTO logicPhrase)
        {
            if (RootNode == null && logicPhrase is DP_SearchRepository)
            {
                firstRepository = logicPhrase as DP_SearchRepository;
            }

            var newnode = new AdvanceSearchNode();

            newnode.ParentNode = parentNode;
            if (logicPhrase is DP_SearchRepository)
            {
                newnode.Title = (logicPhrase as DP_SearchRepository).Title;
            }
            else
            {
                if (logicPhrase.AndOrType == AndOREqualType.And)
                {
                    newnode.Title = "And";
                }
                else if (logicPhrase.AndOrType == AndOREqualType.Or)
                {
                    newnode.Title = "Or";
                }
                else if (logicPhrase.AndOrType == AndOREqualType.NotAnd)
                {
                    newnode.Title = "Not And";
                }
                else if (logicPhrase.AndOrType == AndOREqualType.NotOr)
                {
                    newnode.Title = "Not Or";
                }
            }
            if (parentNode != null)
            {
                if (logicPhrase is DP_SearchRepository)
                {
                    newnode.EntityID = (logicPhrase as DP_SearchRepository).TargetEntityID;
                }
                else
                {
                    newnode.EntityID = parentNode.EntityID;
                }
            }
            else
            {
                newnode.EntityID = SearchInitializer.EntityID;
            }
            if (parentNode != null)
            {
                parentNode.ChildItems.Add(newnode);
            }
            else
            {
                RootNode = newnode;
            }
            if (parentNode != null)
            {
                newnode.NodeManager = parentNode.NodeManager.AddChildItem();
            }
            else
            {
                newnode.NodeManager = AdvancedSearchView.AddTreeItem();
            }
            newnode.NodeManager.SetHeader(newnode.Title);
            newnode.Phrase = logicPhrase;
            //(newnode.Phrase as LogicPhrase).AndOrType = logicPhrase.AndOrType;
            foreach (var item in logicPhrase.Phrases)
            {
                if (item is DP_SearchRepository)
                {
                    AddLogicNode(newnode, (item as LogicPhraseDTO));
                }
                else if (item is LogicPhraseDTO)
                {
                    AddLogicNode(newnode, (item as LogicPhraseDTO));
                }
                else if (item is SearchProperty)
                {
                    AddSearchPropertyNode((item as SearchProperty), newnode);
                }
            }
            if (GetParentSearchRepository(newnode))
            {
                I_AdvanceSearchMenu rootAndMenu = newnode.NodeManager.AddMenu("And");
                rootAndMenu.Clicked += (sender, e) => RootAndMenu_Clicked(sender, e, newnode, AndOREqualType.And);
                I_AdvanceSearchMenu rootNotAndMenu = newnode.NodeManager.AddMenu("Not And");
                rootAndMenu.Clicked += (sender, e) => RootAndMenu_Clicked(sender, e, newnode, AndOREqualType.NotAnd);
                I_AdvanceSearchMenu rootOrMenu = newnode.NodeManager.AddMenu("Or");
                rootOrMenu.Clicked += (sender, e) => RootAndMenu_Clicked(sender, e, newnode, AndOREqualType.Or);
                I_AdvanceSearchMenu rootNotOrMenu = newnode.NodeManager.AddMenu("Or");
                rootOrMenu.Clicked += (sender, e) => RootAndMenu_Clicked(sender, e, newnode, AndOREqualType.NotOr);

                I_AdvanceSearchMenu simpleSearchMenu = newnode.NodeManager.AddMenu("خصوصیات");
                simpleSearchMenu.Clicked += (sender1, e1) => RootAndMenu_Clicked1(sender1, e1, newnode);

                foreach (var relationship in FullEntity.Relationships) //.Where(x => x.SearchEnabled == true))
                {
                    I_AdvanceSearchMenu relationshipSearchMenu = newnode.NodeManager.AddMenu(relationship.Alias);
                    relationshipSearchMenu.Clicked += (sender1, e1) => Relationship_ClickedNew(sender1, e1, newnode, relationship);
                }
            }
            else
            {
                if (logicPhrase is DP_SearchRepository)
                {
                    I_AdvanceSearchMenu editRelationshipSearchMenu = newnode.NodeManager.AddMenu("اصلاح");
                    editRelationshipSearchMenu.Clicked += (sender1, e1) => Relationship_ClickedEdit(sender1, e1, newnode, (logicPhrase as DP_SearchRepository));
                }
            }
            if (parentNode != null)
            {
                I_AdvanceSearchMenu removeMenu = newnode.NodeManager.AddMenu("حذف");
                removeMenu.Clicked += (sender1, e1) => RemoveMenu_Clicked(sender1, e1, parentNode, newnode);
            }
            return(newnode);
        }