Пример #1
0
 public IQueryable <T> FindAll(ILinqSpecification <T> specification)
 {
     using (var session = new Session <T>(typeof(T).Name))
     {
         return(specification.SatisfyingElementsFrom(session.Queryable));
     }
 }
Пример #2
0
 /// <inheritdoc />
 public Task <TEntity> FindOneAsync(ILinqSpecification <TEntity> specification, CancellationToken cancellationToken = default)
 {
     if (specification == null)
     {
         throw new ArgumentNullException(nameof(specification));
     }
     return(specification.SatisfyingElementsFrom(Session.Query <TEntity>())
            .SingleOrDefaultAsync(cancellationToken));
 }
Пример #3
0
        public void AllSpecifications_ReturnOneCustomer(ILinqSpecification <Customer> specification, int expectedId)
        {
            var sut = specification.GetExpression();

            var result = Context.Customers
                         .Where(sut).ToList();

            Assert.Single(result);
            Assert.Equal(expectedId, result.First().CustomerId);
        }
Пример #4
0
        public void AllSpecificationsNegation_ReturnTwoCustomers(ILinqSpecification <Customer> specification, int first,
                                                                 int second)
        {
            var sut = specification.GetExpression();

            var result = Context.Customers
                         .Where(sut).ToList();

            Assert.Equal(2, result.Count);
            Assert.Equal(first, result.First().CustomerId);
            Assert.Equal(second, result.Last().CustomerId);
        }
Пример #5
0
 /// <summary>
 /// Finds an item by a specification.
 /// </summary>
 /// <param name="specification">The specification.</param>
 /// <returns>
 /// The matching item or <c>null</c>.
 /// </returns>
 public T FindOne(ILinqSpecification <T> specification)
 {
     return(specification.SatisfyingElementsFrom(this.Session.Query <T>()).SingleOrDefault());
 }
Пример #6
0
 /// <summary>
 /// Finds all items by a specification.
 /// </summary>
 /// <param name="specification">The specification.</param>
 /// <returns>
 /// All matching items.
 /// </returns>
 public IQueryable <T> FindAll(ILinqSpecification <T> specification)
 {
     return(specification.SatisfyingElementsFrom(this.Session.Query <T>()));
 }
Пример #7
0
 /// <inheritdoc />
 public Task <TEntity> FindOneAsync(ILinqSpecification <TEntity> specification, CancellationToken cancellationToken = default)
 {
     return(specification.SatisfyingElementsFrom(Session.Query <TEntity>()).SingleOrDefaultAsync(cancellationToken));
 }
 public static IQueryable <T> Apply <T>(this IQueryable <T> source, ILinqSpecification <T> spec)
     where T : class
 => spec.Apply(source);
Пример #9
0
 /// <summary>
 /// Finds an item by a specification.
 /// </summary>
 /// <param name="specification">The specification.</param>
 /// <returns>
 /// The matching item.
 /// </returns>
 public T FindOne(ILinqSpecification <T> specification)
 {
     return(specification.SatisfyingElementsFrom(FindAll()).SingleOrDefault());
 }
Пример #10
0
 /// <summary>
 ///     Finds all items by a specification.
 /// </summary>
 /// <param name="specification">The specification.</param>
 /// <returns>
 ///     All matching items.
 /// </returns>
 public IQueryable <TEntity> FindAll(ILinqSpecification <TEntity> specification)
 => specification.SatisfyingElementsFrom(FindAll());
Пример #11
0
 int IQuery <ILinqSpecification <TDest>, int> .Ask(ILinqSpecification <TDest> spec)
 => CountQuery(spec).Count();
Пример #12
0
 IEnumerable <TDest> IQuery <ILinqSpecification <TDest>, IEnumerable <TDest> > .Ask(ILinqSpecification <TDest> spec)
 => Query(spec).ToArray();
Пример #13
0
 public T FindOne(ILinqSpecification <T> specification)
 {
     return(this.FindAll(specification).FirstOrDefault());
 }