Ejemplo n.º 1
0
 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());
 }
Ejemplo n.º 2
0
 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());
 }
Ejemplo n.º 3
0
 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();
 }
Ejemplo n.º 4
0
 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();
 }
Ejemplo n.º 7
0
 public void Any(Mode mode)
 {
     Scheduling.RunTask(() =>
     {
         var any = mode == Mode.CompiledQuery
             ? CompileQuery(() => Objects <Person>().Any())()
             : Objects <Person>().Any();
         Assert.True(any);
     }).Wait();
 }
Ejemplo n.º 8
0
 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();
 }
Ejemplo n.º 10
0
 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();
 }
Ejemplo n.º 11
0
 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();
 }
Ejemplo n.º 12
0
 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();
 }
Ejemplo n.º 13
0
 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();
 }
Ejemplo n.º 14
0
 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();
 }
Ejemplo n.º 15
0
 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();
 }
Ejemplo n.º 16
0
 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();
 }
Ejemplo n.º 17
0
 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();
 }
Ejemplo n.º 18
0
 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();
 }
Ejemplo n.º 19
0
 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();
 }
Ejemplo n.º 20
0
        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));
        }
Ejemplo n.º 21
0
 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();
 }
Ejemplo n.º 24
0
 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();
 }
Ejemplo n.º 28
0
 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();
 }