Add initial implementation of API, database, and user management components.

This commit is contained in:
2026-03-15 23:17:51 +01:00
commit 0543120f3b
53 changed files with 2241 additions and 0 deletions

View File

@@ -0,0 +1,47 @@
using Microsoft.EntityFrameworkCore;
using MikrocopDb.Entities;
namespace MikrocopDb.Repositories;
public sealed class UserRepository : IUserRepository
{
private readonly AppDbContext _dbContext;
public UserRepository(AppDbContext dbContext)
{
_dbContext = dbContext;
}
public Task<UserEntity?> GetByIdAsync(Guid id, CancellationToken cancellationToken = default)
{
return _dbContext.Users.FirstOrDefaultAsync(x => x.Id == id, cancellationToken);
}
public Task<UserEntity?> GetByUserNameAsync(string userName, CancellationToken cancellationToken = default)
{
return _dbContext.Users.FirstOrDefaultAsync(x => x.UserName == userName, cancellationToken);
}
public Task<UserEntity?> GetByEmailAsync(string email, CancellationToken cancellationToken = default)
{
return _dbContext.Users.FirstOrDefaultAsync(x => x.Email == email, cancellationToken);
}
public async Task AddAsync(UserEntity user, CancellationToken cancellationToken = default)
{
await _dbContext.Users.AddAsync(user, cancellationToken);
await _dbContext.SaveChangesAsync(cancellationToken);
}
public async Task UpdateAsync(UserEntity user, CancellationToken cancellationToken = default)
{
_dbContext.Users.Update(user);
await _dbContext.SaveChangesAsync(cancellationToken);
}
public async Task DeleteAsync(UserEntity user, CancellationToken cancellationToken = default)
{
_dbContext.Users.Remove(user);
await _dbContext.SaveChangesAsync(cancellationToken);
}
}