Beispiel #1
0
 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;
 }
Beispiel #2
0
        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);
        }