public IEnumerator UpdateResultCount(bool _runID, string _filterA, string _filterB, Action <int> countOut) { int count = 0; string rowCountQ = "SELECT x FROM (\n"; //make the query for (int i = 0; i < tableStrings.Count; i++) { rowCountQ += CreateQueryString(tableStrings[i], _runID, "count(*) x", _filterA, _filterB);//TODO broken since refactor if (i != tableStrings.Count - 1) { rowCountQ += "\nUNION ALL\n"; } } rowCountQ += "\n) AS x;"; // submit the query SQL.SQLIO.RawData rawData = new GraphicsTestFramework.SQL.SQLIO.RawData(); Debug.LogWarning(rowCountQ); yield return(StartCoroutine(SQL.SQLIO.SQLRequest(rowCountQ, (value => { rawData = value; }))));//Get all tables // SQLCHECK //get the count and remove empty table results for (int i = tableStrings.Count - 1; i >= 0; i--) { int tableRowCount = 0; int.TryParse(rawData.data[i][0], out tableRowCount);//convert the cell form a string to int(or try at least) if (tableRowCount == 0) { tableStrings.RemoveAt(i); } else { count += tableRowCount; } } //Display the string resultRowString = "Filtered Results : "; if (count < maxResults) { resultRowString += "<color=#008000ff>" + count + "</color>"; } else { resultRowString += "<color=#f00000ff>" + count + "</color>"; } filterCountText.text = resultRowString; countOut(count); }
IEnumerator FetchFilterData(Action <ResultsIOData[]> outData) { List <ResultsIOData> riod = new List <ResultsIOData>(); foreach (string table in tableStrings) { SQL.SQLIO.TableStrings ts = SQL.SQLIO.TableStringToStrings(table); string query = CreateQueryString(table, runID, commonFields, null, ("'%runID|" + currentRunID + "%'")); ///hardcoded to run id SQL.SQLIO.RawData rawData = new GraphicsTestFramework.SQL.SQLIO.RawData(); yield return(StartCoroutine(SQL.SQLIO.SQLRequest(query, (value => { rawData = value; })))); //Get all tables // SQLCHECK riod.Add(SQL.SQLIO.ConvertRawDataToResultsIOData(ts.suite, ts.testType, rawData, ts.baseline)); } outData(riod.ToArray()); }
IEnumerator GetTableNames(string query) { SQL.SQLIO.RawData rawData = new GraphicsTestFramework.SQL.SQLIO.RawData(); yield return(StartCoroutine(SQL.SQLIO.SQLRequest(query, (value => { rawData = value; })))); //Get all tables // SQLCHECK foreach (string[] strArr in rawData.data) { if (strArr[0].Split(new char[] { '_' }, StringSplitOptions.None).Length == 3) { tableStrings.Add(strArr[0]); tableCount++; } } if (baseTableStrings == null) { baseTableStrings = tableStrings.ToArray(); } suiteTestTypes.Add(new List <string>()); suiteTestTypes.Add(new List <string>()); for (int i = 0; i < tableStrings.Count; i++) { Debug.Log("splitting " + tableStrings[i]); string[] split = tableStrings[i].Split(new char[] { '_' }, StringSplitOptions.None); if (!suiteTestTypes[0].Contains(split[0])) { suiteTestTypes[0].Add(split[0]); } if (!suiteTestTypes[1].Contains(split[1])) { suiteTestTypes[1].Add(split[1]); } } if (tableOptions.suiteMask) { tableOptions.suiteMask.Init(suiteTestTypes[0].ToArray()); } if (tableOptions.testTypeMask) { tableOptions.testTypeMask.Init(suiteTestTypes[1].ToArray()); } yield return(StartCoroutine(UpdateResultCount(runID, null, null, (value => { rowCount = value; })))); }