using FreeSql; using F9WebAiTest.Domain.Entities.SYS.Registries; using F9WebAiTest.Domain.Interfaces.SYS.Registries; namespace F9WebAiTest.Infrastructure.FreeSqls.Repositories.SYS.Registries; internal class RegistryWriteRepository : F9RepositoryBase, IRegistryWriteRepository { public RegistryWriteRepository(IFreeSql fsql) : base(fsql) { } public async Task GetByIdAsync(long id, CancellationToken cancellationToken) => await Orm.Select().Where(x => x.Id == id && x.DeletedAt == null).FirstAsync(cancellationToken); public async Task GetByCategoryAndKeyAsync(string category, string keyName) => await Orm.Select() .Where(x => x.DeletedAt == null && x.Category == category && x.KeyName == keyName) .FirstAsync(); public async Task AddAsync(Registry registry) { registry.CreatedAt = DateTime.Now; return await Orm.Insert(registry).ExecuteAffrowsAsync() > 0; } public async Task UpdateAsync(Registry registry) { registry.UpdatedAt = DateTime.Now; return await Orm.Update().SetSource(registry).ExecuteAffrowsAsync() > 0; } public async Task SoftDeleteAsync(long id) => await Orm.Update() .Set(x => x.IsDeleted, true) .Set(x => x.DeletedAt, DateTime.Now) .Where(x => x.Id == id) .ExecuteAffrowsAsync() > 0; }