private List <T> SelectByCompanyName <T>(Mode mode, string companyName) where T : IHaveCompany { return(mode == Mode.CompiledQuery ? CompileQuery((string cn) => Objects <T>().Where(x => x.Company.Name == cn))(companyName).ToList() : Objects <T>().Where(x => x.Company.Name == companyName).ToList()); }
private List <T> SelectByName <T>(Mode mode, string name) where T : INamed { return(mode == Mode.CompiledQuery ? CompileQuery((string n) => Objects <T>().Where(x => x.Name == n))(name).ToList() : Objects <T>().Where(x => x.Name == name).ToList()); }
public void WhereIs(Mode mode) { Scheduling.RunTask(() => { var persons = mode == Mode.CompiledQuery ? CompileQuery(() => Objects <Person>().Where(p => p is Employee))().ToList() : Objects <Person>().Where(p => p is Employee).ToList(); Assert.Equal(2, persons.Count); }).Wait(); }
public void Select_Any(Mode mode) { Scheduling.RunTask(() => { bool any = mode == Mode.CompiledQuery ? CompileQuery(() => Objects <Person>().Select(x => x.Office).Any())() : Objects <Person>().Select(x => x.Office).Any(); Assert.True(any); }).Wait(); }
public void BooleanTrue_NestedTwice(Mode mode) { Scheduling.RunTask(() => { var employees = mode == Mode.CompiledQuery ? CompileQuery(() => Objects <Employee>().Where(x => x.Department.Company.Global))().ToList() : Objects <Employee>().Where(x => x.Department.Company.Global).ToList(); Assert.Equal(2, employees.Count); }).Wait(); }
public void MaxInteger(Mode mode) { Scheduling.RunTask(() => { var max = mode == Mode.CompiledQuery ? CompileQuery(() => Objects <Person>().Max(x => x.Age))() : Objects <Person>().Max(x => x.Age); Assert.Equal(41, max); }).Wait(); }
public void Any(Mode mode) { Scheduling.RunTask(() => { var any = mode == Mode.CompiledQuery ? CompileQuery(() => Objects <Person>().Any())() : Objects <Person>().Any(); Assert.True(any); }).Wait(); }
public void Where_Any(Mode mode) { Scheduling.RunTask(() => { bool any = mode == Mode.CompiledQuery ? CompileQuery((Gender g) => Objects <Person>().Where(x => x.Gender == g).Any())(Gender.Male) : Objects <Person>().Where(x => x.Gender == Gender.Male).Any(); Assert.True(any); }).Wait(); }
public void SumInteger(Mode mode) { Scheduling.RunTask(() => { var sum = mode == Mode.CompiledQuery ? CompileQuery(() => Objects <Person>().Sum(x => x.Age))() : Objects <Person>().Sum(x => x.Age); Assert.Equal(72, sum); }).Wait(); }
public void SelectIntegerProperty(Mode mode) { Scheduling.RunTask(() => { List <int> ages = mode == Mode.CompiledQuery ? CompileQuery(() => Objects <Person>().Select(x => x.Age))().ToList() : Objects <Person>().Select(x => x.Age).ToList(); Assert.Equal(2, ages.Count); }).Wait(); }
public void SelectStringProperty(Mode mode) { Scheduling.RunTask(() => { List <string> names = mode == Mode.CompiledQuery ? CompileQuery(() => Objects <Person>().Select(x => x.Name))().ToList() : Objects <Person>().Select(x => x.Name).ToList(); Assert.Equal(2, names.Count); }).Wait(); }
public void SelectObjectProperty(Mode mode) { Scheduling.RunTask(() => { List <Office> offices = mode == Mode.CompiledQuery ? CompileQuery(() => Objects <Person>().Select(x => x.Office))().ToList() : Objects <Person>().Select(x => x.Office).ToList(); Assert.Equal(2, offices.Count); }).Wait(); }
public void SelectObjectDirectly(Mode mode) { Scheduling.RunTask(() => { List <Person> people = mode == Mode.CompiledQuery ? CompileQuery(() => Objects <Person>().Select(x => x))().ToList() : Objects <Person>().Select(x => x).ToList(); Assert.Equal(2, people.Count); }).Wait(); }
public void FirstOrDefault_StringEqualsNull__NotFound(Mode mode) { Scheduling.RunTask(() => { var person = mode == Mode.CompiledQuery ? CompileQuery(() => Objects <Person>().FirstOrDefault(p => p.Name == null))() : Objects <Person>().FirstOrDefault(p => p.Name == null); Assert.Null(person); }).Wait(); }
public void Select_Any_Predicate(Mode mode) { Scheduling.RunTask(() => { bool any = mode == Mode.CompiledQuery ? CompileQuery((string city) => Objects <Person>().Select(x => x.Office).Any(x => x.City == city))("Stockholm") : Objects <Person>().Select(x => x.Office).Any(x => x.City == "Stockholm"); Assert.True(any); }).Wait(); }
public void SingleOrDefault_SequenceEmpty(Mode mode) { Scheduling.RunTask(() => { var person = mode == Mode.CompiledQuery ? CompileQuery((int age) => Objects <Person>().SingleOrDefault(x => x.Age == age))(100) : Objects <Person>().SingleOrDefault(x => x.Age == 100); Assert.Null(person); }).Wait(); }
public void Skip(Mode mode) { Scheduling.RunTask(() => { var persons = mode == Mode.CompiledQuery ? CompileQuery(() => Objects <Person>().Skip(1))().ToList() : Objects <Person>().Skip(1).ToList(); Assert.Equal(1, persons.Count); }).Wait(); }
public void Single(Mode mode) { Scheduling.RunTask(() => { var person = mode == Mode.CompiledQuery ? CompileQuery((int age) => Objects <Person>().Single(x => x.Age > age))(40) : Objects <Person>().Single(x => x.Age > 40); Assert.NotNull(person); }).Wait(); }
public void Any_Predicate(Mode mode) { Scheduling.RunTask(() => { bool any = mode == Mode.CompiledQuery ? CompileQuery((int age) => Objects <Person>().Any(x => x.Age > age))(0) : Objects <Person>().Any(x => x.Age > 0); Assert.True(any); }).Wait(); }
public virtual TResult Execute <TResult>(Expression query) { Check.NotNull(query, nameof(query)); var queryContext = _queryContextFactory.Create(); query = ExtractParameters(query, queryContext); return(CompileQuery <TResult>(query)(queryContext)); }
public void First(Mode mode) { Scheduling.RunTask(() => { var person = mode == Mode.CompiledQuery ? CompileQuery(() => Objects <Person>().First())() : Objects <Person>().First(); Assert.NotNull(person); }).Wait(); }
public void CountWithPredicate(Mode mode) { Scheduling.RunTask(() => { var cnt = mode == Mode.CompiledQuery ? CompileQuery(() => Objects <Person>().Count(x => x is Employee))() : Objects <Person>().Count(x => x is Employee); Assert.Equal(2, cnt); }).Wait(); }
public void Count(Mode mode) { Scheduling.RunTask(() => { var cnt = mode == Mode.CompiledQuery ? CompileQuery(() => Objects <Person>().Count())() : Objects <Person>().Count(); Assert.Equal(2, cnt); }).Wait(); }
public void Where_Any_Predicate(Mode mode) { Scheduling.RunTask(() => { bool any = mode == Mode.CompiledQuery ? CompileQuery((Gender g, int age) => Objects <Person>().Where(x => x.Gender == g).Any(x => x.Age > age))(Gender.Male, 0) : Objects <Person>().Where(x => x.Gender == Gender.Male).Any(x => x.Age > 0); Assert.True(any); }).Wait(); }
public void BooleanTrue(Mode mode) { Scheduling.RunTask(() => { var employees = mode == Mode.CompiledQuery ? CompileQuery(() => Objects <Employee>().Where(x => x.Disabled))().ToList() : Objects <Employee>().Where(x => x.Disabled).ToList(); Assert.Equal(1, employees.Count); Assert.Equal("Roger", employees.First().Name); }).Wait(); }
public void AverageInteger(Mode mode) { Scheduling.RunTask(() => { var avg = mode == Mode.CompiledQuery ? CompileQuery(() => Objects <Person>().Average(x => x.Age))() : Objects <Person>().Average(x => x.Age); Assert.Equal(36, avg); }).Wait(); }
public void BooleanEqualsComplex(Mode mode) { Scheduling.RunTask(() => { var employees = mode == Mode.CompiledQuery ? CompileQuery((int age, bool fl) => Objects <Employee>().Where(x => x.Age > age && x.Disabled == fl))(10, true).ToList() : Objects <Employee>().Where(x => x.Age > 10 && x.Disabled == true).ToList(); Assert.Equal(1, employees.Count); Assert.Equal("Roger", employees.First().Name); }).Wait(); }
public void OrderBy_ObjectNo(Mode mode) { Scheduling.RunTask(() => { List <Person> people = mode == Mode.CompiledQuery ? CompileQuery(() => Objects <Person>().OrderByDescending(x => x.GetObjectNo()))().ToList() : Objects <Person>().OrderByDescending(x => x.GetObjectNo()).ToList(); Assert.Equal(2, people.Count); Assert.True(people[0].GetObjectNo() > people[1].GetObjectNo()); }).Wait(); }
public void BooleanFalseComplex(Mode mode) { Scheduling.RunTask(() => { var employees = mode == Mode.CompiledQuery ? CompileQuery((int age) => Objects <Employee>().Where(x => x.Age > age && !x.Disabled))(10).ToList() : Objects <Employee>().Where(x => x.Age > 10 && !x.Disabled).ToList(); Assert.Equal(1, employees.Count); Assert.Equal("Anton", employees.First().Name); }).Wait(); }
public void BooleanEqualsNot(Mode mode) { Scheduling.RunTask(() => { var employees = mode == Mode.CompiledQuery ? CompileQuery((bool fl) => Objects <Employee>().Where(x => x.Disabled != fl))(true).ToList() : Objects <Employee>().Where(x => x.Disabled != true).ToList(); Assert.Equal(1, employees.Count); Assert.Equal("Anton", employees.First().Name); }).Wait(); }