Как поменять группируемое свойство?
На вход я принимаю список id
подразделений, по которым я получаю список подразделений и их субъектов. Код выглядит достаточно просто:
private async Task<IEnumerable<string>> GetDepartmentsIdsWithNested()
{
var parentsDepartments = await _departmentClient
.GetByParentsIds( _parameters.DepartmentIDs )
.Unwrap();
var ids = parentsDepartments
.SelectMany( x => new[] { x.Id, x.ParentDepartment.Id } )
.Distinct();
return ids;
}
private async Task<StaffDataSet> PrepareDataSet()
{
var dataSet = new StaffDataSet();
var departmentsIds = _parameters.ShowSubjectsOfNestedDepartments
? await GetDepartmentsIdsWithNested()
: _parameters.DepartmentIDs;
var groupedSubjects = ( await _subjectClient
.GetByDepartmentsIds( departmentsIds )
.Unwrap() )
.GroupBy( subject => subject.Department.Title );
foreach ( var group in groupedSubjects )
foreach ( var subject in group )
{
dataSet.Staff.AddStaffRow(
Title: subject.GetSubjectFullName(),
AccessGroup: GetAccessGroupFormattedString( subject.AccessGroups ),
TabNumber: subject.Data.FromJson<SubjectData>()?.PersonnelNumber,
Identifier: GetIdentifierFormattedString( subject.Identifiers ),
Department: group.Key );
}
return dataSet;
}
GroupedSubjects
- это субъекты, которые были сгруппированы по title
департамента, но хотелось бы сгруппировать по пути.
Что я имею ввиду: допустим, у меня есть подразделение "Home", а у него еще два "Class1", "Class2".
Субъекты сгруппируются по Home
, Class1
, Class2
, а я хочу вот так: Home
, Home/Class1
, Home/Class2
.