50 lines
1.4 KiB
C#
50 lines
1.4 KiB
C#
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<UserViewModel> Delete(UserSearch search)
|
||
{
|
||
var user = await _userRepo.Delete(search);
|
||
if (user == null)
|
||
{
|
||
throw new UserNotFoundException($"Пользователь для удаления не найден");
|
||
}
|
||
return user.ToView();
|
||
}
|
||
|
||
public async Task<UserViewModel> GetDetails(UserSearch search)
|
||
{
|
||
var user = await _userRepo.Get(search);
|
||
if (user == null)
|
||
{
|
||
throw new UserNotFoundException($"Пользователь {search.Name} не найден");
|
||
}
|
||
return user.ToView();
|
||
}
|
||
|
||
public async Task<UserViewModel> UpdateUserData(UserDto user)
|
||
{
|
||
var updatedUser = await _userRepo.Update(user);
|
||
if (updatedUser == null)
|
||
{
|
||
throw new EntityNotFoundException("При обновлении не получилось найти пользователя с id = " + user.Id);
|
||
}
|
||
return updatedUser.ToView();
|
||
}
|
||
}
|