protected override void OnNavigatedTo(NavigationEventArgs e)
        {

            try
            {
                base.OnNavigatedTo(e);
                getIds = (string)e.Parameter;

                getParentID = getIds.Substring(0,1);
                getChildID = getIds.Substring(2);

                objChildrenViewModel = new ChildrenViewModel();
                objRegChild = new RegisterChild();

                objRegChild = objChildrenViewModel.getChildDetails(Convert.ToInt32(getChildID), Convert.ToInt32(getParentID));
                

                testsViewModel = new TestsViewModel();
                test = testsViewModel.GetTests(Convert.ToInt32(getIds.Substring(2)));

                lsViewTest.Items.Add("Test ID" + "\t" + "Right" + "\t" + "Wrong" + "\t" + "Date & Time");

                foreach (var c in test)
                {
                    lsViewTest.Items.Add(c.Id +  " \t" + c.RightAnswers + "\t" + c.WrongAnswers + "\t" + c.Date);

                }
                base.OnNavigatedTo(e);

                lblChId.Text = "" + objRegChild.Id + " - " + objRegChild.Name + " " + objRegChild.Surname; 

            }
            catch (Exception)
            {

            }


        }
        public ObservableCollection<ChildrenViewModel> GetChildren()
        {
            parents = new ObservableCollection<ChildrenViewModel>();
            using (var db = new SQLite.SQLiteConnection(app.dbPath))
            {
                var query = db.Query<RegisterChild>("select * from Child");
                foreach (var _register in query)
                {
                    var register = new ChildrenViewModel()
                    {
                        Id = _register.Id,
                        ParentId = _register.ParentId,
                        Name = _register.Name,
                        Surname = _register.Surname,
                        Age = _register.Age,
                        Grade = _register.Grade,

                    };
                    parents.Add(register);
                }
            }
            return parents;
        }
        protected override void OnNavigatedTo(NavigationEventArgs e)
        {

            try
            {
                base.OnNavigatedTo(e);
                getIds = (string)e.Parameter;

                parentID = Convert.ToInt32(getIds.Substring(0, 1));
                childID = Convert.ToInt32(getIds.Substring(2));

                objRegChild = new RegisterChild();
                objChildrenViewModel = new ChildrenViewModel();

                objRegChild = objChildrenViewModel.getChildDetails(childID, parentID);

                base.OnNavigatedTo(e);

            }
            catch (Exception)
            {

            }


        }
        //Button to delete all child test results
        private void btnDeleteAll_Click(object sender, RoutedEventArgs e)
        {
            if(!getChildID.Equals(""))
            {
                int convChildId = myChildId(getChildID);
                int convParentId = myParentId(getParentID);
                objChildrenViewModel = new ChildrenViewModel();
                objRegChild = new RegisterChild();
                objTestViewModel = new TestViewModel();

                objRegChild = objChildrenViewModel.getChildDetails(convChildId, convParentId);
                objTestViewModel.deleteChildTestRecords(convChildId);


                this.Frame.Navigate(typeof(SelectChildToViewPage), convParentId);
                string msg = "All child test records for " + objRegChild.Name + " " + objRegChild.Surname + " were successfully deleted";
                messageBox(msg);



            }
            else
            {
                messageBox("Child id can't be empty!");
            }
        }
        //Button to update child details
        private void btnEditChildDetails_Click(object sender, RoutedEventArgs e)
        {
            regChild = new RegisterChild();
            childrenViewModel = new ChildrenViewModel();

            int convertChildId = 0;
            int convertParentId = 0;
            string strMsg = "";

            try
            {
                int verifyNum;
                bool isNumerical = int.TryParse(idNum, out verifyNum);

                if (idNum.Equals("") || isNumerical == false)
                {
                    strMsg = "Please select a child first before proceeding with the editing process!";
                    messageBox(strMsg);

                }
                else
                {
                    convertChildId = Convert.ToInt32(idNum);
                    convertParentId = Convert.ToInt32(parentId);
                    regChild = childrenViewModel.getChildDetails(convertChildId, parentId);

                    if ((convertChildId <= 0) && (convertParentId <= 0))
                    {
                        strMsg = "Please select a child first before proceeding with the editing process!";
                        messageBox(strMsg);
                    }
                    else
                    {
                        if (regChild != null)
                        {
                            this.Frame.Navigate(typeof(EditedSelectedChildPage), regChild);
                            string msg = "Found child details in the database!";
                            messageBox(msg);
                        }
                        else
                        {
                            string msg = "Couldn't retrive child infomation from the database";
                            messageBox(msg);
                        }
                    }
                }
            }
            catch(Exception)
            {

            }

            
            
        }
        //Button for deleting a child from an account
        private void btnDeleteChild_Click(object sender, RoutedEventArgs e)
        {
            childrenViewModel = new ChildrenViewModel();
            objTestViewModel = new TestViewModel();

            string strMsg = "";
            int convNum = 0;
            try
            {
                int verifyNum;
                bool isNumerical = int.TryParse(idNum, out verifyNum);

                if (idNum.Equals("") || isNumerical == false)
                {
                        strMsg = "Please select a child first before proceeding with the deleting process!";
                        messageBox(strMsg);
                    }
                    else
                    {
                        convNum = myParentId(idNum);

                        if (convNum <= 0)
                        {
                            strMsg = "Please select a child first before proceeding with the delete process!";
                            messageBox(strMsg);
                        }
                        else
                        {
                    
                                childrenViewModel.deleteChildRecords(convNum);
                                objTestViewModel.deleteChildTestRecords(convNum);
                                strMsg = "You have successfully deleted: " + name + " from the database!";
                                messageBox(strMsg);
                                this.Frame.Navigate(typeof(MenuPage), parentId);
                    
                        }

                    }

              }
              catch (Exception)
              {

              }



        }
        private void btnProceed_Click(object sender, RoutedEventArgs e)
        {
            childrenViewModel = new ChildrenViewModel();
            string id = lblChildsID.Text;
            int convID = Convert.ToInt32(id);

            string newName = txtCurrentChildName.Text;
            string newSurname = txtCurrentChildSurname_.Text;
            string newAge = txtCurrentChildAge.Text;
            string getGrade = "" + cbCurrentChildGrade.SelectedItem;

            int result = 0;

            if ((!newSurname.Equals("")) && (!newSurname.Equals("")) && (!newAge.Equals("")) && (!getGrade.Equals("")))
            {

                int verifyNum;
                bool isNumerical = int.TryParse(newAge, out verifyNum);

                if(isNumerical == true)
                {
                    try
                    {
                        result = childrenViewModel.updateChildInfo(convID, parentID, newName, newSurname, newAge, getGrade);

                    }
                    catch (Exception)
                    {

                    }


                    if (result > 0)
                    {
                        int ConvParentIden = Convert.ToInt32(parentID);
                        this.Frame.Navigate(typeof(MenuPage), ConvParentIden);
                        string msg = "Child details update was successful!";
                        messageBox(msg);
                    }
                    else
                    {
                        string msg = "Couldn't update child information!";
                        messageBox(msg);
                    }
                }
                else
                {
                    msgs = "Please enter numeric characters only for the age!";
                    messageBox(msgs);
                }


                    

             }
             else
             {
                 msgs = "Please ensure that all fields are filled in before proceeding to update!";
                 messageBox(msgs);
             }
                
        }
        //Button to save new child details into the database

        private void btnSaveInformation_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                objChild = new ChildrenViewModel();

                string childName = txtChildName.Text;
                string childSurname = txtChildSurname.Text;
                string childAge = txtChildAge.Text;

                string getGrade = "" + cbSelectGrade.SelectedItem;


                //Verify that user inputs are not empty first
                if ((!childName.Equals("")) && (!childSurname.Equals("")) && (!childAge.Equals("")) && (!getGrade.Equals("")))
                {

                    //objChild.saveChild("" + parentId, childName, childSurname, childAge, getGrade);

                    int verifyNum;
                    bool isNumerical = int.TryParse(childAge, out verifyNum);

                    if (isNumerical == true)
                    {
                        try
                        {
                            //Insert the supplied user inputs into database here!
                            //Verify that the information was successfully inserted!
                            //user inputs were saved then redirect user to Login page!

                            int result = objChild.registerNewChild("" + parentId, childName, childSurname, childAge, getGrade);

                            string m = objChild.getMessage();


                            lblGetParentIdNum.Text = m;

                            if (result > 0)
                            {

                                this.Frame.Navigate(typeof(MenuPage), parentId);
                                messageToDisplay = "You have succesfully registered the following child to your account: " +
                                                    "\n" + childName + " " + childSurname;
                                messageBox(messageToDisplay);


                            }
                            else
                            {
                                this.Frame.Navigate(typeof(RegisterNewChild), parentId);
                                messageToDisplay = "Failed to register this child: " +
                                                    "\n" + childName + " " + childSurname;
                                messageBox(messageToDisplay);
                            }



                        }
                        catch (Exception)
                        {

                        }
                    }
                    else
                    {
                        messageToDisplay = "Please enter numeric characters only for the age!";
                        messageBox(messageToDisplay);
                    }

                }
                else
                {
                    //Enter error message box here!
                    //String ErrorMessage = "Invalid user inputs, Ensure that all fields are filled in!";
                    //this.Frame.Navigate(typeof(RegisterNewChild), parentId);
                    messageToDisplay = "Please ensure that all text fields are filled in before proceeding!";
                    messageBox(messageToDisplay);
                }
            }
            catch(Exception)
            {

            }
            



        }