Skip to content

Commit

Permalink
Replaced LINQ Query demo with one which helps demonstrate OzCode v3.1…
Browse files Browse the repository at this point in the history
… "Pin" feature
  • Loading branch information
Omer Raviv committed Jun 27, 2017
1 parent bc379f1 commit dc4d5eb
Show file tree
Hide file tree
Showing 5 changed files with 89 additions and 13 deletions.
38 changes: 25 additions & 13 deletions OzCodeDemo/13.LINQ/QuerySyntaxLinqDemo.cs
Expand Up @@ -2,26 +2,38 @@
using System.Diagnostics;
using System.Linq;
using OzCodeDemo.DemoClasses.Customers;
using OzCodeDemo.DemoClasses.University;

namespace OzCodeDemo._13.LINQ
{
[Export(typeof(IOzCodeDemo))]
[ExportMetadata("Demo", "QuerySyntaxLinq")]
public class QuerySyntaxLinqDemo : IOzCodeDemo
{
public void Start()
{
Debugger.Break();
public void Start()
{
Debugger.Break();

var states =
from customer in CustomersRepository.LoadCustomersFromDb()
let address = customer.Address
where !string.IsNullOrWhiteSpace(address.State)
group address by address.State
into stateGroup
select stateGroup.Key;
// Get all the students whose grade is above average within their department
var aboveAverageStudents =
StudentRepository.GetAllDepartments()
.Select(department =>
new
{
Department = department,
Average = department.Students.Average(student => student.Grade)
})
.SelectMany(arg =>
arg.Department.Students.Where(
student => student.Grade >= arg.Average));

Debug.Assert( states.Count() == 19 );
}
}

var aboveAverageStudents2 =
from department in StudentRepository.GetAllDepartments()
let departmentAverage = department.Students.Average(student => student.Grade)
from student in department.Students
where student.Grade >= departmentAverage
select student.Name;
}
}
}
11 changes: 11 additions & 0 deletions OzCodeDemo/DemoClasses/University/Department.cs
@@ -0,0 +1,11 @@
using System.Collections.Generic;

namespace OzCodeDemo.DemoClasses.University
{
class Department
{
public int Id { get; set; }
public string Name { get; set; }
public IEnumerable<Student> Students { get; set; }
}
}
10 changes: 10 additions & 0 deletions OzCodeDemo/DemoClasses/University/Student.cs
@@ -0,0 +1,10 @@
namespace OzCodeDemo.DemoClasses.University
{
class Student
{
public int Id { get; set; }
public string Name { get; set; }
public string Email { get; set; }
public double Grade { get; set; }
}
}
40 changes: 40 additions & 0 deletions OzCodeDemo/DemoClasses/University/StudentRepository.cs
@@ -0,0 +1,40 @@
using System.Collections.Generic;

namespace OzCodeDemo.DemoClasses.University
{
static class StudentRepository
{
public static IEnumerable<Department> GetAllDepartments()
{
return new[]
{
new Department {Id=1, Name="Math", Students = new [] {
new Student{Id = 1,Name = "Barbara Montgomery",Email= "in.faucibus.orci@sitametultricies.ca",Grade = 38},
new Student{Id = 2, Name = "Ivory Benjamin", Email= "non.dui.nec@ultricesmaurisipsum.co.uk", Grade = 81},
new Student{Id= 3, Name= "Chancellor Levine", Email= "ut@loremtristique.ca", Grade= 14},
new Student{Id= 4, Name= "Nicholas Barry", Email= "Vestibulum.accumsan.neque@egestasFuscealiquet.com", Grade= 21},
new Student{Id= 5, Name= "Carissa Ball", Email= "rutrum@necquamCurabitur.co.uk", Grade= 70}
}},

new Department {Id=2, Name="Physics", Students = new [] {
new Student{Id= 6, Name= "Rama Carney", Email= "Curabitur@nisl.ca", Grade= 46},
new Student{Id= 7, Name= "Nadine Rollins", Email= "nisi.Aenean@vitaediam.edu", Grade = 71},
new Student{Id= 8, Name= "Cameron Pollard", Email= "risus@adipiscingfringillaporttitor.org", Grade= 7},
new Student{Id= 9, Name= "Juliet Hopkins", Email= "viverra@Pellentesque.ca", Grade= 76},
new Student{Id= 10,Name= "Charissa Levine", Email= "ultricies.adipiscing@sempercursus.org", Grade= 27},
new Student{Id = 11, Name = "Brett Bryan", Email = "Quisque.varius.Nam@vulputateposuerevulputate.com", Grade = 59},
new Student{Id = 12, Name = "Zahir Short", Email = "ac.nulla@lectusjusto.ca", Grade = 55},
new Student{Id = 13, Name = "Kermit Rasmussen", Email = "pede.blandit@tellus.ca", Grade = 52},
new Student{Id = 14, Name = "Damon Lancaster", Email = "mauris.blandit.mattis@tempor.org", Grade = 16}}},

new Department {Id=3, Name="Biology", Students = new [] {
new Student{Id = 15, Name = "Channing Leblanc", Email = "blandit.viverra.Donec@adipiscingenim.edu", Grade = 92},
new Student{Id = 16, Name = "Kane Conway", Email = "amet.ultricies@erateget.com", Grade = 55},
new Student{Id = 17, Name = "Vernon Whitaker", Email = "purus@enimsitamet.ca", Grade = 85},
new Student{Id = 18, Name = "Cheryl Shaw", Email = "magna.a@Nunccommodoauctor.edu", Grade = 21},
new Student{Id = 19, Name = "Christen Pennington", Email = "quis.pede.Praesent@turpisvitaepurus.edu", Grade = 69},
new Student{Id = 20, Name = "Emily Hudson", Email = "Donec@conubia.ca", Grade = 99},
}}};
}
}
}
3 changes: 3 additions & 0 deletions OzCodeDemo/OzCodeDemo.csproj
Expand Up @@ -129,6 +129,9 @@
<Compile Include="DemoClasses\Customers\Address.cs" />
<Compile Include="DemoClasses\Customers\Customer.cs" />
<Compile Include="DemoClasses\Customers\CustomerRepository.cs" />
<Compile Include="DemoClasses\University\Department.cs" />
<Compile Include="DemoClasses\University\Student.cs" />
<Compile Include="DemoClasses\University\StudentRepository.cs" />
<Compile Include="DemoName.cs" />
<Compile Include="IOzCodeDemo.cs" />
<Compile Include="MainWindow.xaml.cs">
Expand Down

0 comments on commit dc4d5eb

Please sign in to comment.