Adds KeyValueService Find and tests

This commit is contained in:
Shannon
2021-06-08 10:58:17 -06:00
parent a46ac7c98c
commit 77017f25b3
10 changed files with 105 additions and 23 deletions

View File

@@ -9,6 +9,7 @@ using Umbraco.Cms.Core.Persistence.Querying;
using Umbraco.Cms.Core.Persistence.Repositories;
using Umbraco.Cms.Core.Scoping;
using Umbraco.Cms.Infrastructure.Persistence.Dtos;
using Umbraco.Cms.Infrastructure.Persistence.Querying;
using Umbraco.Extensions;
namespace Umbraco.Cms.Infrastructure.Persistence.Repositories.Implement
@@ -19,6 +20,11 @@ namespace Umbraco.Cms.Infrastructure.Persistence.Repositories.Implement
: base(scopeAccessor, AppCaches.NoCache, logger)
{ }
/// <inheritdoc />
public IReadOnlyDictionary<string, string> Find(string keyPrefix)
=> Get(Query<IKeyValue>().Where(entity => entity.Identifier.StartsWith(keyPrefix)))
.ToDictionary(x => x.Identifier, x => x.Value);
#region Overrides of IReadWriteQueryRepository<string, IKeyValue>
public override void Save(IKeyValue entity)
@@ -47,15 +53,9 @@ namespace Umbraco.Cms.Infrastructure.Persistence.Repositories.Implement
return sql;
}
protected override string GetBaseWhereClause()
{
return Cms.Core.Constants.DatabaseSchema.Tables.KeyValue + ".key = @id";
}
protected override string GetBaseWhereClause() => Core.Constants.DatabaseSchema.Tables.KeyValue + ".key = @id";
protected override IEnumerable<string> GetDeleteClauses()
{
return Enumerable.Empty<string>();
}
protected override IEnumerable<string> GetDeleteClauses() => Enumerable.Empty<string>();
protected override IKeyValue PerformGet(string id)
{
@@ -73,7 +73,10 @@ namespace Umbraco.Cms.Infrastructure.Persistence.Repositories.Implement
protected override IEnumerable<IKeyValue> PerformGetByQuery(IQuery<IKeyValue> query)
{
throw new NotSupportedException();
var sqlClause = GetBaseQuery(false);
var translator = new SqlTranslator<IKeyValue>(sqlClause, query);
var sql = translator.Translate();
return Database.Fetch<KeyValueDto>(sql).Select(Map);
}
protected override void PersistNewItem(IKeyValue entity)