/
HiddenLogic
/
Motion-ERP
Обзор
Документация
Войти
/
HiddenLogic
/
Motion-ERP
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
main
Motion-ERP.API/Controllers/AssetGroupsController.cs
65 строк
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 AssetGroupsController : ControllerBase { private readonly IAssetGroupService _assetGroupService; public AssetGroupsController(IAssetGroupService assetGroupService) { _assetGroupService = assetGroupService; } [HttpGet] [ProducesResponseType(typeof(IEnumerable<AssetGroupDto>), StatusCodes.Status200OK)] public async Task<ActionResult<IEnumerable<AssetGroupDto>>> GetAll(CancellationToken ct) { var groups = await _assetGroupService.GetTreeAsync(ct); return Ok(groups); } [HttpGet("{id}")] [ProducesResponseType(typeof(AssetGroupDto), StatusCodes.Status200OK)] public async Task<ActionResult<AssetGroupDto>> GetById(Guid id, CancellationToken ct) { var group = await _assetGroupService.GetByIdAsync(id, ct); return group != null ? Ok(group) : NotFound(); } [HttpPost] [ProducesResponseType(typeof(AssetGroupDto), StatusCodes.Status201Created)] public async Task<ActionResult<AssetGroupDto>> Create(CreateAssetGroupDto dto, CancellationToken ct) { var group = await _assetGroupService.CreateAsync(dto, ct); return CreatedAtAction(nameof(GetById), new { id = group.AssetGroupId }, group); } [HttpPut("{id}")] [ProducesResponseType(typeof(AssetGroupDto), StatusCodes.Status200OK)] public async Task<ActionResult<AssetGroupDto>> Update(Guid id, UpdateAssetGroupDto dto, CancellationToken ct) { var group = await _assetGroupService.UpdateAsync(id, dto, ct); return group != null ? Ok(group) : NotFound(); } [HttpDelete("{id}")] [ProducesResponseType(StatusCodes.Status204NoContent)] public async Task<IActionResult> Delete(Guid id, CancellationToken ct) { try { var result = await _assetGroupService.DeleteAsync(id, ct); return result ? NoContent() : NotFound(); } catch (DomainException ex) { return BadRequest(ex.Message); } } }