MyBookmark/Modules.Library.Application/Commands/Dictionaries/Language/CreateLanguageCommand.cs
2024-09-23 03:00:50 +03:00

19 lines
758 B
C#

using MediatR;
using Modules.Library.Application.Gateways;
namespace Modules.Library.Application.Commands.Dictionaries.Language;
public class CreateLanguageCommand : IRequest<Guid>
{
public string Code { get; set; } = default!;
public string Name { get; set; } = default!;
}
public class CreateLanguageCommandHandler(ILanguageGateway languageGateway) : IRequestHandler<CreateLanguageCommand, Guid>
{
public async Task<Guid> Handle(CreateLanguageCommand request, CancellationToken cancellationToken)
{
if (await languageGateway.IsLanguageExists(request.Code, request.Name)) throw new Exception("Language with the same name or code already exists");
return await languageGateway.Create(request.Code, request.Name);
}
}