MyBookmark/Modules.Library.WebApi/Controllers/LanguageController.cs
2024-09-23 03:00:50 +03:00

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,
});
}