// Delete item

        private Task <IOption <UserMessage> > Remove(IShoppingListItem item) =>
        ShoppingListHandler
        .Remove(CurrentAccount, foodstuffs.Get(item.FoodstuffId).Get().ToEnumerable())
        .Map(result => ProcessResult(result))
        .Execute(environment);
        // Cook recipe

        private Task <IOption <UserMessage> > Cook(IShoppingListRecipeItem item) =>
        ShoppingListHandler.Cook(CurrentAccount, item)
        .Map(r => ProcessResult(r))
        .Execute(environment);
        // Open add foodstuff dialog

        public Task <Unit> OpenAddFoodstuffDialog() =>
        Navigation
        .SelectFoodstuffDialog()
        .Bind(selected => ShoppingListHandler.Add(CurrentAccount, selected).Execute(environment))
        .Map(result => result.Success.Get())
        .Bind(shoppingList => UpdateState());
 private Task <IOption <UserMessage> > AddToShoppingList(IRecipe recipe)
 {
     return(ShoppingListHandler
            .AddToShoppingList(recipe, CurrentAccount, recipe.PersonCount)(environment)
            .Map(_ => UserMessages.Added().ToOption()));
 }