This commit is contained in:
2025-09-03 00:54:40 +04:30
parent a7cdec69a7
commit 3b1e8095ba
4 changed files with 11 additions and 10 deletions
@@ -16,7 +16,7 @@ public class CreateLanguageCommandHandler(IUnitOfWork unitOfWork) : ICommandHand
public async Task<LanguageDTO> Handle(CreateLanguageCommand request, CancellationToken cancellationToken)
{
var title = request.Title.Trim();
if (await unitOfWork.Language.Exists(x => x.Title.Equals(title)))
if (await unitOfWork.Language.Exists(x => x.Title == title))
throw new LanguageTitleAlreadyExistsException();
var language = Language.CreateNew(new LanguageTitle(title));
@@ -1,6 +1,7 @@
using VizhTalk.BuildingBlocks.Application.Configuration.Query;
using VizhTalk.BuildingBlocks.Application.Data;
using VizhTalk.Grpc.Learning.Language;
using VizhTalk.Learning.Domain.Entities;
namespace VizhTalk.Learning.Application.QueryHandlers;
@@ -19,8 +20,10 @@ public class GetLanguageByTitleQueryHandler(IGenericDapper<LanguageDTO> language
{
public async Task<LanguageDTO> Handle(GetLanguageByTitleQuery request, CancellationToken cancellationToken)
{
var sql = "select * from Learning.Languages where Title = @title";
var language = await languageDapper.GetAsync(sql, request.Title);
var sql = $"select * from Learning.Languages where Title = " +
$" @{nameof(Language.Title)}";
var language = await languageDapper.GetAsync(sql, new { request.Title });
return language;
}
}
@@ -11,18 +11,16 @@ namespace VizhTalk.Learning.Domain.ValueObjects
}
public LanguageTitle(string title)
{
title = title.Trim();
Guard.NullOrEmpty(title, nameof(LanguageTitle));
Guard.MaxLength(title, nameof(LanguageTitle), 60);
Value = title;
}
public string Value { get; private set; }
public override bool Equals(object? obj)
{
if (obj is string value)
return Value == value;
return base.Equals(obj);
}
public static implicit operator string(LanguageTitle title) => title.Value;
}
}
@@ -12,7 +12,7 @@ public class GenericDapper<T> : IGenericDapper<T>
{
connection = sqlConnectionFactory.GetOpenConnection();
}
public async Task<T?> GetAsync(string sql, object? param = null)
public async Task<T?> GetAsync(string sql, object? param = null)
{
return await connection.QueryFirstOrDefaultAsync<T>(sql, param);
}