RepoWorkerContext.cs 708 B

12345678910111213141516171819202122
  1. using System;
  2. using System.Linq;
  3. using Quadarax.Foundation.Core.Data.Interface.Repository;
  4. using Quadarax.Foundation.Core.Thread;
  5. namespace Quadarax.Foundation.Core.Business
  6. {
  7. public class RepoWorkerContext : IWorkerContext
  8. {
  9. public IRepository[] Repositories { get; }
  10. public RepoWorkerContext(params IRepository[] repositories)
  11. {
  12. Repositories = repositories ?? throw new ArgumentNullException(nameof(repositories));
  13. }
  14. public TRepository GetRepository<TRepository>() where TRepository : class, IRepository
  15. {
  16. return Repositories.FirstOrDefault(x => x is TRepository) as TRepository;
  17. }
  18. }
  19. }