Exemple #1
0
        public static List<Person> GetPersons()
        {
            List<Person> persons = new List<Person>();

            SqlConnection con = new SqlConnection(GetConnectionString());
            string sel = "SELECT * " +
                "FROM tblPersons" ;

            SqlCommand cmd = new SqlCommand(sel, con);
            con.Open();
            SqlDataReader rdr =
                cmd.ExecuteReader(CommandBehavior.CloseConnection);

            while (rdr.Read())
            {
                Person p = new Person();
                p.Name = rdr["Name"].ToString();
                p.Mother = rdr["Mother"].ToString();
                p.Father = rdr["Father"].ToString();
                p.MaidenName = rdr["MaidenName"].ToString();
                p.BloodLine = rdr["BloodLine"].ToString();
                p.Description = rdr["Description"].ToString();

                persons.Add(p);
            }
            rdr.Close();

            return persons;
        }
Exemple #2
0
        private void FindChildren(Person currPerson, string name, string parentName ,bool firstChildIndicator)
        {
            Stack<Person> childrenOnStack = new Stack<Person>();
            Person personFromStack = new Person();

            //*
            int ndxPositionOfCurrPerson = treeStringbuilder.ToString().IndexOf(currPerson.Name);
            //*

            //if (treeStringbuilder.ToString().Contains(name))
            if (ndxPositionOfCurrPerson == -1) // if -1 then then parent does not exist
                AddChild(currPerson, name, parentName, firstChildIndicator);

            var nodes = from node in nodeList
                        where
                        node.Father == currPerson.Name
                        ||
                        node.Mother == currPerson.Name
                            select node;

            int counter = 1;
            foreach (var node in nodes)
            {
                if (counter == 1)
                    firstChildIndicator = true;
                else
                    firstChildIndicator = false;
                counter++;
                //if(node.BloodLine.Contains("Father"))

                //if (node.Father.Contains("Boman"))
                if (node.Father.Contains(currPerson.Name))
                {
                    node.ProcessingForWhichParent = node.Father;
                    AddChild(node, node.Name, node.Father, firstChildIndicator);
                }
                else
                {
                    node.ProcessingForWhichParent = node.Mother;
                    AddChild(node, node.Name, node.Mother, firstChildIndicator);
                }

                childrenOnStack.Push(node);
                firstChildIndicator = true;
            }

            while (childrenOnStack.Count > 0)
            {
                personFromStack = childrenOnStack.Pop();
                FindChildren(personFromStack, personFromStack.Name.ToString(), name, firstChildIndicator);
                firstChildIndicator = false;
            }
        }
Exemple #3
0
        public ActionResult Tree(string topOfTree)
        {
            ViewBag.Message = "             Choose a Person by Name";

            //commented code below works!
            //string myString = "<div class=\"tree\"> <ul>" +
            //"<li> <a href=\"#\">Joseph C Boman / Marilyn Whelehan</a> " +
            //    "<ul>  <li> <a href=\"#\">Jean</a> " +

            //        "<ul> <li> <a href=\"#\">Kristen</a></li>   " +
            //        "<li> <a href=\"#\">Allie</a> " +

            //"<ul> <li> <a href=\"#\">Ava</a> " +
            //"</li> </ul> </li> " +
            //    "</ul> </li>" +
            //"</li> </ul> " +
            //"</div> ";
            //StringBuilder myStringbuilder = new StringBuilder(myString);
            //ViewBag.BuildTree = myStringbuilder.ToString();

            // commented code below works!
            //Person
            //n = new Person("Gary Brinker", "Gary MomHere", "Ron Brinker"); nodeList.Add(n);
            //n = new Person("Jayden Cagle", "Sue Boman", "Chris Cagle"); nodeList.Add(n);
            //n = new Person("Joseph C. Boman", "", ""); nodeList.Add(n);
            //n = new Person("Allison Brinker - Boman", "Jean Brinker - Boman", "Gary Brinker"); nodeList.Add(n);
            //n = new Person("Jean Brinker - Boman", "Marilyn Whelehon", "Joseph C. Boman"); nodeList.Add(n);
            //n = new Person("Kristen Brinker - Boman", "Jean Brinker - Boman", "Gary Brinker"); nodeList.Add(n);
            //n = new Person("Ava Brinker - Boman", "Alley Brinker - Boman", "Fname Lname"); nodeList.Add(n);
            //n = new Person("Sue Boman", "Marilyn Whelehon", "Joseph C. Boman"); nodeList.Add(n);
            //n = new Person("Joe Boman jr.", "Marilyn Whelehon", "Joseph C. Boman"); nodeList.Add(n);

            // Populate the list of Persons
            nodeList = PersonDB.GetPersons();

            bool firstChildIndicator = true;

            //Person topPerson = new Person('Joseph C. Boman', N'Agnes Lorenz', N'William T. Boman', N'', N'Father', N'Test Dad Desc');
            //Person topPerson = new Person("Joseph C. Boman",  "",  "", "Father",  "Test Dad Desc", "test", "");

            string name = "Joseph C. Boman"; //First person with no known parents
            // string name = "Marilyn Whelehon"; //First person with no known parents

            //Person topPerson = new Person("Sarah Ann Lovelace", "", "", "", "", "", "Test Desc");
            //FindChildren(topPerson, "any old name", "", firstChildIndicator);

            //Person topPerson = new Person("Permaness Lovelace", "", "", "", "", "", "Test Desc");
            Person topPerson = new Person(topOfTree, "", "", "", "", "", "Test Desc");
            FindChildren(topPerson, "any old name", "", firstChildIndicator);

            ViewBag.AnotherTree = //"<a href=\"/Home/Person\">" + "</a>";
                "This is AnotherTree";
            //" <a href=\"@Url.Action(\"Home/Person\")\">" + " </a>  ";

            //treeStringbuilder.Insert(17, " style=\"border-style:solid; border-width:5px;\"");

            ViewBag.BuildTree = treeStringbuilder.ToString();
            // UnComment This Line

            return View();
        }
