internal static SearchDocumentsResult DeserializeSearchDocumentsResult(JsonElement element)
        {
            Optional <long>   odataCount     = default;
            Optional <double> searchCoverage = default;
            Optional <IReadOnlyDictionary <string, IList <FacetResult> > > searchFacets = default;
            Optional <SearchOptions>     searchNextPageParameters = default;
            IReadOnlyList <SearchResult> value         = default;
            Optional <string>            odataNextLink = default;

            foreach (var property in element.EnumerateObject())
            {
                if (property.NameEquals("@odata.count"))
                {
                    odataCount = property.Value.GetInt64();
                    continue;
                }
                if (property.NameEquals("@search.coverage"))
                {
                    searchCoverage = property.Value.GetDouble();
                    continue;
                }
                if (property.NameEquals("@search.facets"))
                {
                    Dictionary <string, IList <FacetResult> > dictionary = new Dictionary <string, IList <FacetResult> >();
                    foreach (var property0 in property.Value.EnumerateObject())
                    {
                        List <FacetResult> array = new List <FacetResult>();
                        foreach (var item in property0.Value.EnumerateArray())
                        {
                            array.Add(FacetResult.DeserializeFacetResult(item));
                        }
                        dictionary.Add(property0.Name, array);
                    }
                    searchFacets = dictionary;
                    continue;
                }
                if (property.NameEquals("@search.nextPageParameters"))
                {
                    searchNextPageParameters = SearchOptions.DeserializeSearchOptions(property.Value);
                    continue;
                }
                if (property.NameEquals("value"))
                {
                    List <SearchResult> array = new List <SearchResult>();
                    foreach (var item in property.Value.EnumerateArray())
                    {
                        array.Add(SearchResult.DeserializeSearchResult(item));
                    }
                    value = array;
                    continue;
                }
                if (property.NameEquals("@odata.nextLink"))
                {
                    odataNextLink = property.Value.GetString();
                    continue;
                }
            }
            return(new SearchDocumentsResult(Optional.ToNullable(odataCount), Optional.ToNullable(searchCoverage), Optional.ToDictionary(searchFacets), searchNextPageParameters.Value, value, odataNextLink.Value));
        }
        internal static SearchDocumentsResult DeserializeSearchDocumentsResult(JsonElement element)
        {
            long?  odataCount     = default;
            double?searchCoverage = default;
            IReadOnlyDictionary <string, IList <FacetResult> > searchFacets = default;
            SearchOptions searchNextPageParameters = default;
            IReadOnlyList <SearchResult> value     = default;
            string odataNextLink = default;

            foreach (var property in element.EnumerateObject())
            {
                if (property.NameEquals("@odata.count"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        continue;
                    }
                    odataCount = property.Value.GetInt64();
                    continue;
                }
                if (property.NameEquals("@search.coverage"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        continue;
                    }
                    searchCoverage = property.Value.GetDouble();
                    continue;
                }
                if (property.NameEquals("@search.facets"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        continue;
                    }
                    Dictionary <string, IList <FacetResult> > dictionary = new Dictionary <string, IList <FacetResult> >();
                    foreach (var property0 in property.Value.EnumerateObject())
                    {
                        if (property0.Value.ValueKind == JsonValueKind.Null)
                        {
                            dictionary.Add(property0.Name, null);
                        }
                        else
                        {
                            List <FacetResult> array = new List <FacetResult>();
                            foreach (var item in property0.Value.EnumerateArray())
                            {
                                if (item.ValueKind == JsonValueKind.Null)
                                {
                                    array.Add(null);
                                }
                                else
                                {
                                    array.Add(FacetResult.DeserializeFacetResult(item));
                                }
                            }
                            dictionary.Add(property0.Name, array);
                        }
                    }
                    searchFacets = dictionary;
                    continue;
                }
                if (property.NameEquals("@search.nextPageParameters"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        continue;
                    }
                    searchNextPageParameters = SearchOptions.DeserializeSearchOptions(property.Value);
                    continue;
                }
                if (property.NameEquals("value"))
                {
                    List <SearchResult> array = new List <SearchResult>();
                    foreach (var item in property.Value.EnumerateArray())
                    {
                        if (item.ValueKind == JsonValueKind.Null)
                        {
                            array.Add(null);
                        }
                        else
                        {
                            array.Add(SearchResult.DeserializeSearchResult(item));
                        }
                    }
                    value = array;
                    continue;
                }
                if (property.NameEquals("@odata.nextLink"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        continue;
                    }
                    odataNextLink = property.Value.GetString();
                    continue;
                }
            }
            return(new SearchDocumentsResult(odataCount, searchCoverage, searchFacets, searchNextPageParameters, value, odataNextLink));
        }
Exemple #3
0
        internal static SearchDocumentsResult DeserializeSearchDocumentsResult(JsonElement element)
        {
            SearchDocumentsResult result = new SearchDocumentsResult();

            foreach (var property in element.EnumerateObject())
            {
                if (property.NameEquals("@odata.count"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        continue;
                    }
                    result.Count = property.Value.GetInt64();
                    continue;
                }
                if (property.NameEquals("@search.coverage"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        continue;
                    }
                    result.Coverage = property.Value.GetDouble();
                    continue;
                }
                if (property.NameEquals("@search.facets"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        continue;
                    }
                    result.Facets = new Dictionary <string, IList <FacetResult> >();
                    foreach (var property0 in property.Value.EnumerateObject())
                    {
                        IList <FacetResult> value = new List <FacetResult>();
                        foreach (var item in property0.Value.EnumerateArray())
                        {
                            value.Add(FacetResult.DeserializeFacetResult(item));
                        }
                        result.Facets.Add(property0.Name, value);
                    }
                    continue;
                }
                if (property.NameEquals("@search.nextPageParameters"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        continue;
                    }
                    result.NextPageParameters = SearchOptions.DeserializeSearchOptions(property.Value);
                    continue;
                }
                if (property.NameEquals("value"))
                {
                    foreach (var item in property.Value.EnumerateArray())
                    {
                        result.Results.Add(SearchResult.DeserializeSearchResult(item));
                    }
                    continue;
                }
                if (property.NameEquals("@odata.nextLink"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        continue;
                    }
                    result.NextLink = property.Value.GetString();
                    continue;
                }
            }
            return(result);
        }