presence/Demo/Domain/UseCase/UserUseCase.cs
Class_Student fee8b37eb3 init
2024-10-25 11:47:11 +03:00

87 lines
2.3 KiB
C#

using Demo.Data.Repository;
using Demo.Domain.Models;
using System;
using System.Collections.Generic;
using System.Linq;
namespace Demo.Domain.UseCase
{
public class UserUseCase
{
private readonly UserRepositoryImpl _userRepository;
private readonly GroupRepositoryImpl _groupRepo;
public UserUseCase(UserRepositoryImpl userRepository, GroupRepositoryImpl groupRepo)
{
_userRepository = userRepository;
_groupRepo = groupRepo;
}
public List<User> GetAllUsers()
{
return _userRepository.GetAllUsers();
}
public User FindUserByGuid(Guid userGuid)
{
return _userRepository.GetByGuid(userGuid);
}
public List<UserModel> GetUsersAsModels()
{
return _userRepository.GetAllUsers()
.Select(user => new UserModel
{
FIO = user.FIO,
Guid = user.Guid,
}).ToList();
}
public UserModel GetUserModelById(Guid id)
{
var user = _userRepository.GetByGuid(id);
return new UserModel
{
FIO = user?.FIO, // Проверка на null
Guid = user?.Guid ?? Guid.Empty, // Возврат Guid.Empty, если user null
};
}
public bool RemoveUserByGuid(Guid userGuid)
{
return _userRepository.RemoveUserByGuid(userGuid);
}
public UserModel GetUserModelByGuid(Guid userGuid)
{
var user = FindUserByGuid(userGuid);
return new UserModel
{
FIO = user?.FIO, // Проверка на null
Guid = user?.Guid ?? Guid.Empty, // Возврат Guid.Empty, если user null
};
}
public bool UpdateUser(User user)
{
return _userRepository.UpdateUser(user);
}
public Group GetGroupById(int id)
{
return _groupRepo.GetGroupById(id);
}
internal bool RemoveUser(Guid userGuid)
{
throw new NotImplementedException();
}
}
public class UserModel
{
public string FIO { get; set; }
public Guid Guid { get; internal set; }
}
}