private async Task <string> GetRawOrderLine(Order order, string rawOrderLine = "", string lastDishName = "", int lastDishCount = 1) { List <OrderDish> orderedDishes = await _orderDishRepository.GetOrderDishesByOrderID(order.Id); foreach (OrderDish orderDish in orderedDishes) { if (lastDishName == orderDish.dish.Name) { lastDishCount++; } else { if (lastDishCount > 1) { rawOrderLine += "(x" + lastDishCount + ")"; lastDishCount = 1; rawOrderLine += rawOrderLine == "" ? orderDish.dish.Name : ", " + orderDish.dish.Name; } else { rawOrderLine += rawOrderLine == "" ? orderDish.dish.Name : ", " + orderDish.dish.Name; } } lastDishName = orderDish.dish.Name; if ((orderedDishes.IndexOf(orderDish) == orderedDishes.Count - 1) && (lastDishCount > 1)) { rawOrderLine += "(x" + lastDishCount + ")"; lastDishCount = 1; } } return(rawOrderLine); }