diff --git a/Repositories/IUserRepository.cs b/Repositories/IUserRepository.cs new file mode 100644 index 0000000..c83ce1f --- /dev/null +++ b/Repositories/IUserRepository.cs @@ -0,0 +1,14 @@ +using Renis.Database.Models; + +namespace Renis.Repositories; + +public interface IUserRepository +{ + public Task AddUser(User user); + public Task UpdateUser(User user); + public Task DeleteUser(User user); + public Task GetUserById(long id); + public Task GetUserByPhone(string phone); + public IQueryable GetUsers(); + public Task Save(); +} \ No newline at end of file diff --git a/Repositories/UserRepository.cs b/Repositories/UserRepository.cs new file mode 100644 index 0000000..3353af6 --- /dev/null +++ b/Repositories/UserRepository.cs @@ -0,0 +1,48 @@ +using Microsoft.EntityFrameworkCore; +using Renis.Database; +using Renis.Database.Models; + +namespace Renis.Repositories; + +public class UserRepository(ApplicationContext db) : IUserRepository +{ + private readonly ApplicationContext _db = db; + + public async Task AddUser(User user) + { + _db.Users.Add(user); + return await Save(); + } + + public async Task DeleteUser(User user) + { + _db.Users.Remove(user); + return await Save(); + } + + public async Task GetUserById(long id) + { + return await _db.Users.FirstOrDefaultAsync(x => x.Id == id); + } + + public async Task GetUserByPhone(string phone) + { + return await _db.Users.FirstOrDefaultAsync(x => x.Phone == phone); + } + + public IQueryable GetUsers() + { + return _db.Users.AsQueryable(); + } + + public async Task Save() + { + return await _db.SaveChangesAsync() > 0; + } + + public async Task UpdateUser(User user) + { + _db.Users.Update(user); + return await Save(); + } +} \ No newline at end of file