@@ -23,6 +23,11 @@ public IReadOnlyCollection<Employee> ListEmployees()
2323 {
2424 return EmployeesCollection . Value ;
2525 }
26+
27+ public IReadOnlyDictionary < string , IReadOnlyCollection < Employee > > DictByTeamEmployees ( )
28+ {
29+ return EmployeesByTeam . Value ;
30+ }
2631
2732 protected override Task ExecuteAsync ( CancellationToken stoppingToken )
2833 {
@@ -50,26 +55,72 @@ private async Task LoadEmployees()
5055
5156 private static Employee [ ] Employees =
5257 [
53- new Employee { Id = "1" , FirstName = "Иван" , LastName = "Иванов" , Surname = "Иванович" , NotificationUserId = "66xpfgxex2da4p5fn8dx17pcnr" } ,
5458 new Employee
5559 {
56- Id = "any-ldap-id" , FirstName = "Петр" , LastName = "Петров" , Surname = "Петрович" , NotificationUserId = "67xpfgxex2da4p5fn8dx17pcnr"
60+ Id = "1" ,
61+ FirstName = "Иван" ,
62+ LastName = "Иванов" ,
63+ Surname = "Иванович" ,
64+ NotificationUserId = "66xpfgxex2da4p5fn8dx17pcnr" ,
65+ TeamId = "4" ,
66+ TeamName = "test4" ,
67+ Depth = - 1
68+ } ,
69+ new Employee
70+ {
71+ Id = "any-ldap-id" ,
72+ FirstName = "Петр" ,
73+ LastName = "Петров" ,
74+ Surname = "Петрович" ,
75+ NotificationUserId = "67xpfgxex2da4p5fn8dx17pcnr" ,
76+ TeamId = "4" ,
77+ TeamName = "test4" ,
78+ Depth = 0
5779 } ,
5880 new Employee
5981 {
60- Id = "int" , FirstName = "Сергей" , LastName = "Сергеев" , Surname = "Сергеевич" , NotificationUserId = "68xpfgxex2da4p5fn8dx17pcnr"
82+ Id = "int" ,
83+ FirstName = "Сергей" ,
84+ LastName = "Сергеев" ,
85+ Surname = "Сергеевич" ,
86+ NotificationUserId = "68xpfgxex2da4p5fn8dx17pcnr" ,
87+ TeamId = "3" ,
88+ TeamName = "test3" ,
89+ Depth = 2
6190 } ,
6291 new Employee
6392 {
64- Id = "guid" , FirstName = "Алексей" , LastName = "Алексеев" , Surname = "Алексеевич" , NotificationUserId = "69xpfgxex2da4p5fn8dx17pcnr"
93+ Id = "guid" ,
94+ FirstName = "Алексей" ,
95+ LastName = "Алексеев" ,
96+ Surname = "Алексеевич" ,
97+ NotificationUserId = "69xpfgxex2da4p5fn8dx17pcnr" ,
98+ TeamId = "2" ,
99+ TeamName = "test2" ,
100+ Depth = 1
65101 } ,
66102 new Employee
67103 {
68- Id = "default-user" , FirstName = "Дефолт" , LastName = "Дефолтов" , Surname = "Дефолтович" , NotificationUserId = "69xpfgxex2da4p5fn8dx17pcnr"
104+ Id = "default-user" ,
105+ FirstName = "Дефолт" ,
106+ LastName = "Дефолтов" ,
107+ Surname = "Дефолтович" ,
108+ NotificationUserId = "69xpfgxex2da4p5fn8dx17pcnr" ,
109+ TeamId = "1" ,
110+ TeamName = "test1" ,
111+ Depth = 1
69112 }
70113 ] ;
71114
72115 private static readonly Lazy < IReadOnlyCollection < Employee > > EmployeesCollection = new ( ( ) => Employees . AsReadOnly ( ) ) ;
73116
74117 private static readonly Lazy < IReadOnlyDictionary < string , Employee > > EmployeesDict = new ( ( ) => Employees . ToDictionary ( k => k . Id ) . AsReadOnly ( ) ) ;
118+
119+ private static readonly Lazy < IReadOnlyDictionary < string , IReadOnlyCollection < Employee > > > EmployeesByTeam = new ( ( ) =>
120+ Employees
121+ . GroupBy ( e => e . TeamId ?? string . Empty )
122+ . ToDictionary (
123+ g => g . Key , IReadOnlyCollection < Employee > ( g ) => g . ToArray ( ) . AsReadOnly ( )
124+ )
125+ . AsReadOnly ( ) ) ;
75126}
0 commit comments