//for debugging
        public static string GetColumns(RESTSearchResultsSerialized results)
        {
            string cols = string.Empty;
            int    i    = 0;

            foreach (ResultCell cell in results.SearchResults.Rows[0].Cells.OrderBy(p => p.Key))
            {
                cols += cell.Key + " (" + cell.ValueType + ")";
                if (i <= results.SearchResults.Rows.Count - 2)
                {
                    cols += ",";
                }
                i++;
            }

            return(cols);
        }
        public static RESTSearchResultsSerialized ProcessResults(RESTSearchResults res, SearchInputs inputs)
        {
            RESTSearchResultsSerialized SerializedResults = new RESTSearchResultsSerialized();

            SerializedResults.Inputs = inputs;

            if (res != null)
            {
                SerializedResults.ExecutionTime = res.ElapsedTime;

                if (res.PrimaryQueryResult != null && res.PrimaryQueryResult.RelevantResults != null)
                {
                    SerializedResults.TotalRows = res.PrimaryQueryResult.RelevantResults.TotalRows;

                    SerializedResults.ResultRows = res.PrimaryQueryResult.RelevantResults.RowCount;

                    SerializedResults.ResultTitle    = res.PrimaryQueryResult.RelevantResults.ResultTitle;
                    SerializedResults.SearchResults  = res.PrimaryQueryResult.RelevantResults.Table;
                    SerializedResults.ResultTitleUrl = res.PrimaryQueryResult.RelevantResults.ResultTitleUrl;
                }
                else
                {
                    SerializedResults.TotalRows = 0;

                    SerializedResults.ResultRows = 0;
                }

                SerializedResults.SpellingSuggestions = res.SpellingSuggestion;


                // set SourceId from execution results
                Guid sid = Guid.Empty;

                SearchProperty SourceId = res.Properties.Where(p => p.Key.Equals("sourceid", StringComparison.InvariantCultureIgnoreCase)).First();
                if (SourceId != null && Guid.TryParse(SourceId.Value, out sid))
                {
                    SerializedResults.Inputs.SourceId = sid;
                }
            }

            return(SerializedResults);
        }