Exemplo n.º 1
0
void Ingridients::writeFood(QJsonObject& json, Food& food) const {
    PRINT_DEBUG("Writing food" << food.getName());

    json["name"] = QString::fromStdString(food.getName());
    json["mass"] = static_cast<qint64>(food.getMass());
    json["price"] = static_cast<qint64>(food.getPrice());
    json["measureType"] = static_cast<int>(food.getUnitType());
    json["fats"] = static_cast<qint64>(food.getFats());
    json["proteins"] = static_cast<qint64>(food.getProteins());
    json["carbohydrates"] = static_cast<qint64>(food.getCarbohydrates());
    json["calories"] = static_cast<qint64>(food.getCalories());
}
Exemplo n.º 2
0
vector<Food> *Store::generateRecipe(string nutrient, int amount) {
  vector<Food> *recipe = new vector<Food>;
  if (amount <= 0)
    throw "We have yet to find any food item that has negative " + nutrient;
  if (nutrient == "fat") {
    int total = 0;
    int count = 0;
    while (total < amount && count < 20) {
      Food r = randomize();
      if (r.getFat() + total < amount) {
        recipe->push_back(r);
        total += r.getFat();
      }
      count++;
    }
    return recipe;
  } else if (nutrient == "calories") {
    int total = 0;
    int count = 0;
    while (total < amount && count < 20) {
      Food r = randomize();
      if (r.getCalories() + total < amount) {
        recipe->push_back(r);
        total += r.getCalories();
      }
      count++;
    }
    return recipe;
  } else if (nutrient == "protein") {
    int total = 0;
    int count = 0;
    while (total < amount && count < 20) {
      Food r = randomize();
      if (r.getProtein() + total < amount) {
        recipe->push_back(r);
        total += r.getProtein();
      }
      count++;
    }
    return recipe;
  } else if (nutrient == "fiber") {
    int total = 0;
    int count = 0;
    while (total < amount && count < 20) {
      Food r = randomize();
      if (r.getFiber() + total < amount) {
        recipe->push_back(r);
        total += r.getFiber();
      }
      count++;
    }
    return recipe;
  } else if (nutrient == "sugar") {
    int total = 0;
    int count = 0;
    while (total < amount && count < 20) {
      Food r = randomize();
      if (r.getSugar() + total < amount) {
        recipe->push_back(r);
        total += r.getSugar();
      }
      count++;
    }
    return recipe;
  } else if (nutrient == "carbohydrates") {
    int total = 0;
    int count = 0;
    while (total < amount && count < 20) {
      Food r = randomize();
      if (r.getCarbohydrates() + total < amount) {
        recipe->push_back(r);
        total += r.getCarbohydrates();
      }
      count++;
    }
    return recipe;
  }
  throw string(
      "Sadly, we do not have enough information about your nutrient and "
      "therefore can not generate a recipe");
  return nullptr;
}