/
Iceneo
/
WellTracker
Обзор
Документация
Войти
/
Iceneo
/
WellTracker
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
API/DAL/Accounts/Users/UsersRepository.cs
60 строк
2 KB
Anton Yaskov
Добавил статистику по весу
16 ноя 2025, 20:30
16 ноя 2025, 20:30
9cde306
Код
Авторство
О чём код?
using Domain.Accounts.Users; using Domain.Accounts.Users.DTO; using Microsoft.EntityFrameworkCore; namespace DAL.Accounts.Users; public class UsersRepository( DataContext dataContext ) : IUsersRepository { private DbSet<UserEntity> Users => dataContext.Users; public async Task<User?> Get(Guid id) { var entity = await Users.AsNoTracking().FirstOrDefaultAsync(x => x.Id == id); return entity != null ? UsersMapper.ToDomain(entity) : null; } public async Task<User?> GetByLogin(string login) { var entity = await Users.AsNoTracking().FirstOrDefaultAsync(e => e.Login == login); return entity != null ? UsersMapper.ToDomain(entity) : null; } public async Task<bool> Exists(string login) { var entity = await Users.AsNoTracking().FirstOrDefaultAsync(e => e.Login == login); return entity != null; } public async Task<User> Add(UserCreateEntity createEntity) { var entity = UsersMapper.ToEntity(createEntity); await Users.AddAsync(entity); await dataContext.SaveChangesAsync(); return UsersMapper.ToDomain(entity); } public async Task<User> Update(Guid userId, UserUpdateEntity updateEntity) { var user = await Users.FirstAsync(e => e.Id == userId); if (updateEntity.HashedPassword != null) user.HashedPassword = updateEntity.HashedPassword; if (updateEntity.Gender != null) user.Gender = UsersMapper.ToEntity(updateEntity.Gender.Value); if (updateEntity.Weight != null) user.Weight = updateEntity.Weight.Value; if (updateEntity.Height != null) user.Height = updateEntity.Height.Value; if (updateEntity.TargetWeight != null) user.TargetWeight = updateEntity.TargetWeight.Value; await dataContext.SaveChangesAsync(); return UsersMapper.ToDomain(user); } }