/
HiddenLogic
/
Motion-ERP
Обзор
Документация
Войти
/
HiddenLogic
/
Motion-ERP
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
main
Motion-ERP.API/Controllers/ContractorsController.cs
66 строк
2 KB
adnet
Initial commit: Motion-ERP solution structure
30 июл 2026, 17:01
30 июл 2026, 17:01
bf32c92
Код
Авторство
О чём код?
using Microsoft.AspNetCore.Mvc; using Motion_ERP_Application.DTOs; using Motion_ERP_Application.Interfaces; using Motion_ERP_Domain.Exceptions; namespace Motion_ERP_API.Controllers; [ApiController] [Route("api/[controller]")] public class ContractorsController : ControllerBase { private readonly IContractorService _contractorService; public ContractorsController(IContractorService contractorService) { _contractorService = contractorService; } [HttpGet] [ProducesResponseType(typeof(IEnumerable<ContractorDto>), StatusCodes.Status200OK)] public async Task<ActionResult<IEnumerable<ContractorDto>>> GetAll([FromQuery] string? search, CancellationToken ct) { var contractors = await _contractorService.GetAllAsync(search, ct); return Ok(contractors); } [HttpGet("{id}")] [ProducesResponseType(typeof(ContractorDto), StatusCodes.Status200OK)] public async Task<ActionResult<ContractorDto>> GetById(Guid id, CancellationToken ct) { var contractor = await _contractorService.GetByIdAsync(id, ct); return contractor != null ? Ok(contractor) : NotFound(); } [HttpGet("{id}/score")] [ProducesResponseType(typeof(int), StatusCodes.Status200OK)] public async Task<ActionResult<int>> GetCreditScore(Guid id, CancellationToken ct) { var score = await _contractorService.GetCreditScoreAsync(id, ct); return Ok(score); } [HttpPost] [ProducesResponseType(typeof(ContractorDto), StatusCodes.Status201Created)] public async Task<ActionResult<ContractorDto>> Create(CreateContractorDto dto, CancellationToken ct) { var contractor = await _contractorService.CreateAsync(dto, ct); return CreatedAtAction(nameof(GetById), new { id = contractor.ContractorId }, contractor); } [HttpPut("{id}")] [ProducesResponseType(typeof(ContractorDto), StatusCodes.Status200OK)] public async Task<ActionResult<ContractorDto>> Update(Guid id, UpdateContractorDto dto, CancellationToken ct) { var contractor = await _contractorService.UpdateAsync(id, dto, ct); return contractor != null ? Ok(contractor) : NotFound(); } [HttpDelete("{id}")] [ProducesResponseType(StatusCodes.Status204NoContent)] public async Task<IActionResult> Delete(Guid id, CancellationToken ct) { var result = await _contractorService.DeleteAsync(id, ct); return result ? NoContent() : NotFound(); } }