/
idalynnn
/
api
Обзор
Документация
Войти
/
idalynnn
/
api
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
lab4/server/IdempotencyStore.cs
47 строк
1 KB
idalynnn
lab4
16 дек 2025, 07:01
16 дек 2025, 07:01
f2f8438
Код
Авторство
О чём код?
using Microsoft.Data.Sqlite; public class IdempotencyStore { private readonly string _connStr; public IdempotencyStore(string dbPath = "processed.db") { _connStr = new SqliteConnectionStringBuilder { DataSource = dbPath }.ToString(); EnsureSchema(); } private void EnsureSchema() { using var conn = new SqliteConnection(_connStr); conn.Open(); var cmd = conn.CreateCommand(); cmd.CommandText = """ CREATE TABLE IF NOT EXISTS processed ( id TEXT PRIMARY KEY, response_json TEXT NOT NULL ); """; cmd.ExecuteNonQuery(); } public string? GetResponseJson(string id) { using var conn = new SqliteConnection(_connStr); conn.Open(); var cmd = conn.CreateCommand(); cmd.CommandText = "SELECT response_json FROM processed WHERE id = $id"; cmd.Parameters.AddWithValue("$id", id); return cmd.ExecuteScalar() as string; } public void SaveResponseJson(string id, string responseJson) { using var conn = new SqliteConnection(_connStr); conn.Open(); var cmd = conn.CreateCommand(); cmd.CommandText = "INSERT OR REPLACE INTO processed(id, response_json) VALUES($id, $json)"; cmd.Parameters.AddWithValue("$id", id); cmd.Parameters.AddWithValue("$json", responseJson); cmd.ExecuteNonQuery(); } }