You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
103 lines
2.5 KiB
103 lines
2.5 KiB
using ShoopNCook.Views;
|
|
using System.Windows.Input;
|
|
|
|
namespace ShoopNCook.Pages;
|
|
|
|
public partial class RecipePage : ContentPage
|
|
{
|
|
|
|
private uint note;
|
|
private bool isFavorite;
|
|
|
|
public ICommand StarCommand => new Command<string>(count =>
|
|
{
|
|
SetNote(uint.Parse(count));
|
|
});
|
|
|
|
public RecipePage() :
|
|
this("Recipe Sample", 32, 250,
|
|
true, 2, 0,
|
|
new List<IngredientView> {
|
|
new IngredientView("Chocolate", 25, "g"),
|
|
new IngredientView("Flour", 250, "g"),
|
|
new IngredientView("Sugar", 0.5F, "kg")
|
|
},
|
|
new List<string> { "This is the first preparation step", "add to furnace and wait", "Enjoy !" }
|
|
)
|
|
{}
|
|
|
|
public RecipePage(
|
|
string name,
|
|
uint cookTime,
|
|
uint energy,
|
|
bool isFavorite,
|
|
uint nbPers,
|
|
uint note,
|
|
List<IngredientView> ingredients,
|
|
List<string> steps
|
|
)
|
|
{
|
|
InitializeComponent();
|
|
Counter.Count = nbPers;
|
|
SetFavorite(isFavorite);
|
|
SetNote(note);
|
|
|
|
CookTime.Text = cookTime.ToString();
|
|
Energy.Text = energy.ToString();
|
|
RecipeName.Text = name;
|
|
|
|
foreach (IngredientView iv in ingredients)
|
|
IngredientList.Add(iv);
|
|
|
|
var styles = Application.Current.Resources.MergedDictionaries.ElementAt(1);
|
|
|
|
int count = 0;
|
|
foreach (string step in steps) {
|
|
Label label = new Label();
|
|
label.Style = (Style)styles["Small"];
|
|
label.Text = "Step " + ++count + ": " + step;
|
|
StepList.Add(label);
|
|
}
|
|
}
|
|
|
|
private void SetNote(uint note)
|
|
{
|
|
this.note = note;
|
|
int i = 1;
|
|
foreach (ImageButton img in Stars.Children)
|
|
{
|
|
if (i <= note)
|
|
{
|
|
img.Source = ImageSource.FromFile("star_full.svg");
|
|
i++;
|
|
}
|
|
else
|
|
{
|
|
img.Source = ImageSource.FromFile("star_empty.svg");
|
|
}
|
|
}
|
|
}
|
|
|
|
private void OnFavorite(object o, EventArgs e)
|
|
{
|
|
SetFavorite(!isFavorite);
|
|
}
|
|
|
|
private void SetFavorite(bool isFavorite)
|
|
{
|
|
this.isFavorite = isFavorite;
|
|
if (isFavorite)
|
|
{
|
|
Favorite.Source = ImageSource.FromFile("hearth_on.svg");
|
|
}
|
|
else
|
|
{
|
|
Favorite.Source = ImageSource.FromFile("hearth_off.svg");
|
|
}
|
|
}
|
|
private async void OnBackButtonClicked(object sender, EventArgs e)
|
|
{
|
|
await Navigation.PopAsync();
|
|
}
|
|
|
|
} |