i will have later a closer look on it.
the group finding we can do with group by:
the sorting on multiple columns we can do with LINQ