Files
managing-apps/src/Managing.Infrastructure.Database/UserRepository.cs
2025-06-09 01:48:04 +07:00

51 lines
1.5 KiB
C#

using Managing.Application.Abstractions.Repositories;
using Managing.Domain.Users;
using Managing.Infrastructure.Databases.MongoDb;
using Managing.Infrastructure.Databases.MongoDb.Abstractions;
using Managing.Infrastructure.Databases.MongoDb.Collections;
namespace Managing.Infrastructure.Databases;
public class UserRepository : IUserRepository
{
private readonly IMongoRepository<UserDto> _userRepository;
public UserRepository(IMongoRepository<UserDto> userRepository)
{
_userRepository = userRepository;
}
public async Task<User> GetUserByAgentNameAsync(string agentName)
{
var user = await _userRepository.FindOneAsync(u => u.AgentName == agentName);
return MongoMappers.Map(user);
}
public async Task<User> GetUserByNameAsync(string name)
{
var user = await _userRepository.FindOneAsync(u => u.Name == name);
return MongoMappers.Map(user);
}
public async Task InsertUserAsync(User user)
{
await _userRepository.InsertOneAsync(MongoMappers.Map(user));
}
public async Task UpdateUser(User user)
{
try
{
var dto = await _userRepository.FindOneAsync(u => u.Name == user.Name);
dto.AgentName = user.AgentName;
dto.AvatarUrl = user.AvatarUrl;
dto.TelegramChannel = user.TelegramChannel;
_userRepository.Update(dto);
}
catch (Exception e)
{
Console.WriteLine(e);
throw new Exception("Cannot update user");
}
}
}