#c# #asp.net-web-api #split
Вопрос:
В моем проекте(Angular и .net) есть функция загрузки подробной информации о курсах, которые посещает конкретный студент.Как только отчет будет загружен,отчет будет виден, как показано в таблице ниже, на листе Excel.
В моем бэкэнд-коде(веб-api) в классе поставщика метод relavant для этой загрузки выглядит следующим образом.
public async Task<students> GetReport(string sId)
{
var response = await dbAccess.GetCoursesForReport(sId);
return studentReportMapper.Map(response);
}
то, что я получаю в ответ, — это значения в приведенной выше таблице.
что я хочу знать, так это как я могу изменить описанный выше метод,чтобы разделить курсы в зависимости от пройденного уровня(level1,level2, level3).Потому что я хочу показать детали на отдельных листах Excel в зависимости от уровней,которые они прошли, при загрузке отчета.(В приведенном выше случае на трех разных листах с именами level1,level2 и level3), как и сейчас, отчет загружается на одном листе.
Комментарии:
1. Можете ли вы перефразировать этот вопрос? Я не совсем понимаю, о чем ты спрашиваешь? Вы можете передать параметр для фильтрации по пройденному уровню. Или вы можете вернуть список учащихся, сгруппированных по пройденным уровням. Также можете ли вы предоставить модель для
students
?2. @Greg Я уже реализовал эту модель. отчет загружается в виде таблицы выше на одном листе Excel. Функция работает правильно. Что я хочу сделать, так это изменить функцию, как упоминалось выше, разделив ее на завершенный уровень. (Потому что,если студент просто нажмет кнопку загрузки,он будет загружен, как указано в таблице выше, и если пользователь установит флажок для разделенной версии отчета, то отчет должен быть разделен на 3 листа в зависимости от каждого уровня)
3. Группа на завершенном уровне?
4. что-то вроде этого dotnetfiddle.net/XZWphf ?
5. @рисса dotnetfiddle.net/AVfnQO упростил некоторые вещи
Ответ №1:
Вы можете легко сделать это с помощью LINQ
var levelOne = result.Where(x => x.Level == 1).ToList();
var levelTwo = result.Where(x => x.Level == 2).ToList();
var levelThree = result.Where(x => x.Level == 3).ToList();
Теперь вам нужно будет построить свой ответ с помощью списков, и это все.