Deduplicate facts row mapping

This commit is contained in:
ajp_anton
2026-07-15 22:51:38 +00:00
parent 8211d988a3
commit bc9d5377c3
@@ -230,22 +230,7 @@ FROM facts
WHERE item_id = $item_id;"; WHERE item_id = $item_id;";
cmd.Parameters.AddWithValue("$item_id", itemId); cmd.Parameters.AddWithValue("$item_id", itemId);
using var reader = cmd.ExecuteReader(); using var reader = cmd.ExecuteReader();
return reader.Read() return reader.Read() ? ReadFacts(reader) : null;
? new FactsData(
reader.GetString(0),
reader.GetString(1),
reader.GetString(2),
reader.GetString(3),
reader.GetString(4),
reader.GetString(5),
reader.GetString(6),
reader.GetString(7),
reader.GetString(8),
reader.GetString(9),
reader.GetString(10),
reader.GetInt64(11),
reader.GetInt64(12))
: null;
} }
public Dictionary<string, FactsData> GetFactsForItems(IEnumerable<string> itemIds) public Dictionary<string, FactsData> GetFactsForItems(IEnumerable<string> itemIds)
@@ -268,26 +253,29 @@ WHERE item_id IN ({idParams});";
using var reader = cmd.ExecuteReader(); using var reader = cmd.ExecuteReader();
while (reader.Read()) while (reader.Read())
{ {
var facts = new FactsData( var facts = ReadFacts(reader);
reader.GetString(0),
reader.GetString(1),
reader.GetString(2),
reader.GetString(3),
reader.GetString(4),
reader.GetString(5),
reader.GetString(6),
reader.GetString(7),
reader.GetString(8),
reader.GetString(9),
reader.GetString(10),
reader.GetInt64(11),
reader.GetInt64(12));
result[facts.ItemId] = facts; result[facts.ItemId] = facts;
} }
return result; return result;
} }
private static FactsData ReadFacts(SqliteDataReader reader)
=> new(
reader.GetString(0),
reader.GetString(1),
reader.GetString(2),
reader.GetString(3),
reader.GetString(4),
reader.GetString(5),
reader.GetString(6),
reader.GetString(7),
reader.GetString(8),
reader.GetString(9),
reader.GetString(10),
reader.GetInt64(11),
reader.GetInt64(12));
public object[] GetTranslationsForDebug(string itemId) public object[] GetTranslationsForDebug(string itemId)
{ {
using var con = Open(); using var con = Open();