sharee.bike-App/TINKLib/ViewModel/Info/BikeInfo/BikeInfoCarouselViewModel.cs
2021-08-28 10:04:10 +02:00

153 lines
7.6 KiB
C#

using System;
using System.Collections.Generic;
using TINK.View;
using Xamarin.Forms;
namespace TINK.ViewModel.Info.BikeInfo
{
public class BikeInfoViewModel
{
/// <summary>
/// Reference on view service to show modal notifications and to perform navigation.
/// </summary>
private readonly IViewService m_oViewService;
/// <param name="p_oViewService">Interface to actuate methodes on GUI.</param>
public BikeInfoViewModel(Func<string, ImageSource> imageSourceFunc, IViewService p_oViewService)
{
m_oViewService = p_oViewService
?? throw new ArgumentException("Can not instantiate bike info page view model- object. No view available.");
CarouselItems = new List<CourouselPageItemViewModel>();
CarouselItems.Add(
new CourouselPageItemViewModel(
"Anleitung Benutzung Lastenräder",
$"Diese Anleitung wird einmalig nach der Anmeldung angezeigt.\r\nZum Blättern auf die nächste Seite bitte nach links wischen.\r\nNach Anzeige aller Seiten kann die Anleitung geschlossen werden.",
CarouselItems.Count + 1,
() => CarouselItems.Count,
() => CloseAction()));
CarouselItems.Add(
new CourouselPageItemViewModel(
"Zweirädriges TINK Rad: Hochklappen des Fahrradständers (1/3)",
"So abgestellt hat das zweirädrige Transportrad einen sicheren Stand.",
CarouselItems.Count + 1,
() => CarouselItems.Count,
() => CloseAction(),
imageSourceFunc("trike_stand1_image.4HJ5PY_679_382.png")));
CarouselItems.Add(
new CourouselPageItemViewModel(
"Zweirädriges TINK Rad: Hochklappen des Fahrradständers (2/3)",
"Zum Weiterfahren das Transportrad nach vorne bewegen, bis kein Gewicht mehr auf dem Fahrradständer liegt.",
CarouselItems.Count + 1,
() => CarouselItems.Count,
() => CloseAction(),
imageSourceFunc("trike_stand2_image.RIX2PY_679_382.png")));
CarouselItems.Add(
new CourouselPageItemViewModel(
"Zweirädriges TINK Rad: Hochklappen des Fahrradständers (3/3).",
"Den Fahrradständer mit dem Fuß nach oben drücken, bis er hörbar am Magneten (Pfeil) einrastet. So fällt er unterwegs nicht herunter.",
CarouselItems.Count + 1,
() => CarouselItems.Count,
() => CloseAction(),
imageSourceFunc("trike_stand3_image.FDR7PY_679_382.png")));
CarouselItems.Add(
new CourouselPageItemViewModel(
"Dreirädriges TINK Rad: Lösen und Aktivieren der Feststellbremse (1/3).",
"Die Feststellbremse ist der graue Stift, der aus der Bremse herausragt. Ist sie aktiv, kann das Dreirad nicht wegrollen.",
CarouselItems.Count + 1,
() => CarouselItems.Count,
() => CloseAction(),
imageSourceFunc("trike_brake1_image.HZ17PY_678_382.png")));
CarouselItems.Add(
new CourouselPageItemViewModel(
"Dreirädriges TINK Rad: Lösen und Aktivieren der Feststellbremse (2/3).",
"Lösen der Feststellbremse: Die Bremse vollständig anziehen, bis der Stift wieder auf seine ursprüngliche Position herausspringt.",
CarouselItems.Count + 1,
() => CarouselItems.Count,
() => CloseAction(),
imageSourceFunc("trike_brake2_image.1YBAQY_679_382.png")));
CarouselItems.Add(
new CourouselPageItemViewModel(
"Dreirädriges TINK Rad: Lösen und Aktivieren der Feststellbremse (3/3).",
"Aktivieren der Feststellbremse: Die Bremse vollständig anziehen und den Stift hineindrücken.",
CarouselItems.Count + 1,
() => CarouselItems.Count,
() => CloseAction(),
imageSourceFunc("trike_brake3_image.FJM2PY_679_382.png")));
CarouselItems.Add(
new CourouselPageItemViewModel(
"Höhenregulierung des Sattels (1/3).",
"Hier im Bild ist der Hebel zum Einstellen des Sattels zu sehen.",
CarouselItems.Count + 1,
() => CarouselItems.Count,
() => CloseAction(),
imageSourceFunc("seat1_image.ZQ65PY_680_382.png")));
CarouselItems.Add(
new CourouselPageItemViewModel(
"Höhenregulierung des Sattels (2/3).",
"Durch Drücken des Hebels ist die Sattelhöhe frei verstellbar. Vergleichbar mit einem Bürostuhl bewegt sich der Sattel automatisch nach oben.",
CarouselItems.Count + 1,
() => CarouselItems.Count,
() => CloseAction(),
imageSourceFunc("seat2_image.QQZCQY_679_382.png")));
CarouselItems.Add(
new CourouselPageItemViewModel(
"Höhenregulierung des Sattels (3/3).",
"Durch kräftiges Herunterdrücken des Sattels (und gleichzeitigem Betätigen des Hebels) kann der Sattel nach unten verstellt werden. Tipp: Eventuell draufsetzen und dann den Hebel betätigen, um den Sattel nach unten zu drücken.",
CarouselItems.Count + 1,
() => CarouselItems.Count,
() => CloseAction(),
imageSourceFunc("seat3_image.NQ5FQY_679_382.png")));
CarouselItems.Add(
new CourouselPageItemViewModel(
"Verbinden des Kindergurts (1/3).",
"Der Gurt besteht aus drei Einzelteilen. Zunächst die oberen beiden Einzelstücke nehmen.",
CarouselItems.Count + 1,
() => CarouselItems.Count,
() => CloseAction(),
imageSourceFunc("belt1_image.4XWCQY_679_382.png")));
CarouselItems.Add(
new CourouselPageItemViewModel(
"Verbinden des Kindergurts (2/3).",
"Die beiden Einzelstücke zusammenfügen.",
CarouselItems.Count + 1,
() => CarouselItems.Count,
() => CloseAction(),
imageSourceFunc("belt2_image.X3F1PY_679_382.png")));
CarouselItems.Add(
new CourouselPageItemViewModel(
"Verbinden des Kindergurts (3/3).",
"Das obere und untere Teilstück verbinden (bis zum Einrasten). Lösen der Teilstücke durch Drücken auf den roten Knopf.",
CarouselItems.Count + 1,
() => CarouselItems.Count,
() => CloseAction(),
imageSourceFunc("belt3_image.DYOXPY_679_382.png")));
}
/// <summary> Gets the carousel page items</summary>
public IList<CourouselPageItemViewModel> CarouselItems { get; }
/// <summary> Command object to bind close button to view model. </summary>
#if USEFLYOUT
private Action CloseAction
=> () => m_oViewService.ShowPage(ViewTypes.MapPage);
#else
private Action CloseAction
=> async () => await m_oViewService.ShowPage("//MapPage");
#endif
}
}