public IQueryable <T> FindAll(ILinqSpecification <T> specification) { using (var session = new Session <T>(typeof(T).Name)) { return(specification.SatisfyingElementsFrom(session.Queryable)); } }
/// <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)); }
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); }
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); }
/// <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()); }
/// <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>())); }
/// <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);
/// <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()); }
/// <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());
int IQuery <ILinqSpecification <TDest>, int> .Ask(ILinqSpecification <TDest> spec) => CountQuery(spec).Count();
IEnumerable <TDest> IQuery <ILinqSpecification <TDest>, IEnumerable <TDest> > .Ask(ILinqSpecification <TDest> spec) => Query(spec).ToArray();
public T FindOne(ILinqSpecification <T> specification) { return(this.FindAll(specification).FirstOrDefault()); }