Skip to content

Commit

Permalink
Home Chef: Add more tags and exclude lunch
Browse files Browse the repository at this point in the history
  • Loading branch information
evanlihou committed Aug 17, 2023
1 parent 4522bde commit 38f0428
Show file tree
Hide file tree
Showing 5 changed files with 22 additions and 9 deletions.
1 change: 1 addition & 0 deletions FoodPicker.Infrastructure/FoodPicker.Infrastructure.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@

<ItemGroup>
<PackageReference Include="AngleSharp" Version="1.0.4" />
<PackageReference Include="Humanizer.Core" Version="2.14.1" />
<PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="6.0.21" />
<PackageReference Include="TimeZoneConverter" Version="6.1.0" />
</ItemGroup>
Expand Down
15 changes: 9 additions & 6 deletions FoodPicker.Infrastructure/Services/HomeChefMealService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
using System.Threading.Tasks;
using FoodPicker.Infrastructure.Data;
using FoodPicker.Infrastructure.Models;
using Humanizer;
using Microsoft.Extensions.Configuration;
using TimeZoneConverter;

Expand Down Expand Up @@ -61,31 +62,33 @@ public override async Task<List<Meal>> GetMealsForMealWeek(MealWeek week)
var meals = new List<Meal>();
foreach (var mealElement in mealResponse.RootElement.GetProperty("meals").EnumerateArray())
{
if (new [] { "extras", "bundle-and-save" }.Contains(mealElement.GetProperty("menu_category")
if (new [] { "extras", "bundle-and-save", "lunch" }.Contains(mealElement.GetProperty("menu_category")
.GetString()))
{
continue;
}
var mealId = mealElement.GetProperty("id").GetString() ?? "";
var description = mealElement.GetProperty("subtitle").GetString();
if (mealOptions.ContainsKey(mealId))
if (mealOptions.TryGetValue(mealId, out var option))
{
var mealOptionGroup = mealOptions[mealId];
description += $"\n{mealOptionGroup.GetProperty("title").GetString()}";
foreach (var mealOption in mealOptionGroup.GetProperty("meal_options").EnumerateArray())
description += $"\n{option.GetProperty("title").GetString()}";
foreach (var mealOption in option.GetProperty("meal_options").EnumerateArray())
{
description += $"\n - {mealOption.GetProperty("display_name").GetString()}";
}
}

var tags = new List<string> { mealElement.GetProperty("primary_label").GetString() };
tags.AddRange(mealElement.GetProperty("tags").EnumerateArray().Select(t => t.GetString().Transform(To.TitleCase)));

var meal = new Meal()
{
MealWeekId = week.Id,
Name = mealElement.GetProperty("title").GetString(),
Description = description,
ImageUrl = mealElement.GetProperty("photo").GetString(),
Url = mealElement.GetProperty("url").GetString(),
Tags = mealElement.GetProperty("primary_label").GetString()
Tags = string.Join(';', tags.Where(t => !string.IsNullOrEmpty(t)))
};

meals.Add(meal);
Expand Down
5 changes: 4 additions & 1 deletion FoodPicker.Web/Views/Week/CreateOrEdit.cshtml
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,10 @@
<p class="card-text" style="white-space: break-spaces;">@meal.Description</p>
@if (!string.IsNullOrEmpty(meal.Tags))
{
<span class="badge rounded-pill bg-primary">@meal.Tags</span>
foreach (var tag in meal.Tags.Split(';'))
{
<span class="badge rounded-pill bg-primary">@tag</span>
}
}
</div>
</div>
Expand Down
5 changes: 4 additions & 1 deletion FoodPicker.Web/Views/Week/Vote.cshtml
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,10 @@
}
@if (!string.IsNullOrEmpty(meal.Tags))
{
<span class="badge rounded-pill bg-primary">@meal.Tags</span>
foreach (var tag in meal.Tags.Split(';'))
{
<span class="badge rounded-pill bg-primary">@tag</span>
}
}
@if (Model.PreviousRatings.Contains(meal.Id))
{
Expand Down
5 changes: 4 additions & 1 deletion FoodPicker.Web/Views/Week/_MealDetailsModal.cshtml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,10 @@
}
@if (!string.IsNullOrEmpty(Model.Meal.Tags))
{
<span class="badge rounded-pill bg-primary">@Model.Meal.Tags</span>
foreach (var tag in Model.Meal.Tags.Split(';'))
{
<span class="badge rounded-pill bg-primary">@tag</span>
}
}

@if (Model.PreviousRatings.Any())
Expand Down

0 comments on commit 38f0428

Please sign in to comment.