77 lines
2.8 KiB
C#
77 lines
2.8 KiB
C#
|
// ***********************************************************************
|
|||
|
// Assembly : Service
|
|||
|
// Author : frede
|
|||
|
// Created : 2023 06 11 10:40
|
|||
|
//
|
|||
|
// Last Modified By : frede
|
|||
|
// Last Modified On : 2023 06 11 10:40
|
|||
|
// ***********************************************************************
|
|||
|
// <copyright file="EmployeeService.cs" company="FCS">
|
|||
|
// Copyright (C) 2023-2023 FCS Frede's Computer Services.
|
|||
|
// This program is free software: you can redistribute it and/or modify
|
|||
|
// it under the terms of the GNU Affero General Public License as
|
|||
|
// published by the Free Software Foundation, either version 3 of the
|
|||
|
// License, or (at your option) any later version.
|
|||
|
//
|
|||
|
// This program is distributed in the hope that it will be useful,
|
|||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|||
|
// GNU Affero General Public License for more details.
|
|||
|
//
|
|||
|
// You should have received a copy of the GNU Affero General Public License
|
|||
|
// along with this program. If not, see [https://www.gnu.org/licenses]
|
|||
|
// </copyright>
|
|||
|
// <summary></summary>
|
|||
|
// ***********************************************************************
|
|||
|
|
|||
|
using AutoMapper;
|
|||
|
using Contracts;
|
|||
|
using Entities.Exceptions;
|
|||
|
using Service.Contracts;
|
|||
|
using Shared.DataTransferObjects;
|
|||
|
|
|||
|
namespace Service;
|
|||
|
|
|||
|
internal sealed class EmployeeService : IEmployeeService
|
|||
|
{
|
|||
|
public readonly IRepositoryManager _repository;
|
|||
|
public readonly ILoggerManager _logger;
|
|||
|
public readonly IMapper _mapper;
|
|||
|
|
|||
|
public EmployeeService(IRepositoryManager repository, ILoggerManager logger, IMapper mapper)
|
|||
|
{
|
|||
|
_repository = repository;
|
|||
|
_logger = logger;
|
|||
|
_mapper = mapper;
|
|||
|
}
|
|||
|
|
|||
|
public IEnumerable<EmployeeDto> GetEmployees(Guid companyId, bool trackChanges)
|
|||
|
{
|
|||
|
var company = _repository.Company.GetCompany(companyId, trackChanges);
|
|||
|
if (company == null)
|
|||
|
{
|
|||
|
throw new CompanyNotFoundException(companyId);
|
|||
|
}
|
|||
|
var employeesFromDb = _repository.Employee.GetEmployees(companyId, trackChanges);
|
|||
|
var employeesDto = _mapper.Map<IEnumerable<EmployeeDto>>(employeesFromDb);
|
|||
|
return employeesDto;
|
|||
|
}
|
|||
|
|
|||
|
public EmployeeDto GetEmployee(Guid companyId, Guid employeeId, bool trackChanges)
|
|||
|
{
|
|||
|
var company = _repository.Company.GetCompany(companyId, trackChanges);
|
|||
|
if (company == null)
|
|||
|
{
|
|||
|
throw new CompanyNotFoundException(companyId);
|
|||
|
}
|
|||
|
|
|||
|
var employeeDb = _repository.Employee.GetEmployee(companyId, employeeId, trackChanges);
|
|||
|
if (employeeDb == null)
|
|||
|
{
|
|||
|
throw new EmployeeNotFoundException(employeeId);
|
|||
|
}
|
|||
|
|
|||
|
var employee = _mapper.Map<EmployeeDto>(employeeDb);
|
|||
|
return employee;
|
|||
|
}
|
|||
|
}
|