49 lines
1.5 KiB
C#
49 lines
1.5 KiB
C#
using MediatR;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
|
|
namespace Modules.Library.WebApi.Controllers;
|
|
|
|
[ApiController]
|
|
[ApiExplorerSettings(GroupName = "LanguageV1")]
|
|
[Route("Dictionaries/Language")]
|
|
//[Route("[controller]")]
|
|
public class LanguageController : ControllerBase
|
|
{
|
|
private readonly IMediator _mediator;
|
|
private readonly ILogger _logger;
|
|
|
|
public LanguageController(IMediator mediator, ILogger<LanguageController> logger)
|
|
{
|
|
_mediator = mediator;
|
|
_logger = logger;
|
|
}
|
|
|
|
[HttpGet("List")]
|
|
public async Task<List<Application.Models.Language>> List() =>
|
|
await _mediator.Send(new Application.Queries.Dictionaries.Language.LanguageListQuery());
|
|
|
|
[HttpPost("Create")]
|
|
public async Task<Guid> CreateLanguage([FromQuery] string codeIso2, [FromQuery] string name) =>
|
|
await _mediator.Send(new Application.Commands.Dictionaries.Language.CreateLanguageCommand
|
|
{
|
|
Code = codeIso2,
|
|
Name = name,
|
|
});
|
|
|
|
[HttpPost("Edit")]
|
|
public async Task EditLanguage([FromQuery] Guid id, [FromQuery] string? codeIso2, [FromQuery]string? name) =>
|
|
await _mediator.Send(new Application.Commands.Dictionaries.Language.SetLanguageNameCommand
|
|
{
|
|
Id = id,
|
|
Code = codeIso2,
|
|
Name = name,
|
|
});
|
|
|
|
[HttpPost("Delete")]
|
|
public async Task DeleteLanguage([FromQuery] Guid id) =>
|
|
await _mediator.Send(new Application.Commands.Dictionaries.Language.DeleteLanguageCommand
|
|
{
|
|
Id = id,
|
|
});
|
|
}
|