Exemple #4
0
        private void AddChild(Person currPerson, string name, string parentName, bool firstChildIndicator)
        {
            int insertPoint, lengthOfStringObj = 0;

            //* Test below code now
            string personString = "/Home/Person?name=" + currPerson.Name + "&" + "description=" + currPerson.Description;
            //* Test above code now
            if ( (currPerson.Mother == "") && (currPerson.Father == "") )
                treeStringbuilder.Insert(20, "<ul> <li> <a href=\"" + personString + "\">" + currPerson.Name + "</a>   </li>   </ul> ");
                //* works! treeStringbuilder.Insert(20, "<ul> <li> <a href=\"#\">" + currPerson.Name + "</a>   </li>   </ul> ");
                //treeStringbuilder.Insert(20, "<ul> <li> <a href=\"/Home/Person?name=Permaness Lovelace\">" + currPerson.Name + "</a>   </li>   </ul> ");
                //treeStringbuilder.Insert(20, "<ul> <li>" + "<a href=\"\\@Url.Action(\"Person\")\" > " + currPerson.Name + "</a>   </li>   </ul> ");
            else
            {
                insertPoint = treeStringbuilder.ToString().IndexOf(currPerson.ProcessingForWhichParent); /* Changed parentName */
                if (insertPoint == -1)
                {
                    /* this scenario occured when attempting to retrieve Mom's children
                     * when Dad's name was passed into the method as parentName */
                    System.Console.WriteLine("test message: Did not find parent");
                    System.Environment.Exit(insertPoint);
                }
                int i = insertPoint;
                if (firstChildIndicator == true)
                {
                    //first child logic
                    // find first space after the closing </a> tag of the parent
                    lengthOfStringObj = treeStringbuilder.Length;
                    do
                    {
                        if ((treeStringbuilder[i].Equals('<')) && (treeStringbuilder[i + 1].Equals('/')) && (treeStringbuilder[i + 2].Equals('a')) && (treeStringbuilder[i + 3].Equals('>')))
                        {
                            treeStringbuilder.Insert(i + 4, "<ul> <li> <a href=\"" + personString + "\">" + currPerson.Name + "</a>   </li>   </ul> ");
                            //* works! treeStringbuilder.Insert(i + 4, "<ul> <li> <a href=\"#\">" + currPerson.Name + "</a>   </li>   </ul> ");
                            break;
                        }
                        else
                            i++;
                    } while (i < lengthOfStringObj);
                }
                else
                {
                    //second child logic
                    // find first space after the first closing </li> tag after parents name
                    lengthOfStringObj = treeStringbuilder.Length;
                    do
                    {
                        if ((treeStringbuilder[i].Equals('<')) && (treeStringbuilder[i + 1].Equals('u')) && (treeStringbuilder[i + 2].Equals('l')) && (treeStringbuilder[i + 3].Equals('>') ))
                        {
                            treeStringbuilder.Insert(i + 5, "<li> <a href=\"" + personString + "\">" + currPerson.Name + "</a>  </li>  ");
                            //* works! treeStringbuilder.Insert(i + 5, "<li> <a href=\"#\">" + currPerson.Name + "</a>  </li>  ");
                            break;
                        }
                        else
                            i++;
                    } while (i < lengthOfStringObj);
                }
            }
        }