public Repository(ILogger <Repository> logger, ekartContext ekartDbContext) { _logger = logger ?? throw new ArgumentNullException(nameof(logger)); _ekartDbContext = ekartDbContext; _retryPolicy = new RetryPolicy <CustomTransientErrorDetectionStrategy> (5, minBackoff: TimeSpan.FromSeconds(0.1), maxBackoff: TimeSpan.FromSeconds(30) , deltaBackoff: TimeSpan.FromSeconds(1)); _retryPolicy.Retrying += RetryPolicyRetrying; }
private static IQueryable <TEntity> GetQueryable <TEntity>(ekartContext _ekartDbContext, Expression <Func <TEntity, bool> > filter = null, Func <IQueryable <TEntity>, IOrderedQueryable <TEntity> > orderBy = null, string includeProperties = null, int?skip = null, int?take = null) where TEntity : class { includeProperties = includeProperties ?? string.Empty; IQueryable <TEntity> query = _ekartDbContext.Set <TEntity>(); if (filter != null) { query = query.Where(filter); } foreach (var includeProperty in includeProperties.Split (new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries)) { query = query.Include(includeProperty); } if (orderBy != null) { query = orderBy(query); } if (skip.HasValue) { query = query.Skip(skip.Value); } if (take.HasValue) { query = query.Take(take.Value); } return(query); }