/// <summary>
        /// Parses csv to Assertions
        /// </summary>
        /// <param name="assertionHeader">assertionHeader parameter</param>
        /// <param name="data">data parameter</param>
        /// <param name="resources">resources parameter</param>
        /// <returns>Assertions object</returns>
        public static AssertionList Parse(Header assertionHeader, List <List <string> > data, ResourceManager resources = null)
        {
            var list = new AssertionList();

            foreach (var row in data)
            {
                for (var j = assertionHeader.From; j < row.Count; j++)
                {
                    var value = row[j];
                    if (value == null)
                    {
                        continue;
                    }

                    var           assertionItemHeader = Header.GetHeader(assertionHeader, j, 1);
                    var           name = assertionItemHeader.Name;
                    AssertionList assertions;

                    if (name == HeaderName.Uri)
                    {
                        assertions = UriAssertionParser.Parse(assertionHeader, row);
                    }
                    else if (name == HeaderName.StatusCode)
                    {
                        assertions = StatusCodeAssertionParser.Parse(assertionHeader, row);
                    }
                    else if (name == HeaderName.Headers)
                    {
                        assertions = HeadersAssertionParser.Parse(assertionHeader, row);
                    }
                    else if (name == HeaderName.Cookies)
                    {
                        assertions = CookiesAssertionParser.Parse(assertionHeader, row);
                    }
                    else if (name == HeaderName.Xsd)
                    {
                        assertions = XsdAssertionParser.Parse(assertionHeader, row, resources);
                    }
                    else if (name == HeaderName.Contents)
                    {
                        if (Header.GetBoolean(assertionHeader, HeaderName.IsDateTime, row) ||
                            Header.GetBoolean(assertionHeader, HeaderName.IsTime, row))
                        {
                            assertions = DateTimeAssertionParser.Parse(assertionHeader, row);
                        }
                        else
                        {
                            assertions = TextAssertionParser.Parse(assertionHeader, row);
                        }
                    }
                    else
                    {
                        throw new WrongFileFormatException("Invalid Assertion name. name=" + name);
                    }

                    if (assertions != null)
                    {
                        list.AddRange(assertions);
                    }

                    j = assertionHeader.To;
                }
            }

            return(list);
        }