using Contracts.DTO; using Contracts.Mappers; using Contracts.Repositories; using Contracts.SearchModels; using Contracts.Services; using Contracts.ViewModels; using Services.Support.Exceptions; namespace Services.Domain; public class UserService : IUserService { private readonly IUserRepo _userRepo; public UserService(IUserRepo userRepo) { _userRepo = userRepo; } public async Task Delete(UserSearch search) { var user = await _userRepo.Delete(search); return user.ToView(); } public async Task GetDetails(UserSearch search) { var user = await _userRepo.Get(search); if (user == null) { throw new UserNotFoundException($"Пользователь {search.Name} не найден"); } return user.ToView(); } public async Task UpdateUserData(UserDto user) { var existingUser = await _userRepo.Get(new UserSearch() { Name = user.Name }); if (existingUser == null) { throw new UserNotFoundException($"Пользователь {user.Name} не найден"); } var updatedUser = await _userRepo.Update(user); return updatedUser.ToView(); } }