// Initialize public override Task <Unit> InitializeAsync() => ShoppingListRepository.GetWithItems(CurrentAccount) .Map(newShoppingList => UpdateShoppingList(newShoppingList)) .Bind(newShoppingList => RecipeRepository.GetDetails(newShoppingList.RecipeItems.Select(i => i.RecipeId))) .Map(details => recipeDetails = details.ToImmutableDictionary(d => d.Recipe.Id)) .Map(_ => Unit.Value) .Execute(environment);