/
Airat
/
ASP.NET
Обзор
Документация
Войти
/
Airat
/
ASP.NET
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
UnitTests/src/PromoCodeFactory.WebHost/Controllers/EmployeesController.cs
76 строк
2 KB
Алексей Ягур
Initial commit
19 июл 2024, 21:59
19 июл 2024, 21:59
5158096
Код
Авторство
О чём код?
using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; using PromoCodeFactory.Core.Abstractions.Repositories; using PromoCodeFactory.Core.Domain.Administration; using PromoCodeFactory.WebHost.Models; namespace PromoCodeFactory.WebHost.Controllers { /// <summary> /// Сотрудники /// </summary> [ApiController] [Route("api/v1/[controller]")] public class EmployeesController : ControllerBase { private readonly IRepository<Employee> _employeeRepository; public EmployeesController(IRepository<Employee> employeeRepository) { _employeeRepository = employeeRepository; } /// <summary> /// Получить данные всех сотрудников /// </summary> /// <returns></returns> [HttpGet] public async Task<List<EmployeeShortResponse>> GetEmployeesAsync() { var employees = await _employeeRepository.GetAllAsync(); var employeesModelList = employees.Select(x => new EmployeeShortResponse() { Id = x.Id, Email = x.Email, FullName = x.FullName, }).ToList(); return employeesModelList; } /// <summary> /// Получить данные сотрудника по id /// </summary> /// <returns></returns> [HttpGet("{id:guid}")] public async Task<ActionResult<EmployeeResponse>> GetEmployeeByIdAsync(Guid id) { var employee = await _employeeRepository.GetByIdAsync(id); if (employee == null) return NotFound(); var employeeModel = new EmployeeResponse() { Id = employee.Id, Email = employee.Email, Role = new RoleItemResponse() { Id = employee.Id, Name = employee.Role.Name, Description = employee.Role.Description }, FullName = employee.FullName, AppliedPromocodesCount = employee.AppliedPromocodesCount }; return employeeModel; } } }