89 lines
2.7 KiB
C#
89 lines
2.7 KiB
C#
|
using DSaC.Models.DTOs;
|
|||
|
using DSaC.Models.Internal.Queries;
|
|||
|
using DSaC.Models.Internal.Сommands;
|
|||
|
using MediatR;
|
|||
|
using Microsoft.AspNetCore.Http;
|
|||
|
using Microsoft.AspNetCore.Mvc;
|
|||
|
using Microsoft.AspNetCore.Mvc.RazorPages;
|
|||
|
|
|||
|
namespace DSaC.Controllers
|
|||
|
{
|
|||
|
[Route("api/[controller]")]
|
|||
|
[ApiController]
|
|||
|
public class CounterpartiesController : ControllerBase
|
|||
|
{
|
|||
|
private readonly IMediator mediator;
|
|||
|
|
|||
|
public CounterpartiesController(IMediator mediator)
|
|||
|
{
|
|||
|
this.mediator = mediator;
|
|||
|
}
|
|||
|
|
|||
|
[HttpGet("")]
|
|||
|
public async Task<IActionResult> GetCounterparties(
|
|||
|
[FromQuery] int page = 0,
|
|||
|
[FromQuery] int pageSize = 10,
|
|||
|
[FromQuery] List<Guid>? ids = null
|
|||
|
)
|
|||
|
{
|
|||
|
var request = new GetCounterpartiesQuery
|
|||
|
{
|
|||
|
Page = page,
|
|||
|
PageSize = pageSize,
|
|||
|
Ids = ids
|
|||
|
};
|
|||
|
|
|||
|
var response = await mediator.Send(request);
|
|||
|
|
|||
|
return !response.IsError ? Ok(response.Value) : StatusCode(response.ErrorCode!.Value, response.ErrorText);
|
|||
|
}
|
|||
|
|
|||
|
[HttpGet("{uuid:guid}")]
|
|||
|
public async Task<IActionResult> GetFullCounterparty([FromRoute] Guid uuid)
|
|||
|
{
|
|||
|
var request = new GetCounterpartyQuery
|
|||
|
{
|
|||
|
Id = uuid
|
|||
|
};
|
|||
|
|
|||
|
var response = await mediator.Send(request);
|
|||
|
|
|||
|
return !response.IsError ? Ok(response.Value) : StatusCode(response.ErrorCode!.Value, response.ErrorText);
|
|||
|
}
|
|||
|
|
|||
|
[HttpPost("")]
|
|||
|
public async Task<IActionResult> CreateCounterparty([FromBody] CounterpartyBaseDto dto)
|
|||
|
{
|
|||
|
var response = await mediator.Send(new CreateCounterpartyCommand()
|
|||
|
{
|
|||
|
Model = dto
|
|||
|
});
|
|||
|
|
|||
|
return !response.IsError ? Ok(response.Value) : StatusCode(response.ErrorCode!.Value, response.ErrorText);
|
|||
|
}
|
|||
|
|
|||
|
[HttpPut("{uuid:guid}")]
|
|||
|
public async Task<IActionResult> UpdateRecord([FromRoute] Guid uuid, [FromBody] CounterpartyViewDto dto)
|
|||
|
{
|
|||
|
var response = await mediator.Send(new UpdateCounterpartyCommand()
|
|||
|
{
|
|||
|
Id=uuid,
|
|||
|
Model = dto
|
|||
|
});
|
|||
|
|
|||
|
return !response.IsError ? Ok(response.Value) : StatusCode(response.ErrorCode!.Value, response.ErrorText);
|
|||
|
}
|
|||
|
|
|||
|
[HttpDelete("{uuid:guid}")]
|
|||
|
public async Task<IActionResult> DeleteRecord([FromRoute] Guid uuid)
|
|||
|
{
|
|||
|
var response = await mediator.Send(new DeleteCounterpartyCommand()
|
|||
|
{
|
|||
|
Id = uuid,
|
|||
|
});
|
|||
|
|
|||
|
return !response.IsError ? Ok() : StatusCode(response.ErrorCode!.Value, response.ErrorText);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|