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); if (user == null) { throw new UserNotFoundException($"Пользователь для удаления не найден"); } 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 updatedUser = await _userRepo.Update(user); if (updatedUser == null) { throw new EntityNotFoundException("При обновлении не получилось найти пользователя с id = " + user.Id); } return updatedUser.ToView(); } }