На фронте мне нужно отобразить информацию о выборе меню клиентов. Чтобы сохранить проблемы отделенными (то есть, выбор клиентов и варианты меню), я реализовал две отдельные конечные точки и обрабатываю интеграцию данных на фронте. Проблемы нет. Я хочу поддерживать чистое разделение проблем, но в некоторых случаях мне нужны комбинированные данные (например, отображение выбора клиентов с подробностями меню). Я не уверен, как сделать это правильно - так что вот мой пример < /p>
Код: Выделить всё
public class Customer
{
public long Id { get; set; }
public IList MenuSelection { get; set; } = [];
}
Код: Выделить всё
public class MenuOptions
{
public long Id { get; set; }
public string MenuName { get; set; } = string.Empty;
public string Recipe { get; set; } = string.Empty;
}
public class MenuOrderService(List customers)
{
public Dictionary OrderMenusInKitchen()
{
var allOrderIds = customers
.SelectMany(c => c.MenuSelection)
.ToList();
// Count how many times each MenuOption.Id was ordered
var orderCountsById = allOrderIds
.GroupBy(id => id)
.ToDictionary(group => group.Key, group => group.Count());
// return Dictionary -> A Dictionary with the MenuName and a Count
}
}
< /code>
Вопрос в том, как это сделать, используя чистый код, например, разделение проблем? Я хочу непосредственно не присоединяться к таблицам клиентов и менупций напрямую, так как моя цель состоит в том, чтобы сначала суммировать заказы клиентов, а затем отобразить эти резюме с соответствующими значениями Menuname, используя меню. Имеет ли смысл хранить варианты меню в качестве переменных на уровне класса, чтобы избежать повторных вызовов базы данных? (Может быть, есть где -то цикл над всеми официантами) Спасибо за ваше руководство.
Подробнее здесь: https://stackoverflow.com/questions/796 ... -joining-t