using System;
using System.Collections.Generic;
namespace CryptoExchange.Net.Converters.MessageParsing.DynamicConverters
{
///
/// The results of a search for fields in a JSON message
///
public class SearchResult
{
private List _items = new List();
///
/// Get the value of a field
///
public string? FieldValue(string searchName)
{
foreach (var item in _items)
{
if (item.Field.SearchName.Equals(searchName, StringComparison.Ordinal))
return item.Value;
}
throw new Exception($"No field value found for {searchName}");
}
///
/// The number of found search field values
///
public int Count => _items.Count;
///
/// Clear the search result
///
public void Clear() => _items.Clear();
///
/// Whether the value for a specific field was found
///
public bool Contains(MessageFieldReference field)
{
foreach (var item in _items)
{
if (item.Field == field)
return true;
}
return false;
}
///
/// Write a value to the result
///
public void Write(MessageFieldReference field, string? value) => _items.Add(new SearchResultItem
{
Field = field,
Value = value
});
}
}