using Microsoft.Data.Sqlite; using System; using System.Collections.Generic; using System.IO; using Dapper; using FireLance.Interfaces; using FireLance.Model; namespace GSMParser { public class DatabaseConnection : IDatabaseConnection { private SqliteConnection DBConnection = new SqliteConnection(); public void OpenConnection(string dbLocation, int port) { if (File.Exists(dbLocation) == false) { throw new FileNotFoundException(dbLocation); } DBConnection = new SqliteConnection($"Data Source={dbLocation};Mode=ReadOnly"); DBConnection.Open(); } public void CloseCurrentConnection() { DBConnection.Close(); } public bool IsConnectionOpen() { return Convert.ToBoolean(DBConnection.State); } public List QueryGameById(string id) { return (List) DBConnection.Query(QueryBuilder.GameEntryByGameId(id), new DynamicParameters()); } public List QueryDirectoryById(string id) { return (List) DBConnection.Query(QueryBuilder.DirectoryByGameId(id), new DynamicParameters()); } public List QueryGameByName(string name) { return (List) DBConnection.Query(QueryBuilder.GameEntryByName(name), new DynamicParameters()); } } }