refactor: remove IRepository and DbRepository

This commit is contained in:
tekh 2025-10-22 17:34:28 +02:00
parent 1febae72c2
commit 90ce4e487c
5 changed files with 0 additions and 154 deletions

View File

@ -1,53 +0,0 @@
#if NETFRAMEWORK
using System;
#endif
using DigitalData.Core.Abstraction.Application.Repository;
using Microsoft.Extensions.DependencyInjection;
namespace DigitalData.Core.Abstraction.Application
#if NET
;
#elif NETFRAMEWORK
{
#endif
public interface IFactory : IServiceCollection, IServiceProvider
{
#if NET
public
#endif
IRepository Repository { get; }
}
public class Factory : ServiceCollection, IFactory, IServiceCollection, IServiceProvider
{
private readonly Lazy<IServiceProvider> _rootProvider;
private Factory()
{
_rootProvider = new Lazy<IServiceProvider>(this.BuildServiceProvider);
}
public object
#if NET
?
#endif
GetService(Type serviceType)
{
return _rootProvider.Value.GetService(serviceType);
}
public IRepository Repository => _rootProvider.Value.GetRequiredService<IRepository>();
public static readonly IFactory Shared = new Factory();
}
public static class Factory<TEntity>
{
public static IRepository<TEntity> Repository() => Factory.Shared.GetRequiredService<IRepository<TEntity>>();
}
#if NETFRAMEWORK
}
#endif

View File

@ -1,79 +0,0 @@
using System.Linq.Expressions;
using DigitalData.Core.Abstractions.Interfaces;
#if NETFRAMEWORK
using System;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
using System.Linq;
#endif
namespace DigitalData.Core.Abstraction.Application.Repository
#if NET
;
#elif NETFRAMEWORK
{
#endif
public static class Extensions
{
#region IRepository
#region Read
public static IEnumerable<TEntity> GetAll<TEntity>(this IRepository repository) where TEntity : IEntity
=> repository.Entity<TEntity>().GetAll();
public static Task<IEnumerable<TEntity>> GetAllAsync<TEntity>(this IRepository repository, CancellationToken cancel = default) where TEntity : IEntity
=> repository.Entity<TEntity>().GetAllAsync(cancel);
public static IQueryable<TEntity> Where<TEntity>(this IRepository repository, Expression<Func<TEntity, bool>> expression)
where TEntity : IEntity
=> repository.Entity<TEntity>().Where(expression);
#endregion
#region Create
public static Task<TEntity> CreateAsync<TEntity>(this IRepository repository, TEntity entity, CancellationToken cancel = default)
where TEntity : IEntity
=> repository.Entity<TEntity>().CreateAsync(entity, cancel);
public static Task<TEntity> CreateAsync<TEntity, TDto>(this IRepository repository, TDto dto, CancellationToken cancel = default)
where TEntity : IEntity
where TDto : IDto<TEntity>
=> repository.Entity<TEntity>().CreateAsync(dto, cancel);
public static Task<IEnumerable<TEntity>> CreateAsync<TEntity>(this IRepository repository, IEnumerable<TEntity> entities, CancellationToken cancel = default)
where TEntity : IEntity
=> repository.Entity<TEntity>().CreateAsync(entities, cancel);
public static Task<IEnumerable<TEntity>> CreateAsync<TEntity, TDto>(this IRepository repository, IEnumerable<TDto> dtos, CancellationToken cancel = default)
where TEntity : IEntity
where TDto : IDto<TEntity>
=> repository.Entity<TEntity>().CreateAsync(dtos, cancel);
#endregion Create
#region Update
public static Task UpdateAsync<TEntity, TDto>(this IRepository repository, TDto dto, Expression<Func<TEntity, bool>> expression, CancellationToken cancel = default)
where TEntity : IEntity
where TDto : IDto<TEntity>
=> repository.Entity<TEntity>().UpdateAsync(dto, expression, cancel);
public static Task UpdateAsync<TEntity, TDto>(this IRepository repository, TDto dto, Func<IQueryable<TEntity>, IQueryable<TEntity>> query, CancellationToken cancel = default)
where TEntity : IEntity
where TDto : IDto<TEntity>
=> repository.Entity<TEntity>().UpdateAsync(dto, query, cancel);
#endregion
#region Delete
public static Task DeleteAsync<TEntity>(this IRepository repository, Expression<Func<TEntity, bool>> expression, CancellationToken cancel = default)
where TEntity : IEntity
=> repository.Entity<TEntity>().DeleteAsync(expression, cancel);
public static Task DeleteAsync<TEntity>(this IRepository repository, Func<IQueryable<TEntity>, IQueryable<TEntity>> query, CancellationToken cancel = default)
where TEntity : IEntity
=> repository.Entity<TEntity>().DeleteAsync(query, cancel);
#endregion
#endregion
}
#if NETFRAMEWORK
}
#endif

View File

@ -99,12 +99,6 @@ public interface IRepository<TEntity>
IQueryable<TEntity> ReadOnly(); IQueryable<TEntity> ReadOnly();
#endregion #endregion
} }
public interface IRepository
{
IRepository<TEntity> Entity<TEntity>() where TEntity : IEntity;
}
#if NETFRAMEWORK #if NETFRAMEWORK
} }
#endif #endif

View File

@ -129,19 +129,6 @@ public class DbRepository<TDbContext, TEntity> : IRepository<TEntity> where TDbC
public virtual IQueryable<TEntity> ReadOnly() => Entities.AsNoTracking(); public virtual IQueryable<TEntity> ReadOnly() => Entities.AsNoTracking();
#endregion #endregion
} }
public class DbRepository : IRepository
{
private readonly IServiceProvider _provider;
public DbRepository(IServiceProvider provider)
{
_provider = provider;
}
public IRepository<TEntity> Entity<TEntity>() where TEntity : IEntity => _provider.GetRequiredService<IRepository<TEntity>>();
}
#if NETFRAMEWORK #if NETFRAMEWORK
} }
#endif #endif

View File

@ -26,9 +26,6 @@ public static class DependencyInjection
options.Invoke(cfg); options.Invoke(cfg);
cfg.RegisterAllServices(services); cfg.RegisterAllServices(services);
// register db repository
services.AddSingleton<IRepository, DbRepository>();
return services; return services;
} }