diff --git a/Contracts/IEmployeeRepository.cs b/Contracts/IEmployeeRepository.cs index d1a6297..a0ed595 100644 --- a/Contracts/IEmployeeRepository.cs +++ b/Contracts/IEmployeeRepository.cs @@ -31,7 +31,10 @@ namespace Contracts; public interface IEmployeeRepository { IEnumerable GetEmployees(Guid companyId, bool trackChanges); + Employee? GetEmployee(Guid companyId, Guid employeeId, bool trackChanges); + void CreateEmployeeForCompany(Guid companyId, Employee employee); + void DeleteEmployee(Employee employee); } \ No newline at end of file diff --git a/Contracts/ILoggerManager.cs b/Contracts/ILoggerManager.cs index 9cf39da..72a44a8 100644 --- a/Contracts/ILoggerManager.cs +++ b/Contracts/ILoggerManager.cs @@ -29,7 +29,10 @@ namespace Contracts; public interface ILoggerManager { void LogInfo(string message); + void LogWarn(string message); + void LogDebug(string message); + void LogError(string message); } \ No newline at end of file diff --git a/LoggerService/LoggerManager.cs b/LoggerService/LoggerManager.cs index 018bce8..f962d38 100644 --- a/LoggerService/LoggerManager.cs +++ b/LoggerService/LoggerManager.cs @@ -38,7 +38,10 @@ public class LoggerManager :ILoggerManager } public void LogDebug(string message) => logger.Debug(message); + public void LogError(string message) => logger.Error(message); + public void LogInfo(string message) => logger.Info(message); + public void LogWarn(string message) => logger.Warn(message); } \ No newline at end of file diff --git a/Repository/RepositoryContext.cs b/Repository/RepositoryContext.cs index c75371e..eb44815 100644 --- a/Repository/RepositoryContext.cs +++ b/Repository/RepositoryContext.cs @@ -44,6 +44,7 @@ public class RepositoryContext : DbContext } public DbSet? Companies { get; set; } + public DbSet? Employees { get; set; } } \ No newline at end of file diff --git a/Service.Contracts/IEmployeeService.cs b/Service.Contracts/IEmployeeService.cs index 4e57954..073d3f9 100644 --- a/Service.Contracts/IEmployeeService.cs +++ b/Service.Contracts/IEmployeeService.cs @@ -32,8 +32,11 @@ namespace Service.Contracts; public interface IEmployeeService { IEnumerable GetEmployees(Guid companyId, bool trackChanges); + EmployeeDto GetEmployee(Guid companyId, Guid employeeId, bool trackChanges); + EmployeeDto CreateEmployeeForCompany(Guid companyId, EmployeeCreateDto? employeeCreateDto, bool trackChanges); + void DeleteEmployeeForCompany(Guid companyId, Guid employeeId, bool trackChanges); void UpdateEmployeeForCompany(Guid companyId, Guid employeeId, EmployeeUpdateDto employeeUpdate, diff --git a/Service.Contracts/IServiceManager.cs b/Service.Contracts/IServiceManager.cs index 85db3c9..aaff83b 100644 --- a/Service.Contracts/IServiceManager.cs +++ b/Service.Contracts/IServiceManager.cs @@ -29,5 +29,6 @@ namespace Service.Contracts; public interface IServiceManager { ICompanyService CompanyService { get; } + IEmployeeService EmployeeService { get; } } \ No newline at end of file diff --git a/Service/EmployeeService.cs b/Service/EmployeeService.cs index 672ffff..d089e90 100644 --- a/Service/EmployeeService.cs +++ b/Service/EmployeeService.cs @@ -47,7 +47,6 @@ internal sealed class EmployeeService : IEmployeeService } - public IEnumerable GetEmployees(Guid companyId, bool trackChanges) { var company = _repository.Company.GetCompany(companyId, trackChanges); @@ -163,6 +162,7 @@ internal sealed class EmployeeService : IEmployeeService } } + public (EmployeeUpdateDto employeeToPatch, Employee employeeEntity) GetEmployeeForPatch(Guid companyId, Guid employeeId, bool companyTrackChanges, bool employeeTrackChanges) { @@ -182,6 +182,7 @@ internal sealed class EmployeeService : IEmployeeService return (employeeToPatch, employeeEntity); } + public void SaveChangesForPatch(EmployeeUpdateDto employeeToPatch, Employee employeeEntity) { _mapper.Map(employeeToPatch, employeeEntity); diff --git a/Service/ServiceManager.cs b/Service/ServiceManager.cs index 1b95f82..0de0dd4 100644 --- a/Service/ServiceManager.cs +++ b/Service/ServiceManager.cs @@ -33,6 +33,7 @@ namespace Service; public sealed class ServiceManager : IServiceManager { private readonly Lazy _companyService; + private readonly Lazy _employeeService; public ServiceManager(IRepositoryManager repositoryManager, ILoggerManager logger, IMapper mapper) @@ -42,5 +43,6 @@ public sealed class ServiceManager : IServiceManager } public ICompanyService CompanyService => _companyService.Value; + public IEmployeeService EmployeeService => _employeeService.Value; } \ No newline at end of file