using System.Linq; using System.Threading.Tasks; using Dapper; using Website.Data.States; using Website.Models; namespace Website.Data { public class UserRepository { private readonly IDatabaseProvider _dbProvider; public UserRepository(IDatabaseProvider dbProvider) { _dbProvider = dbProvider; } public async Task GetUserByEmail(string email) { const string query = "SELECT * FROM users WHERE user_email=@email"; using (var connection = _dbProvider.NewConnection()) { connection.Open(); var result = await connection.QueryAsync(query, new {email}); return new User(result.Single()); } } } }