using LSFE.MobApp.Contracts; using Microsoft.Extensions.Logging; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace LSFE.MobApp.Services { public class QueryService : IQueryService { private readonly IDatabaseService _databaseService; private readonly ILogger _logger; public QueryService(IDatabaseService databaseService, ILogger logger) { _databaseService = databaseService; _logger = logger; } public async Task> ExecuteQueryAsync(string query, params object[] parameters) where T : new() { try { return await _databaseService.Database.QueryAsync(query, parameters); } catch (Exception ex) { _logger.LogError(ex, "Error executing query: {Query}", query); throw; } } public async Task ExecuteNonQueryAsync(string query, params object[] parameters) { try { return await _databaseService.Database.ExecuteAsync(query, parameters); } catch (Exception ex) { _logger.LogError(ex, "Error executing non-query: {Query}", query); throw; } } } }