domBudg/back/Services/Domain/UserService.cs

48 lines
1.3 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);
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 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();
}
}