public void ExecuteChecks(List <Check> checks)
        {
            bool allSuccessfull = true;

            string[,] paramList    = CreateParamList();
            string[,] xmlParamList = CreateXmlParamList(filePath);

            foreach (Check check in checks)
            {
                nav = fc.XpathNavigator(filePath);
                ReplacePlaceHolders(filePath, paramList);
                ReplacePlaceHolders(filePath, xmlParamList);
                string[,] stepList = null;
                if (check.Value != null && check.Value.Contains("[ActiveObject"))
                {
                    //PropertyInfo pi = typeof(Identity).GetProperty(step.Name);
                    //stepList = new string[,]{ { "$(Step.Name)", step.Name.ToLower() , "string" }, { "$(Step.Value)", pi.GetValue(person).ToString(), "string"} };
                    stepList = new string[, ] {
                        { "$(Step.Name)", check.Name, "string" }, { "$(Step.Value)", check.Value, "string" }
                    };
                }
                else
                {
                    stepList = new string[, ] {
                        { "$(Step.Name)", check.Name, "string" }, { "$(Step.Value)", check.Value, "string" }
                    };
                }
                ReplacePlaceHolders(filePath, stepList, check);

                check.Status = ExecuteCheck(driver, filePath, check.Name);

                if (check.Status != CheckStatus.Completed)
                {
                    allSuccessfull = false;
                }
            }

            ChecksExecuted(this, allSuccessfull);

            if (allSuccessfull)
            {
                AllChecksSuccessfull(this, new EventArgs());
            }
        }
        private void GenerateFromFile()
        {
            string filePath = TextBoxFilePath.Text;

            BL.FunctionClass  fc       = new BL.FunctionClass();
            XPathNavigator    nav      = fc.XpathNavigator(filePath);
            XPathExpression   expr     = nav.Compile("//cases/case");
            XPathNodeIterator iterator = nav.Select(expr);

            testCases.Clear();
            while (iterator.MoveNext())
            {
                Case c = new Case
                {
                    name       = iterator.Current.SelectSingleNode("@name").Value,
                    selected   = false,
                    parameters = new List <param>(),
                    steps      = new List <TempStep>()
                };
                XPathExpression   paramExpr = iterator.Current.Compile("//case[@name='" + c.name + "']/param");
                XPathNodeIterator paramIt   = iterator.Current.Select(paramExpr);

                int k = 0;
                while (paramIt.MoveNext())
                {
                    param p = new param
                    {
                        name     = paramIt.Current.SelectSingleNode("@name").Value,
                        isActive = false,
                        type     = paramIt.Current.SelectSingleNode("@type").Value,
                        value    = paramIt.Current.SelectSingleNode("@value").Value
                    };
                    if (p.type == "xPath")
                    {
                        p.file = paramIt.Current.SelectSingleNode("@file").Value;
                    }
                    c.parameters.Add(p);
                    k++;
                }

                XPathExpression   stepExpr = iterator.Current.Compile("//case[@name='" + c.name + "']/step");
                XPathNodeIterator stepIt   = iterator.Current.Select(stepExpr);

                k = 0;
                while (stepIt.MoveNext())
                {
                    TempStep s = new TempStep()
                    {
                        isActive  = false,
                        extension = stepIt.Current.SelectSingleNode("@extension").Value,
                        value     = "",
                        element   = ""
                    };
                    s.name = s.extension;

                    if (s.extension != "Navigate")
                    {
                        s.element = stepIt.Current.SelectSingleNode("@element").Value;
                        s.action  = stepIt.Current.SelectSingleNode("@action").Value;

                        s.name += (" | " + s.element + " | " + s.action);
                        if (s.action == "SendKeys")
                        {
                            s.value = stepIt.Current.SelectSingleNode("@value").Value;
                        }
                    }
                    else
                    {
                        s.value = stepIt.Current.SelectSingleNode("@value").Value;
                        s.name += (" | " + s.value);
                    }

                    k++;
                    c.steps.Add(s);
                }
                testCases.Add(c);
            }
            showListboxItems();
        }
 //!variables
 public StepExecutor(string filePath)
 {
     this.filePath = filePath;
     fc            = new FunctionClass();
     nav           = fc.XpathNavigator(filePath);
 }