private static void BuildQueryData <T>(Query <T> query, out ProfileData item) where T : class, new() { ClaimsPrincipalDto.AddMarker("kpi.profiler.execute"); item = ClaimsPrincipalDto.GenerateProfileItem(); var todaysDate = DateTime.Now; item.Day = todaysDate.Day; item.Month = todaysDate.Month; item.Year = todaysDate.Year; item.CreatedAt = todaysDate; item.Hour = todaysDate.Hour; item.Minutes = todaysDate.Minute; item.Activity = "search.api"; item.Tag = query.Source; item.Scope = query.ScopeId.ToString(CultureInfo.InvariantCulture); var i = 0; var sb = new StringBuilder(500); foreach (var facet in query.Facets) { if (i++ > 0) { sb.Append(";"); } var sbValue = new StringBuilder(); foreach (var value in facet.Value) { sbValue.Append(value); sbValue.Append(","); } sb.AppendFormat("{0}:{1}", facet.Key, sbValue); } foreach (var term in query.Criterion) { if (i++ > 0) { sb.Append(";"); } sb.AppendFormat("{0}:{1}", term.Key, term.Value); item.Key = string.Format("{0}:{1}", term.Key, term.Value.Trim()); } sb.AppendFormat(";page-count:{0}", query.PageCount); sb.AppendFormat(";page-index:{0}", query.PageIndex); sb.AppendFormat(";page-size:{0}", query.PageSize); sb.AppendFormat(";resultset-count:{0}", query.ResultSetCount); sb.AppendFormat(";sort-by:{0}", query.SortBy); sb.AppendFormat(";sort-order:{0}", query.SortOrder); if (!String.IsNullOrEmpty(query.SessionId)) { sb.AppendFormat(";sessionid-{0}", query.SessionId); } item.Group = sb.ToString(); item.ResultCount = query.ResultSetCount; }
public HttpResponseMessage Get(int version) { ClaimsPrincipalDto.AddMarker("kpi.search.begin"); var searchProvider = new SearchProvider(new SearchQueryResolver(), new ApiProfiler()); var inputParameters = ProcureParameters(Request); var result = searchProvider.ExecuteSearch(inputParameters); ClaimsPrincipalDto.AddMarker("kpi.search.end"); return(new HttpResponseMessage(HttpStatusCode.OK)); }