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