Version 3.0.381

This commit is contained in:
Anja 2024-04-09 12:53:23 +02:00
parent f963c0a219
commit 3a363acf3a
1525 changed files with 60589 additions and 125098 deletions

View file

@ -0,0 +1,184 @@
<?xml version="1.0" encoding="UTF-8"?>
<ContentView xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:conv="clr-namespace:ShareeBike.View;assembly=SharedBusinessLogic"
xmlns:sharedGui="clr-namespace:SharedGui.View.Bike.RentalProcess"
xmlns:resources="clr-namespace:ShareeBike.MultilingualResources;assembly=SharedBusinessLogic"
xmlns:rental_process="clr-namespace:ShareeBike.ViewModel.Bikes;assembly=SharedBusinessLogic"
x:Class="SharedGui.View.Bike.RentalProcess.RentalProcess1StepBar">
<ContentView.Resources>
<conv:StringNotNullOrEmptyToVisibleConverter x:Key="StringNotNullOrEmpty_Converter"/>
<x:String x:Key="check">&#xf00c;</x:String>
<x:String x:Key="xmark">&#xf00d;</x:String>
</ContentView.Resources>
<ContentView.Content>
<Grid>
<!-- Progress bar finished-->
<Grid
Grid.Row="0"
IsVisible="False">
<Grid.Triggers>
<MultiTrigger TargetType="Grid">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.StepIndex}" Value="1" />
<BindingCondition Binding="{Binding RentalProcess.Result}" Value="{x:Static rental_process:CurrentStepStatus.Succeeded}" />
</MultiTrigger.Conditions>
<Setter Property="IsVisible" Value="True" />
</MultiTrigger>
</Grid.Triggers>
<sharedGui:RentalProcessStepBarFinished/>
</Grid>
<!-- 1 Step Progress bar -->
<Grid
Grid.Row="0"
IsVisible="True"
RowDefinitions="50,Auto,10"
RowSpacing="0"
ColumnDefinitions="*">
<Grid.Triggers>
<MultiTrigger TargetType="Grid">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.StepIndex}" Value="1" />
<BindingCondition Binding="{Binding RentalProcess.Result}" Value="{x:Static rental_process:CurrentStepStatus.Succeeded}" />
</MultiTrigger.Conditions>
<Setter Property="IsVisible" Value="False" />
</MultiTrigger>
</Grid.Triggers>
<!--1st step-->
<Frame
Grid.Column="0"
Grid.Row="0"
Grid.RowSpan="2"
BackgroundColor="{DynamicResource process-step-upcoming}"
Padding="14,2,10,2"
HasShadow="False">
<Frame.Triggers>
<MultiTrigger TargetType="Frame">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.StepIndex}" Value="1" />
</MultiTrigger.Conditions>
<Setter Property="BackgroundColor" Value="{DynamicResource process-step-active}" />
</MultiTrigger>
<MultiTrigger TargetType="Frame">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.StepIndex}" Value="1" />
<BindingCondition Binding="{Binding RentalProcess.Result}" Value="{x:Static rental_process:CurrentStepStatus.Failed}" />
</MultiTrigger.Conditions>
<Setter Property="BackgroundColor" Value="{DynamicResource process-step-failed}" />
</MultiTrigger>
</Frame.Triggers>
<Grid
ColumnDefinitions="*,Auto"
RowDefinitions="Auto"
HorizontalOptions="CenterAndExpand"
VerticalOptions="CenterAndExpand">
<Label
Grid.Column="0"
Text="{x:Static resources:AppResources.MarkingRentalProcessOpenLockFirstStep}"
FontSize="17"
FontAttributes="Bold"
LineBreakMode="WordWrap"
MaxLines="2"
TextColor="White">
<Label.Triggers>
<MultiTrigger TargetType="Label">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.StepIndex}" Value="1" />
<BindingCondition Binding="{Binding RentalProcess.Result}" Value="{x:Static rental_process:CurrentStepStatus.Succeeded}" />
</MultiTrigger.Conditions>
<Setter Property="Text" Value="{x:Static resources:AppResources.MarkingRentalProcessOpenLockFirstStepFinished}"/>
</MultiTrigger>
</Label.Triggers>
</Label>
<Image
Grid.Column="1"
Grid.Row="0"
IsVisible="False">
<Image.Triggers>
<DataTrigger TargetType="Image" Binding="{Binding RentalProcess.StepIndex}" Value="1">
<Setter Property="IsVisible" Value="True" />
</DataTrigger>
<MultiTrigger TargetType="Image">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.StepIndex}" Value="1" />
<BindingCondition Binding="{Binding RentalProcess.Result}" Value="{x:Static rental_process:CurrentStepStatus.Succeeded}" />
</MultiTrigger.Conditions>
<Setter Property="Source">
<Setter.Value>
<FontImageSource
Glyph="{StaticResource check}"
FontFamily="FA-S"
Size="Default"
Color="White"/>
</Setter.Value>
</Setter>
</MultiTrigger>
<MultiTrigger TargetType="Image">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.StepIndex}" Value="1" />
<BindingCondition Binding="{Binding RentalProcess.Result}" Value="{x:Static rental_process:CurrentStepStatus.Failed}" />
</MultiTrigger.Conditions>
<Setter Property="Source">
<Setter.Value>
<FontImageSource
Glyph="{StaticResource xmark}"
FontFamily="FA-S"
Size="Default"
Color="White"/>
</Setter.Value>
</Setter>
</MultiTrigger>
</Image.Triggers>
</Image>
</Grid>
</Frame>
<Polygon
Grid.Column="0"
Grid.Row="2"
Points="0,0 20,0 10,10"
IsVisible="False"
HorizontalOptions="Center">
<Polygon.Triggers>
<MultiTrigger TargetType="Polygon">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.StepIndex}" Value="1" />
<BindingCondition Binding="{Binding RentalProcess.Result}" Value="{x:Static rental_process:CurrentStepStatus.None}"/>
</MultiTrigger.Conditions>
<Setter Property="IsVisible" Value="True" />
<Setter Property="Fill" Value="{DynamicResource process-step-active}" />
</MultiTrigger>
<MultiTrigger TargetType="Polygon">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.StepIndex}" Value="1" />
<BindingCondition Binding="{Binding RentalProcess.Result}" Value="{x:Static rental_process:CurrentStepStatus.Failed}"/>
</MultiTrigger.Conditions>
<Setter Property="IsVisible" Value="True" />
<Setter Property="Fill" Value="{DynamicResource process-step-failed}" />
</MultiTrigger>
<MultiTrigger TargetType="Polygon">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.StepIndex}" Value="1" />
<BindingCondition Binding="{Binding RentalProcess.Result}" Value="{x:Static rental_process:CurrentStepStatus.Succeeded}"/>
</MultiTrigger.Conditions>
<Setter Property="IsVisible" Value="False" />
</MultiTrigger>
</Polygon.Triggers>
</Polygon>
</Grid>
</Grid>
</ContentView.Content>
</ContentView>

View file

@ -0,0 +1,20 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Xamarin.Forms;
using Xamarin.Forms.Xaml;
namespace SharedGui.View.Bike.RentalProcess
{
[XamlCompilation(XamlCompilationOptions.Compile)]
public partial class RentalProcess1StepBar : ContentView
{
public RentalProcess1StepBar ()
{
InitializeComponent ();
}
}
}

View file

@ -0,0 +1,460 @@
<?xml version="1.0" encoding="UTF-8"?>
<ContentView xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:conv="clr-namespace:ShareeBike.View;assembly=SharedBusinessLogic"
xmlns:sharedGui="clr-namespace:SharedGui.View.Bike.RentalProcess"
xmlns:resources="clr-namespace:ShareeBike.MultilingualResources;assembly=SharedBusinessLogic"
xmlns:rental_process="clr-namespace:ShareeBike.ViewModel.Bikes;assembly=SharedBusinessLogic"
x:Class="SharedGui.View.Bike.RentalProcess.RentalProcess2StepsBar">
<ContentView.Resources>
<conv:StringNotNullOrEmptyToVisibleConverter x:Key="StringNotNullOrEmpty_Converter"/>
<x:String x:Key="check">&#xf00c;</x:String>
<x:String x:Key="xmark">&#xf00d;</x:String>
</ContentView.Resources>
<ContentView.Content>
<Grid>
<!-- Progress bar finished-->
<Grid
Grid.Row="0"
IsVisible="False">
<Grid.Triggers>
<MultiTrigger TargetType="Grid">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.StepIndex}" Value="2" />
<BindingCondition Binding="{Binding RentalProcess.Result}" Value="{x:Static rental_process:CurrentStepStatus.Succeeded}" />
</MultiTrigger.Conditions>
<Setter Property="IsVisible" Value="True" />
</MultiTrigger>
</Grid.Triggers>
<sharedGui:RentalProcessStepBarFinished/>
</Grid>
<!-- 2 Steps Progress bar -->
<Grid
Grid.Row="0"
IsVisible="True"
RowDefinitions="50,Auto,10"
RowSpacing="0"
ColumnDefinitions="*,*">
<Grid.Triggers>
<MultiTrigger TargetType="Grid">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.StepIndex}" Value="2" />
<BindingCondition Binding="{Binding RentalProcess.Result}" Value="{x:Static rental_process:CurrentStepStatus.Succeeded}" />
</MultiTrigger.Conditions>
<Setter Property="IsVisible" Value="False" />
</MultiTrigger>
</Grid.Triggers>
<!--1st step-->
<Frame
Grid.Column="0"
Grid.Row="0"
Grid.RowSpan="2"
BackgroundColor="{DynamicResource process-step-upcoming}"
Padding="14,2,10,2"
HasShadow="False">
<Frame.Triggers>
<MultiTrigger TargetType="Frame">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.StepIndex}" Value="1" />
</MultiTrigger.Conditions>
<Setter Property="BackgroundColor" Value="{DynamicResource process-step-active}" />
</MultiTrigger>
<MultiTrigger TargetType="Frame">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.StepIndex}" Value="1" />
<BindingCondition Binding="{Binding RentalProcess.Result}" Value="{x:Static rental_process:CurrentStepStatus.Succeeded}" />
</MultiTrigger.Conditions>
<Setter Property="BackgroundColor" Value="{DynamicResource process-step-succeeded}" />
</MultiTrigger>
<MultiTrigger TargetType="Frame">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.StepIndex}" Value="2" />
</MultiTrigger.Conditions>
<Setter Property="BackgroundColor" Value="{DynamicResource process-step-succeeded}" />
</MultiTrigger>
<MultiTrigger TargetType="Frame">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.StepIndex}" Value="1" />
<BindingCondition Binding="{Binding RentalProcess.Result}" Value="{x:Static rental_process:CurrentStepStatus.Failed}" />
</MultiTrigger.Conditions>
<Setter Property="BackgroundColor" Value="{DynamicResource process-step-failed}" />
</MultiTrigger>
</Frame.Triggers>
<Grid
ColumnDefinitions="*,Auto"
RowDefinitions="Auto"
HorizontalOptions="CenterAndExpand"
VerticalOptions="CenterAndExpand">
<Label
Grid.Column="0"
FontSize="17"
FontAttributes="Bold"
LineBreakMode="WordWrap"
MaxLines="2"
TextColor="White">
<Label.Triggers>
<MultiTrigger TargetType="Label">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.State}" Value="{x:Static rental_process:CurrentRentalProcess.StartReservationOrRental}"/>
</MultiTrigger.Conditions>
<Setter Property="Text" Value="{x:Static resources:AppResources.MarkingRentalProcessRequestBikeFirstStep}"/>
</MultiTrigger>
<MultiTrigger TargetType="Label">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.State}" Value="{x:Static rental_process:CurrentRentalProcess.StartReservationOrRental}"/>
<BindingCondition Binding="{Binding RentalProcess.StepIndex}" Value="1" />
<BindingCondition Binding="{Binding RentalProcess.Result}" Value="{x:Static rental_process:CurrentStepStatus.Succeeded}" />
</MultiTrigger.Conditions>
<Setter Property="Text" Value="{x:Static resources:AppResources.MarkingRentalProcessRequestBikeFirstStepFinished}"/>
</MultiTrigger>
<MultiTrigger TargetType="Label">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.State}" Value="{x:Static rental_process:CurrentRentalProcess.StartReservationOrRental}"/>
<BindingCondition Binding="{Binding RentalProcess.StepIndex}" Value="2" />
</MultiTrigger.Conditions>
<Setter Property="Text" Value="{x:Static resources:AppResources.MarkingRentalProcessRequestBikeFirstStepFinished}"/>
</MultiTrigger>
<MultiTrigger TargetType="Label">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.State}" Value="{x:Static rental_process:CurrentRentalProcess.CloseLock}"/>
</MultiTrigger.Conditions>
<Setter Property="Text" Value="{x:Static resources:AppResources.MarkingRentalProcessCloseLockFirstStep}"/>
</MultiTrigger>
<MultiTrigger TargetType="Label">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.State}" Value="{x:Static rental_process:CurrentRentalProcess.CloseLock}"/>
<BindingCondition Binding="{Binding RentalProcess.StepIndex}" Value="1" />
<BindingCondition Binding="{Binding RentalProcess.Result}" Value="{x:Static rental_process:CurrentStepStatus.Succeeded}" />
</MultiTrigger.Conditions>
<Setter Property="Text" Value="{x:Static resources:AppResources.MarkingRentalProcessCloseLockFirstStepFinished}"/>
</MultiTrigger>
<MultiTrigger TargetType="Label">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.State}" Value="{x:Static rental_process:CurrentRentalProcess.CloseLock}"/>
<BindingCondition Binding="{Binding RentalProcess.StepIndex}" Value="2" />
</MultiTrigger.Conditions>
<Setter Property="Text" Value="{x:Static resources:AppResources.MarkingRentalProcessCloseLockFirstStepFinished}"/>
</MultiTrigger>
<MultiTrigger TargetType="Label">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.State}" Value="{x:Static rental_process:CurrentRentalProcess.CloseLockAndCancelReservation}"/>
</MultiTrigger.Conditions>
<Setter Property="Text" Value="{x:Static resources:AppResources.MarkingRentalProcessCloseLockFirstStep}"/>
</MultiTrigger>
<MultiTrigger TargetType="Label">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.State}" Value="{x:Static rental_process:CurrentRentalProcess.CloseLockAndCancelReservation}"/>
<BindingCondition Binding="{Binding RentalProcess.StepIndex}" Value="1" />
<BindingCondition Binding="{Binding RentalProcess.Result}" Value="{x:Static rental_process:CurrentStepStatus.Succeeded}" />
</MultiTrigger.Conditions>
<Setter Property="Text" Value="{x:Static resources:AppResources.MarkingRentalProcessCloseLockFirstStepFinished}"/>
</MultiTrigger>
<MultiTrigger TargetType="Label">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.State}" Value="{x:Static rental_process:CurrentRentalProcess.CloseLockAndCancelReservation}"/>
<BindingCondition Binding="{Binding RentalProcess.StepIndex}" Value="2" />
</MultiTrigger.Conditions>
<Setter Property="Text" Value="{x:Static resources:AppResources.MarkingRentalProcessCloseLockFirstStepFinished}"/>
</MultiTrigger>
<MultiTrigger TargetType="Label">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.State}" Value="{x:Static rental_process:CurrentRentalProcess.CloseDisposableLock}"/>
</MultiTrigger.Conditions>
<Setter Property="Text" Value="{x:Static resources:AppResources.MarkingRentalProcessCloseLockFirstStep}"/>
</MultiTrigger>
<MultiTrigger TargetType="Label">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.State}" Value="{x:Static rental_process:CurrentRentalProcess.CloseDisposableLock}"/>
<BindingCondition Binding="{Binding RentalProcess.StepIndex}" Value="1" />
<BindingCondition Binding="{Binding RentalProcess.Result}" Value="{x:Static rental_process:CurrentStepStatus.Succeeded}" />
</MultiTrigger.Conditions>
<Setter Property="Text" Value="{x:Static resources:AppResources.MarkingRentalProcessCloseLockFirstStepFinished}"/>
</MultiTrigger>
<MultiTrigger TargetType="Label">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.State}" Value="{x:Static rental_process:CurrentRentalProcess.CloseDisposableLock}"/>
<BindingCondition Binding="{Binding RentalProcess.StepIndex}" Value="2" />
</MultiTrigger.Conditions>
<Setter Property="Text" Value="{x:Static resources:AppResources.MarkingRentalProcessCloseLockFirstStepFinished}"/>
</MultiTrigger>
</Label.Triggers>
</Label>
<Image
Grid.Column="1"
Grid.Row="0"
IsVisible="False">
<Image.Triggers>
<DataTrigger TargetType="Image" Binding="{Binding RentalProcess.StepIndex}" Value="1">
<Setter Property="IsVisible" Value="True" />
</DataTrigger>
<DataTrigger TargetType="Image" Binding="{Binding RentalProcess.StepIndex}" Value="2">
<Setter Property="IsVisible" Value="True" />
</DataTrigger>
<MultiTrigger TargetType="Image">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.StepIndex}" Value="1" />
<BindingCondition Binding="{Binding RentalProcess.Result}" Value="{x:Static rental_process:CurrentStepStatus.Succeeded}" />
</MultiTrigger.Conditions>
<Setter Property="Source">
<Setter.Value>
<FontImageSource
Glyph="{StaticResource check}"
FontFamily="FA-S"
Size="Default"
Color="White"/>
</Setter.Value>
</Setter>
</MultiTrigger>
<MultiTrigger TargetType="Image">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.StepIndex}" Value="2" />
</MultiTrigger.Conditions>
<Setter Property="Source">
<Setter.Value>
<FontImageSource
Glyph="{StaticResource check}"
FontFamily="FA-S"
Size="Default"
Color="White"/>
</Setter.Value>
</Setter>
</MultiTrigger>
<MultiTrigger TargetType="Image">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.StepIndex}" Value="1" />
<BindingCondition Binding="{Binding RentalProcess.Result}" Value="{x:Static rental_process:CurrentStepStatus.Failed}" />
</MultiTrigger.Conditions>
<Setter Property="Source">
<Setter.Value>
<FontImageSource
Glyph="{StaticResource xmark}"
FontFamily="FA-S"
Size="Default"
Color="White"/>
</Setter.Value>
</Setter>
</MultiTrigger>
</Image.Triggers>
</Image>
</Grid>
</Frame>
<Polygon
Grid.Column="0"
Grid.Row="2"
Points="0,0 20,0 10,10"
IsVisible="False"
HorizontalOptions="Center">
<Polygon.Triggers>
<MultiTrigger TargetType="Polygon">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.StepIndex}" Value="1" />
<BindingCondition Binding="{Binding RentalProcess.Result}" Value="{x:Static rental_process:CurrentStepStatus.None}"/>
</MultiTrigger.Conditions>
<Setter Property="IsVisible" Value="True" />
<Setter Property="Fill" Value="{DynamicResource process-step-active}" />
</MultiTrigger>
<MultiTrigger TargetType="Polygon">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.StepIndex}" Value="1" />
<BindingCondition Binding="{Binding RentalProcess.Result}" Value="{x:Static rental_process:CurrentStepStatus.Failed}"/>
</MultiTrigger.Conditions>
<Setter Property="IsVisible" Value="True" />
<Setter Property="Fill" Value="{DynamicResource process-step-failed}" />
</MultiTrigger>
<MultiTrigger TargetType="Polygon">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.StepIndex}" Value="1" />
<BindingCondition Binding="{Binding RentalProcess.Result}" Value="{x:Static rental_process:CurrentStepStatus.Succeeded}"/>
</MultiTrigger.Conditions>
<Setter Property="IsVisible" Value="False" />
</MultiTrigger>
</Polygon.Triggers>
</Polygon>
<!--2nd step-->
<Frame
Grid.Column="1"
Grid.Row="0"
Grid.RowSpan="2"
BackgroundColor="{DynamicResource process-step-upcoming}"
Padding="14,2,10,2"
HasShadow="False">
<Frame.Triggers>
<MultiTrigger TargetType="Frame">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.StepIndex}" Value="1" />
</MultiTrigger.Conditions>
<Setter Property="BackgroundColor" Value="{DynamicResource process-step-upcoming}" />
</MultiTrigger>
<MultiTrigger TargetType="Frame">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.StepIndex}" Value="2" />
</MultiTrigger.Conditions>
<Setter Property="BackgroundColor" Value="{DynamicResource process-step-active}" />
</MultiTrigger>
<MultiTrigger TargetType="Frame">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.StepIndex}" Value="2" />
<BindingCondition Binding="{Binding RentalProcess.Result}" Value="{x:Static rental_process:CurrentStepStatus.Succeeded}" />
</MultiTrigger.Conditions>
<Setter Property="BackgroundColor" Value="{DynamicResource process-step-succeeded}" />
</MultiTrigger>
<MultiTrigger TargetType="Frame">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.StepIndex}" Value="2" />
<BindingCondition Binding="{Binding RentalProcess.Result}" Value="{x:Static rental_process:CurrentStepStatus.Failed}" />
</MultiTrigger.Conditions>
<Setter Property="BackgroundColor" Value="{DynamicResource process-step-failed}" />
</MultiTrigger>
</Frame.Triggers>
<Grid
ColumnDefinitions="*,Auto"
RowDefinitions="Auto"
HorizontalOptions="CenterAndExpand"
VerticalOptions="CenterAndExpand">
<Label
Grid.Column="0"
FontSize="17"
FontAttributes="Bold"
LineBreakMode="WordWrap"
MaxLines="2"
TextColor="White">
<Label.Triggers>
<MultiTrigger TargetType="Label">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.State}" Value="{x:Static rental_process:CurrentRentalProcess.StartReservationOrRental}"/>
</MultiTrigger.Conditions>
<Setter Property="Text" Value="{x:Static resources:AppResources.MarkingRentalProcessRequestBikeSecondStep}"/>
</MultiTrigger>
<MultiTrigger TargetType="Label">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.State}" Value="{x:Static rental_process:CurrentRentalProcess.StartReservationOrRental}"/>
<BindingCondition Binding="{Binding RentalProcess.StepInfoText}" Value="{x:Static resources:AppResources.MarkingRentalProcessRequestBikeSecondStepReserve}"/>
</MultiTrigger.Conditions>
<Setter Property="Text" Value="{x:Static resources:AppResources.MarkingRentalProcessRequestBikeSecondStepReserve}"/>
</MultiTrigger>
<MultiTrigger TargetType="Label">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.State}" Value="{x:Static rental_process:CurrentRentalProcess.StartReservationOrRental}"/>
<BindingCondition Binding="{Binding RentalProcess.StepInfoText}" Value="{x:Static resources:AppResources.MarkingRentalProcessRequestBikeSecondStepRent}"/>
</MultiTrigger.Conditions>
<Setter Property="Text" Value="{x:Static resources:AppResources.MarkingRentalProcessRequestBikeSecondStepRent}"/>
</MultiTrigger>
<MultiTrigger TargetType="Label">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.State}" Value="{x:Static rental_process:CurrentRentalProcess.CloseLock}"/>
</MultiTrigger.Conditions>
<Setter Property="Text" Value="{x:Static resources:AppResources.MarkingRentalProcessCloseLockSecondStep}"/>
</MultiTrigger>
<MultiTrigger TargetType="Label">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.State}" Value="{x:Static rental_process:CurrentRentalProcess.CloseLockAndCancelReservation}"/>
</MultiTrigger.Conditions>
<Setter Property="Text" Value="{x:Static resources:AppResources.MarkingRentalProcessCloseLockSecondStepCancelReservation}"/>
</MultiTrigger>
<MultiTrigger TargetType="Label">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.State}" Value="{x:Static rental_process:CurrentRentalProcess.CloseDisposableLock}"/>
</MultiTrigger.Conditions>
<Setter Property="Text" Value="{x:Static resources:AppResources.MarkingRentalProcessCloseLockSecondStepDisconnect}"/>
</MultiTrigger>
</Label.Triggers>
</Label>
<Image
Grid.Column="1"
Grid.Row="0"
IsVisible="False">
<Image.Triggers>
<DataTrigger TargetType="Image" Binding="{Binding RentalProcess.StepIndex}" Value="2">
<Setter Property="IsVisible" Value="True" />
</DataTrigger>
<MultiTrigger TargetType="Image">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.StepIndex}" Value="2" />
<BindingCondition Binding="{Binding RentalProcess.Result}" Value="{x:Static rental_process:CurrentStepStatus.Succeeded}" />
</MultiTrigger.Conditions>
<Setter Property="Source">
<Setter.Value>
<FontImageSource
Glyph="{StaticResource check}"
FontFamily="FA-S"
Size="Default"
Color="White"/>
</Setter.Value>
</Setter>
</MultiTrigger>
<MultiTrigger TargetType="Image">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.StepIndex}" Value="2" />
<BindingCondition Binding="{Binding RentalProcess.Result}" Value="{x:Static rental_process:CurrentStepStatus.Failed}" />
</MultiTrigger.Conditions>
<Setter Property="Source">
<Setter.Value>
<FontImageSource
Glyph="{StaticResource xmark}"
FontFamily="FA-S"
Size="Default"
Color="White"/>
</Setter.Value>
</Setter>
</MultiTrigger>
</Image.Triggers>
</Image>
</Grid>
</Frame>
<Polygon
Grid.Column="1"
Grid.Row="2"
Points="0,0 20,0 10,10"
IsVisible="False"
HorizontalOptions="Center">
<Polygon.Triggers>
<MultiTrigger TargetType="Polygon">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.StepIndex}" Value="2" />
<BindingCondition Binding="{Binding RentalProcess.Result}" Value="{x:Static rental_process:CurrentStepStatus.None}"/>
</MultiTrigger.Conditions>
<Setter Property="IsVisible" Value="True" />
<Setter Property="Fill" Value="{DynamicResource process-step-active}" />
</MultiTrigger>
<MultiTrigger TargetType="Polygon">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.StepIndex}" Value="2" />
<BindingCondition Binding="{Binding RentalProcess.Result}" Value="{x:Static rental_process:CurrentStepStatus.Failed}"/>
</MultiTrigger.Conditions>
<Setter Property="IsVisible" Value="True" />
<Setter Property="Fill" Value="{DynamicResource process-step-failed}" />
</MultiTrigger>
<MultiTrigger TargetType="Polygon">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.StepIndex}" Value="2" />
<BindingCondition Binding="{Binding RentalProcess.Result}" Value="{x:Static rental_process:CurrentStepStatus.Succeeded}"/>
</MultiTrigger.Conditions>
<Setter Property="IsVisible" Value="False" />
</MultiTrigger>
</Polygon.Triggers>
</Polygon>
</Grid>
</Grid>
</ContentView.Content>
</ContentView>

View file

@ -0,0 +1,20 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Xamarin.Forms;
using Xamarin.Forms.Xaml;
namespace SharedGui.View.Bike.RentalProcess
{
[XamlCompilation(XamlCompilationOptions.Compile)]
public partial class RentalProcess2StepsBar : ContentView
{
public RentalProcess2StepsBar ()
{
InitializeComponent ();
}
}
}

View file

@ -0,0 +1,542 @@
<?xml version="1.0" encoding="UTF-8"?>
<ContentView xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:conv="clr-namespace:ShareeBike.View;assembly=SharedBusinessLogic"
xmlns:sharedGui="clr-namespace:SharedGui.View.Bike.RentalProcess"
xmlns:resources="clr-namespace:ShareeBike.MultilingualResources;assembly=SharedBusinessLogic"
xmlns:rental_process="clr-namespace:ShareeBike.ViewModel.Bikes;assembly=SharedBusinessLogic"
x:Class="SharedGui.View.Bike.RentalProcess.RentalProcess3StepsBar">
<ContentView.Resources>
<conv:StringNotNullOrEmptyToVisibleConverter x:Key="StringNotNullOrEmpty_Converter"/>
<x:String x:Key="check">&#xf00c;</x:String>
<x:String x:Key="xmark">&#xf00d;</x:String>
</ContentView.Resources>
<ContentView.Content>
<Grid>
<!-- Progress bar finished-->
<Grid
Grid.Row="0"
IsVisible="False">
<Grid.Triggers>
<MultiTrigger TargetType="Grid">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.StepIndex}" Value="3" />
<BindingCondition Binding="{Binding RentalProcess.Result}" Value="{x:Static rental_process:CurrentStepStatus.Succeeded}" />
</MultiTrigger.Conditions>
<Setter Property="IsVisible" Value="True" />
</MultiTrigger>
</Grid.Triggers>
<sharedGui:RentalProcessStepBarFinished/>
</Grid>
<!-- 3 Steps Progress bar -->
<Grid
Grid.Row="0"
IsVisible="True"
RowDefinitions="50,Auto,10"
RowSpacing="0"
ColumnDefinitions="*,*,*">
<Grid.Triggers>
<MultiTrigger TargetType="Grid">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.StepIndex}" Value="3" />
<BindingCondition Binding="{Binding RentalProcess.Result}" Value="{x:Static rental_process:CurrentStepStatus.Succeeded}" />
</MultiTrigger.Conditions>
<Setter Property="IsVisible" Value="False" />
</MultiTrigger>
</Grid.Triggers>
<!--1st step-->
<Frame
Grid.Column="0"
Grid.Row="0"
Grid.RowSpan="2"
BackgroundColor="{DynamicResource process-step-upcoming}"
HasShadow="False"
Padding="14,2,10,2">
<Frame.Triggers>
<MultiTrigger TargetType="Frame">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.StepIndex}" Value="1" />
</MultiTrigger.Conditions>
<Setter Property="BackgroundColor" Value="{DynamicResource process-step-active}" />
</MultiTrigger>
<MultiTrigger TargetType="Frame">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.StepIndex}" Value="1" />
<BindingCondition Binding="{Binding RentalProcess.Result}" Value="{x:Static rental_process:CurrentStepStatus.Succeeded}" />
</MultiTrigger.Conditions>
<Setter Property="BackgroundColor" Value="{DynamicResource process-step-succeeded}" />
</MultiTrigger>
<MultiTrigger TargetType="Frame">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.StepIndex}" Value="2" />
</MultiTrigger.Conditions>
<Setter Property="BackgroundColor" Value="{DynamicResource process-step-succeeded}" />
</MultiTrigger>
<MultiTrigger TargetType="Frame">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.StepIndex}" Value="3" />
</MultiTrigger.Conditions>
<Setter Property="BackgroundColor" Value="{DynamicResource process-step-succeeded}" />
</MultiTrigger>
<MultiTrigger TargetType="Frame">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.StepIndex}" Value="1" />
<BindingCondition Binding="{Binding RentalProcess.Result}" Value="{x:Static rental_process:CurrentStepStatus.Failed}" />
</MultiTrigger.Conditions>
<Setter Property="BackgroundColor" Value="{DynamicResource process-step-failed}" />
</MultiTrigger>
</Frame.Triggers>
<Grid
ColumnDefinitions="*,Auto"
RowDefinitions="Auto"
HorizontalOptions="CenterAndExpand"
VerticalOptions="CenterAndExpand">
<Label
Grid.Column="0"
Text="{x:Static resources:AppResources.MarkingRentalProcessEndRentalFirstStep}"
FontSize="17"
FontAttributes="Bold"
LineBreakMode="WordWrap"
MaxLines="2"
TextColor="White">
<Label.Triggers>
<MultiTrigger TargetType="Label">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.StepIndex}" Value="1" />
<BindingCondition Binding="{Binding RentalProcess.Result}" Value="{x:Static rental_process:CurrentStepStatus.Succeeded}" />
</MultiTrigger.Conditions>
<Setter Property="Text" Value="{x:Static resources:AppResources.MarkingRentalProcessEndRentalFirstStepFinished}"/>
</MultiTrigger>
<MultiTrigger TargetType="Label">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.StepIndex}" Value="2" />
</MultiTrigger.Conditions>
<Setter Property="Text" Value="{x:Static resources:AppResources.MarkingRentalProcessEndRentalFirstStepFinished}"/>
</MultiTrigger>
<MultiTrigger TargetType="Label">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.StepIndex}" Value="3" />
</MultiTrigger.Conditions>
<Setter Property="Text" Value="{x:Static resources:AppResources.MarkingRentalProcessEndRentalFirstStepFinished}"/>
</MultiTrigger>
</Label.Triggers>
</Label>
<Image
Grid.Column="1"
Grid.Row="0"
IsVisible="False">
<Image.Triggers>
<DataTrigger TargetType="Image" Binding="{Binding RentalProcess.StepIndex}" Value="1">
<Setter Property="IsVisible" Value="True" />
</DataTrigger>
<DataTrigger TargetType="Image" Binding="{Binding RentalProcess.StepIndex}" Value="2">
<Setter Property="IsVisible" Value="True" />
</DataTrigger>
<DataTrigger TargetType="Image" Binding="{Binding RentalProcess.StepIndex}" Value="3">
<Setter Property="IsVisible" Value="True" />
</DataTrigger>
<MultiTrigger TargetType="Image">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.StepIndex}" Value="1" />
<BindingCondition Binding="{Binding RentalProcess.Result}" Value="{x:Static rental_process:CurrentStepStatus.Succeeded}" />
</MultiTrigger.Conditions>
<Setter Property="Source">
<Setter.Value>
<FontImageSource
Glyph="{StaticResource check}"
FontFamily="FA-S"
Size="Default"
Color="White"/>
</Setter.Value>
</Setter>
</MultiTrigger>
<MultiTrigger TargetType="Image">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.StepIndex}" Value="2" />
</MultiTrigger.Conditions>
<Setter Property="Source">
<Setter.Value>
<FontImageSource
Glyph="{StaticResource check}"
FontFamily="FA-S"
Size="Default"
Color="White"/>
</Setter.Value>
</Setter>
</MultiTrigger>
<MultiTrigger TargetType="Image">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.StepIndex}" Value="3" />
</MultiTrigger.Conditions>
<Setter Property="Source">
<Setter.Value>
<FontImageSource
Glyph="{StaticResource check}"
FontFamily="FA-S"
Size="Default"
Color="White"/>
</Setter.Value>
</Setter>
</MultiTrigger>
<MultiTrigger TargetType="Image">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.StepIndex}" Value="1" />
<BindingCondition Binding="{Binding RentalProcess.Result}" Value="{x:Static rental_process:CurrentStepStatus.Failed}" />
</MultiTrigger.Conditions>
<Setter Property="Source">
<Setter.Value>
<FontImageSource
Glyph="{StaticResource xmark}"
FontFamily="FA-S"
Size="Default"
Color="White"/>
</Setter.Value>
</Setter>
</MultiTrigger>
</Image.Triggers>
</Image>
</Grid>
</Frame>
<Polygon
Grid.Column="0"
Grid.Row="2"
Points="0,0 20,0 10,10"
IsVisible="False"
HorizontalOptions="Center">
<Polygon.Triggers>
<MultiTrigger TargetType="Polygon">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.StepIndex}" Value="1" />
<BindingCondition Binding="{Binding RentalProcess.Result}" Value="{x:Static rental_process:CurrentStepStatus.None}"/>
</MultiTrigger.Conditions>
<Setter Property="IsVisible" Value="True" />
<Setter Property="Fill" Value="{DynamicResource process-step-active}" />
</MultiTrigger>
<MultiTrigger TargetType="Polygon">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.StepIndex}" Value="1" />
<BindingCondition Binding="{Binding RentalProcess.Result}" Value="{x:Static rental_process:CurrentStepStatus.Failed}"/>
</MultiTrigger.Conditions>
<Setter Property="IsVisible" Value="True" />
<Setter Property="Fill" Value="{DynamicResource process-step-failed}" />
</MultiTrigger>
<MultiTrigger TargetType="Polygon">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.StepIndex}" Value="1" />
<BindingCondition Binding="{Binding RentalProcess.Result}" Value="{x:Static rental_process:CurrentStepStatus.Succeeded}"/>
</MultiTrigger.Conditions>
<Setter Property="IsVisible" Value="False" />
</MultiTrigger>
</Polygon.Triggers>
</Polygon>
<!--2nd step-->
<Frame
Grid.Column="1"
Grid.Row="0"
Grid.RowSpan="2"
BackgroundColor="{DynamicResource process-step-upcoming}"
HasShadow="False"
Padding="14,2,10,2">
<Frame.Triggers>
<MultiTrigger TargetType="Frame">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.StepIndex}" Value="1" />
</MultiTrigger.Conditions>
<Setter Property="BackgroundColor" Value="{DynamicResource process-step-upcoming}" />
</MultiTrigger>
<MultiTrigger TargetType="Frame">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.StepIndex}" Value="2" />
</MultiTrigger.Conditions>
<Setter Property="BackgroundColor" Value="{DynamicResource process-step-active}" />
</MultiTrigger>
<MultiTrigger TargetType="Frame">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.StepIndex}" Value="2" />
<BindingCondition Binding="{Binding RentalProcess.Result}" Value="{x:Static rental_process:CurrentStepStatus.Succeeded}" />
</MultiTrigger.Conditions>
<Setter Property="BackgroundColor" Value="{DynamicResource process-step-succeeded}" />
</MultiTrigger>
<MultiTrigger TargetType="Frame">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.StepIndex}" Value="3" />
</MultiTrigger.Conditions>
<Setter Property="BackgroundColor" Value="{DynamicResource process-step-succeeded}" />
</MultiTrigger>
<MultiTrigger TargetType="Frame">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.StepIndex}" Value="2" />
<BindingCondition Binding="{Binding RentalProcess.Result}" Value="{x:Static rental_process:CurrentStepStatus.Failed}" />
</MultiTrigger.Conditions>
<Setter Property="BackgroundColor" Value="{DynamicResource process-step-failed}" />
</MultiTrigger>
</Frame.Triggers>
<Grid
ColumnDefinitions="*,Auto"
RowDefinitions="Auto"
HorizontalOptions="CenterAndExpand"
VerticalOptions="CenterAndExpand">
<Label
Grid.Column="0"
Text="{x:Static resources:AppResources.MarkingRentalProcessEndRentalSecondStep}"
FontSize="17"
FontAttributes="Bold"
LineBreakMode="WordWrap"
MaxLines="2"
TextColor="White">
<Label.Triggers>
<MultiTrigger TargetType="Label">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.StepIndex}" Value="2" />
<BindingCondition Binding="{Binding RentalProcess.Result}" Value="{x:Static rental_process:CurrentStepStatus.Succeeded}" />
</MultiTrigger.Conditions>
<Setter Property="Text" Value="{x:Static resources:AppResources.MarkingRentalProcessEndRentalSecondStepFinished}"/>
</MultiTrigger>
<MultiTrigger TargetType="Label">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.StepIndex}" Value="3" />
</MultiTrigger.Conditions>
<Setter Property="Text" Value="{x:Static resources:AppResources.MarkingRentalProcessEndRentalSecondStepFinished}"/>
</MultiTrigger>
</Label.Triggers>
</Label>
<Image
Grid.Column="1"
Grid.Row="0"
IsVisible="False">
<Image.Triggers>
<DataTrigger TargetType="Image" Binding="{Binding RentalProcess.StepIndex}" Value="2">
<Setter Property="IsVisible" Value="True" />
</DataTrigger>
<DataTrigger TargetType="Image" Binding="{Binding RentalProcess.StepIndex}" Value="3">
<Setter Property="IsVisible" Value="True" />
</DataTrigger>
<MultiTrigger TargetType="Image">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.StepIndex}" Value="2" />
<BindingCondition Binding="{Binding RentalProcess.Result}" Value="{x:Static rental_process:CurrentStepStatus.Succeeded}" />
</MultiTrigger.Conditions>
<Setter Property="Source">
<Setter.Value>
<FontImageSource
Glyph="{StaticResource check}"
FontFamily="FA-S"
Size="Default"
Color="White"/>
</Setter.Value>
</Setter>
</MultiTrigger>
<MultiTrigger TargetType="Image">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.StepIndex}" Value="3" />
</MultiTrigger.Conditions>
<Setter Property="Source">
<Setter.Value>
<FontImageSource
Glyph="{StaticResource check}"
FontFamily="FA-S"
Size="Default"
Color="White"/>
</Setter.Value>
</Setter>
</MultiTrigger>
<MultiTrigger TargetType="Image">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.StepIndex}" Value="2" />
<BindingCondition Binding="{Binding RentalProcess.Result}" Value="{x:Static rental_process:CurrentStepStatus.Failed}" />
</MultiTrigger.Conditions>
<Setter Property="Source">
<Setter.Value>
<FontImageSource
Glyph="{StaticResource xmark}"
FontFamily="FA-S"
Size="Default"
Color="White"/>
</Setter.Value>
</Setter>
</MultiTrigger>
</Image.Triggers>
</Image>
</Grid>
</Frame>
<Polygon
Grid.Column="1"
Grid.Row="2"
Points="0,0 20,0 10,10"
IsVisible="False"
HorizontalOptions="Center">
<Polygon.Triggers>
<MultiTrigger TargetType="Polygon">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.StepIndex}" Value="2" />
<BindingCondition Binding="{Binding RentalProcess.Result}" Value="{x:Static rental_process:CurrentStepStatus.None}"/>
</MultiTrigger.Conditions>
<Setter Property="IsVisible" Value="True" />
<Setter Property="Fill" Value="{DynamicResource process-step-active}" />
</MultiTrigger>
<MultiTrigger TargetType="Polygon">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.StepIndex}" Value="2" />
<BindingCondition Binding="{Binding RentalProcess.Result}" Value="{x:Static rental_process:CurrentStepStatus.Failed}"/>
</MultiTrigger.Conditions>
<Setter Property="IsVisible" Value="True" />
<Setter Property="Fill" Value="{DynamicResource process-step-failed}" />
</MultiTrigger>
<MultiTrigger TargetType="Polygon">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.StepIndex}" Value="2" />
<BindingCondition Binding="{Binding RentalProcess.Result}" Value="{x:Static rental_process:CurrentStepStatus.Succeeded}"/>
</MultiTrigger.Conditions>
<Setter Property="IsVisible" Value="False" />
</MultiTrigger>
</Polygon.Triggers>
</Polygon>
<!--3rd step-->
<Frame
Grid.Column="2"
Grid.Row="0"
Grid.RowSpan="2"
BackgroundColor="{DynamicResource process-step-upcoming}"
HasShadow="False"
Padding="14,2,10,2">
<Frame.Triggers>
<MultiTrigger TargetType="Frame">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.StepIndex}" Value="1" />
</MultiTrigger.Conditions>
<Setter Property="BackgroundColor" Value="{DynamicResource process-step-upcoming}" />
</MultiTrigger>
<MultiTrigger TargetType="Frame">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.StepIndex}" Value="2" />
</MultiTrigger.Conditions>
<Setter Property="BackgroundColor" Value="{DynamicResource process-step-upcoming}" />
</MultiTrigger>
<MultiTrigger TargetType="Frame">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.StepIndex}" Value="3" />
</MultiTrigger.Conditions>
<Setter Property="BackgroundColor" Value="{DynamicResource process-step-active}" />
</MultiTrigger>
<MultiTrigger TargetType="Frame">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.StepIndex}" Value="3" />
<BindingCondition Binding="{Binding RentalProcess.Result}" Value="{x:Static rental_process:CurrentStepStatus.Succeeded}" />
</MultiTrigger.Conditions>
<Setter Property="BackgroundColor" Value="{DynamicResource process-step-succeeded}" />
</MultiTrigger>
<MultiTrigger TargetType="Frame">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.StepIndex}" Value="3" />
<BindingCondition Binding="{Binding RentalProcess.Result}" Value="{x:Static rental_process:CurrentStepStatus.Failed}" />
</MultiTrigger.Conditions>
<Setter Property="BackgroundColor" Value="{DynamicResource process-step-failed}" />
</MultiTrigger>
</Frame.Triggers>
<Grid
ColumnDefinitions="*,Auto"
RowDefinitions="Auto"
HorizontalOptions="CenterAndExpand"
VerticalOptions="CenterAndExpand">
<Label
Grid.Column="0"
Text="{x:Static resources:AppResources.MarkingRentalProcessEndRentalThirdStep}"
FontSize="17"
FontAttributes="Bold"
LineBreakMode="WordWrap"
MaxLines="2"
TextColor="White"/>
<Image
Grid.Column="1"
Grid.Row="0"
IsVisible="False">
<Image.Triggers>
<DataTrigger TargetType="Image" Binding="{Binding RentalProcess.StepIndex}" Value="3">
<Setter Property="IsVisible" Value="True" />
</DataTrigger>
<MultiTrigger TargetType="Image">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.StepIndex}" Value="3" />
<BindingCondition Binding="{Binding RentalProcess.Result}" Value="{x:Static rental_process:CurrentStepStatus.Succeeded}" />
</MultiTrigger.Conditions>
<Setter Property="Source">
<Setter.Value>
<FontImageSource
Glyph="{StaticResource check}"
FontFamily="FA-S"
Size="Default"
Color="White"/>
</Setter.Value>
</Setter>
</MultiTrigger>
<MultiTrigger TargetType="Image">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.StepIndex}" Value="3" />
<BindingCondition Binding="{Binding RentalProcess.Result}" Value="{x:Static rental_process:CurrentStepStatus.Failed}" />
</MultiTrigger.Conditions>
<Setter Property="Source">
<Setter.Value>
<FontImageSource
Glyph="{StaticResource xmark}"
FontFamily="FA-S"
Size="Default"
Color="White"/>
</Setter.Value>
</Setter>
</MultiTrigger>
</Image.Triggers>
</Image>
</Grid>
</Frame>
<Polygon
Grid.Column="2"
Grid.Row="2"
Points="0,0 20,0 10,10"
IsVisible="False"
HorizontalOptions="Center">
<Polygon.Triggers>
<MultiTrigger TargetType="Polygon">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.StepIndex}" Value="3" />
<BindingCondition Binding="{Binding RentalProcess.Result}" Value="{x:Static rental_process:CurrentStepStatus.None}"/>
</MultiTrigger.Conditions>
<Setter Property="IsVisible" Value="True" />
<Setter Property="Fill" Value="{DynamicResource process-step-active}" />
</MultiTrigger>
<MultiTrigger TargetType="Polygon">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.StepIndex}" Value="3" />
<BindingCondition Binding="{Binding RentalProcess.Result}" Value="{x:Static rental_process:CurrentStepStatus.Failed}"/>
</MultiTrigger.Conditions>
<Setter Property="IsVisible" Value="True" />
<Setter Property="Fill" Value="{DynamicResource process-step-failed}" />
</MultiTrigger>
<MultiTrigger TargetType="Polygon">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.StepIndex}" Value="3" />
<BindingCondition Binding="{Binding RentalProcess.Result}" Value="{x:Static rental_process:CurrentStepStatus.Succeeded}"/>
</MultiTrigger.Conditions>
<Setter Property="IsVisible" Value="False" />
</MultiTrigger>
</Polygon.Triggers>
</Polygon>
</Grid>
</Grid>
</ContentView.Content>
</ContentView>

View file

@ -0,0 +1,20 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Xamarin.Forms;
using Xamarin.Forms.Xaml;
namespace SharedGui.View.Bike.RentalProcess
{
[XamlCompilation(XamlCompilationOptions.Compile)]
public partial class RentalProcess3StepsBar : ContentView
{
public RentalProcess3StepsBar ()
{
InitializeComponent ();
}
}
}

View file

@ -0,0 +1,63 @@
<?xml version="1.0" encoding="UTF-8"?>
<ContentView xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:conv="clr-namespace:ShareeBike.View;assembly=SharedBusinessLogic"
x:Class="SharedGui.View.Bike.RentalProcess.RentalProcessBikeInfo">
<ContentView.Resources>
<conv:StringNotNullOrEmptyToVisibleConverter x:Key="StringNotNullOrEmpty_Converter"/>
</ContentView.Resources>
<ContentView.Content>
<!--Bike info-->
<Frame
Padding="20"
Margin="0,5,0,5"
HorizontalOptions="FillAndExpand"
BackgroundColor="White"
HasShadow="False">
<Grid
ColumnDefinitions="Auto,*"
RowDefinitions="Auto,Auto"
RowSpacing="0">
<!-- Icon of the bike -->
<Image
Grid.Column="0"
Grid.Row="0"
Grid.RowSpan="2"
Source="{Binding BikeInRentalProcess.DisplayedBikeImageSourceString}"
HeightRequest="60"
Aspect="AspectFit"
HorizontalOptions="Start"
VerticalOptions="End"/>
<!-- Name of the bike -->
<Label
Grid.Column="1"
Grid.Row="0"
FontAttributes="Bold"
FontSize="Large"
HorizontalTextAlignment="Right"
IsVisible="{Binding BikeInRentalProcess.DisplayName, Converter={StaticResource StringNotNullOrEmpty_Converter}}"
Text="{Binding BikeInRentalProcess.DisplayName}"/>
<!-- Id of the bike -->
<Label
Grid.Column="1"
Grid.Row="1"
FontAttributes="Bold"
HorizontalTextAlignment="Right"
VerticalTextAlignment="Start"
IsVisible="{Binding BikeInRentalProcess.DisplayId, Converter={StaticResource StringNotNullOrEmpty_Converter}}"
Text="{Binding BikeInRentalProcess.DisplayId}"/>
</Grid>
</Frame>
</ContentView.Content>
</ContentView>

View file

@ -0,0 +1,20 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Xamarin.Forms;
using Xamarin.Forms.Xaml;
namespace SharedGui.View.Bike.RentalProcess
{
[XamlCompilation(XamlCompilationOptions.Compile)]
public partial class RentalProcessBikeInfo : ContentView
{
public RentalProcessBikeInfo ()
{
InitializeComponent ();
}
}
}

View file

@ -0,0 +1,221 @@
<?xml version="1.0" encoding="UTF-8"?>
<ContentView xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:conv="clr-namespace:ShareeBike.View;assembly=SharedBusinessLogic"
xmlns:rental_process="clr-namespace:ShareeBike.ViewModel.Bikes;assembly=SharedBusinessLogic"
xmlns:resources="clr-namespace:ShareeBike.MultilingualResources;assembly=SharedBusinessLogic"
xmlns:sharedGui="clr-namespace:SharedGui.View.Bike.RentalProcess"
x:Class="SharedGui.View.Bike.RentalProcess.RentalProcessBookedClosedEndRental"
IsVisible="False">
<ContentView.Triggers>
<DataTrigger TargetType="ContentView"
Binding="{Binding RentalProcess.State}"
Value="{x:Static rental_process:CurrentRentalProcess.EndRental}">
<Setter Property="IsVisible" Value="True" />
</DataTrigger>
<DataTrigger TargetType="ContentView"
Binding="{Binding RentalProcess.State}"
Value="{x:Static rental_process:CurrentRentalProcess.CloseLock}">
<Setter Property="IsVisible" Value="False" />
<Setter Property="HeightRequest" Value="0"/>
</DataTrigger>
</ContentView.Triggers>
<ContentView.Resources>
<conv:StringNotNullOrEmptyToVisibleConverter x:Key="StringNotNullOrEmpty_Converter"/>
<x:String x:Key="Triangle">&#xf071;</x:String>
<x:String x:Key="LocationServiceSymbol">&#xf3c5;</x:String>
<x:String x:Key="Upload">&#xf382;</x:String>
<x:String x:Key="WriteFeedback">&#xf044;</x:String>
</ContentView.Resources>
<ContentView.Content>
<Frame
Grid.Row="0"
HorizontalOptions="FillAndExpand"
VerticalOptions="FillAndExpand"
BackgroundColor="White"
Padding="0"
Margin="0">
<Grid RowDefinitions="60,Auto,Auto,1*"
RowSpacing="0">
<!-- Title of rental process-->
<Frame Grid.Row="0"
HorizontalOptions="FillAndExpand"
VerticalOptions="FillAndExpand"
BackgroundColor="{DynamicResource primary-back-title-color}"
Padding="0"
Margin="0">
<Label
Text="{x:Static resources:AppResources.ActionEndRental}"
FontSize="Large"
TextColor="White"
HorizontalOptions="Center"
VerticalOptions="Center"/>
</Frame>
<!--Bike info-->
<sharedGui:RentalProcessBikeInfo Grid.Row="1"/>
<!-- Progress bar -->
<sharedGui:RentalProcess3StepsBar Grid.Row="2"/>
<!--EndRental Content-->
<Grid Grid.Row="3"
RowSpacing="10"
RowDefinitions="Auto,1*,Auto"
Margin="0,40,0,20">
<Grid.Triggers>
<MultiTrigger TargetType="Grid">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.StepIndex}" Value="2" />
</MultiTrigger.Conditions>
<Setter Property="IsVisible" Value="False"/>
<Setter Property="HeightRequest" Value="0"/>
</MultiTrigger>
<MultiTrigger TargetType="Grid">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.StepIndex}" Value="3" />
<BindingCondition Binding="{Binding RentalProcess.Result}" Value="{x:Static rental_process:CurrentStepStatus.Succeeded}" />
</MultiTrigger.Conditions>
<Setter Property="IsVisible" Value="False"/>
<Setter Property="HeightRequest" Value="0"/>
</MultiTrigger>
</Grid.Triggers>
<!--Step icon and Step text-->
<Grid Grid.Row="0"
Padding="30,0,0,0"
ColumnDefinitions="20,Auto,1*,20"
ColumnSpacing="10"
HorizontalOptions="CenterAndExpand">
<!--Step icon-->
<Image
Grid.Column="1"
HorizontalOptions="End">
<Image.Triggers>
<MultiTrigger TargetType="Image">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.StepIndex}" Value="1" />
</MultiTrigger.Conditions>
<Setter Property="Source">
<Setter.Value>
<FontImageSource
Glyph="{StaticResource LocationServiceSymbol}"
FontFamily="FA-S"
Size="40"
Color="Black"/>
</Setter.Value>
</Setter>
</MultiTrigger>
<MultiTrigger TargetType="Image">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.StepIndex}" Value="3" />
</MultiTrigger.Conditions>
<Setter Property="Source">
<Setter.Value>
<FontImageSource
Glyph="{StaticResource Upload}"
FontFamily="FA-S"
Size="40"
Color="Black"/>
</Setter.Value>
</Setter>
</MultiTrigger>
</Image.Triggers>
</Image>
<!--Step text-->
<Label
Grid.Column="2"
TextType="Html"
Text="{Binding RentalProcess.StepInfoText}"
FontSize="Large"
HorizontalOptions="StartAndExpand"
VerticalOptions="Center"
TextColor="Black"
Padding="0">
</Label>
</Grid>
<!--Spinner & Info text-->
<Grid Grid.Row="1"
Margin="30,30,30,0"
RowDefinitions="Auto,1*"
RowSpacing="30"
IsVisible="True">
<!--Spinner-->
<ActivityIndicator Grid.Row="0"
IsRunning="{Binding IsProcessWithRunningProcessView}"
Scale="2"
HorizontalOptions="Center"
VerticalOptions="StartAndExpand"
Color="{x:DynamicResource primary-back-title-color}"/>
<!--Info text-->
<Label Grid.Row="1"
TextType="Html"
Text="{Binding StatusInfoText}"
FontSize="Medium"
TextColor="DimGray"
HorizontalOptions="CenterAndExpand"
HorizontalTextAlignment="Center"/>
</Grid>
<!--Attention: Important info-->
<Frame Grid.Row="2"
Margin="0,20,0,20"
Padding="10"
HorizontalOptions="FillAndExpand"
HasShadow="False"
IsVisible="{Binding RentalProcess.ImportantStepInfoText, Converter={StaticResource StringNotNullOrEmpty_Converter}}"
BackgroundColor="{DynamicResource important-text-color}">
<Grid
ColumnDefinitions="20,*,Auto,20"
RowDefinitions="Auto">
<Label
Grid.Column="1"
HorizontalOptions="End"
IsVisible="True"
TextColor="White"
FontSize="Large"
Text="{Binding RentalProcess.ImportantStepInfoText}"
FontAttributes="Bold">
</Label>
<Image
Grid.Column="2"
HorizontalOptions="Start">
<Image.Source>
<FontImageSource
Glyph="{StaticResource Triangle}"
FontFamily="FA-S"
Size="40"
Color="White"/>
</Image.Source>
</Image>
</Grid>
</Frame>
</Grid>
</Grid>
</Frame>
</ContentView.Content>
</ContentView>

View file

@ -0,0 +1,21 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Xamarin.Forms;
using Xamarin.Forms.Xaml;
#if !NOXCT
namespace SharedGui.View.Bike.RentalProcess
{
[XamlCompilation(XamlCompilationOptions.Compile)]
public partial class RentalProcessBookedClosedEndRental : ContentView
{
public RentalProcessBookedClosedEndRental()
{
InitializeComponent ();
}
}
}
# endif

View file

@ -0,0 +1,207 @@
<?xml version="1.0" encoding="UTF-8"?>
<ContentView xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:conv="clr-namespace:ShareeBike.View;assembly=SharedBusinessLogic"
xmlns:rental_process="clr-namespace:ShareeBike.ViewModel.Bikes;assembly=SharedBusinessLogic"
xmlns:resources="clr-namespace:ShareeBike.MultilingualResources;assembly=SharedBusinessLogic"
xmlns:sharedGui="clr-namespace:SharedGui.View.Bike.RentalProcess"
x:Class="SharedGui.View.Bike.RentalProcess.RentalProcessBookedClosedOpenLock"
IsVisible="False">
<ContentView.Triggers>
<DataTrigger TargetType="ContentView"
Binding="{Binding RentalProcess.State}"
Value="{x:Static rental_process:CurrentRentalProcess.OpenLock}">
<Setter Property="IsVisible" Value="True" />
</DataTrigger>
</ContentView.Triggers>
<ContentView.Resources>
<conv:StringNotNullOrEmptyToVisibleConverter x:Key="StringNotNullOrEmpty_Converter"/>
<x:String x:Key="Glasses">&#xf530;</x:String>
<x:String x:Key="Bluetooth">&#xf293;</x:String>
<x:String x:Key="Upload">&#xf382;</x:String>
</ContentView.Resources>
<ContentView.Content>
<Frame
Grid.Row="0"
HorizontalOptions="FillAndExpand"
VerticalOptions="FillAndExpand"
BackgroundColor="White"
Padding="0"
Margin="0">
<Grid RowDefinitions="60,Auto,Auto,1*"
RowSpacing="0">
<!-- Title of rental process -->
<Frame Grid.Row="0"
HorizontalOptions="FillAndExpand"
VerticalOptions="FillAndExpand"
BackgroundColor="{DynamicResource primary-back-title-color}"
Padding="0"
Margin="0">
<Label
Text="{x:Static resources:AppResources.ActionOpenLock}"
FontSize="Large"
TextColor="White"
HorizontalOptions="Center"
VerticalOptions="Center"/>
</Frame>
<!--Bike info-->
<sharedGui:RentalProcessBikeInfo Grid.Row="1"/>
<!-- Progress bar -->
<sharedGui:RentalProcess1StepBar Grid.Row="2"/>
<!--OpenLock Content-->
<Grid Grid.Row="3"
RowSpacing="10"
RowDefinitions="Auto,1*,Auto"
Margin="0,40,0,20">
<Grid.Triggers>
<MultiTrigger TargetType="Grid">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.StepIndex}" Value="1" />
<BindingCondition Binding="{Binding RentalProcess.Result}" Value="{x:Static rental_process:CurrentStepStatus.Succeeded}"/>
</MultiTrigger.Conditions>
<Setter Property="IsVisible" Value="False"/>
<Setter Property="HeightRequest" Value="0"/>
</MultiTrigger>
</Grid.Triggers>
<!--Step-->
<Grid Grid.Row="0"
Padding="30,0,0,0"
ColumnDefinitions="20,Auto,1*,20"
ColumnSpacing="10"
HorizontalOptions="CenterAndExpand">
<!--Step icon-->
<Image
Grid.Column="1"
HorizontalOptions="End">
<Image.Triggers>
<MultiTrigger TargetType="Image">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.StepInfoText}" Value="{x:Static resources:AppResources.MarkingRentalProcessOpenLockStepOpenLock}"/>
</MultiTrigger.Conditions>
<Setter Property="Source">
<Setter.Value>
<FontImageSource
Glyph="{StaticResource Bluetooth}"
FontFamily="FA-B"
Size="40"
Color="Black"/>
</Setter.Value>
</Setter>
</MultiTrigger>
<MultiTrigger TargetType="Image">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.StepInfoText}" Value="{x:Static resources:AppResources.MarkingRentalProcessOpenLockStepUpload}"/>
</MultiTrigger.Conditions>
<Setter Property="Source">
<Setter.Value>
<FontImageSource
Glyph="{StaticResource Upload}"
FontFamily="FA-S"
Size="40"
Color="Black"/>
</Setter.Value>
</Setter>
</MultiTrigger>
</Image.Triggers>
</Image>
<!--Step text-->
<Label
Grid.Column="2"
TextType="Html"
Text="{Binding RentalProcess.StepInfoText}"
FontSize="Large"
HorizontalOptions="Start"
VerticalOptions="Center"
TextColor="Black"
Padding="0">
</Label>
</Grid>
<!--Spinner & Info text-->
<Grid Grid.Row="1"
Margin="30,30,30,0"
RowDefinitions="Auto,1*"
RowSpacing="30"
IsVisible="True">
<!--Spinner-->
<ActivityIndicator Grid.Row="0"
IsRunning="{Binding IsProcessWithRunningProcessView}"
Scale="2"
HorizontalOptions="Center"
VerticalOptions="StartAndExpand"
Color="{x:DynamicResource primary-back-title-color}"/>
<!--Info text-->
<Label Grid.Row="1"
TextType="Html"
Text="{Binding StatusInfoText}"
FontSize="Medium"
TextColor="DimGray"
HorizontalOptions="CenterAndExpand"
HorizontalTextAlignment="Center"/>
</Grid>
<!--Attention: Important info-->
<Frame Grid.Row="2"
Margin="0,20,0,20"
Padding="10"
HorizontalOptions="FillAndExpand"
HasShadow="False"
IsVisible="{Binding RentalProcess.ImportantStepInfoText, Converter={StaticResource StringNotNullOrEmpty_Converter}}"
BackgroundColor="{DynamicResource important-text-color}">
<Grid
ColumnDefinitions="20,*,Auto,20"
RowDefinitions="Auto">
<Label
Grid.Column="1"
HorizontalOptions="End"
IsVisible="True"
TextColor="White"
FontSize="Large"
Text="{Binding RentalProcess.ImportantStepInfoText}"
FontAttributes="Bold">
</Label>
<Image
Grid.Column="2"
HorizontalOptions="Start">
<Image.Source>
<FontImageSource
Glyph="{StaticResource Glasses}"
FontFamily="FA-S"
Size="40"
Color="White"/>
</Image.Source>
</Image>
</Grid>
</Frame>
</Grid>
</Grid>
</Frame>
</ContentView.Content>
</ContentView>

View file

@ -0,0 +1,20 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Xamarin.Forms;
using Xamarin.Forms.Xaml;
namespace SharedGui.View.Bike.RentalProcess
{
[XamlCompilation(XamlCompilationOptions.Compile)]
public partial class RentalProcessBookedClosedOpenLock : ContentView
{
public RentalProcessBookedClosedOpenLock()
{
InitializeComponent();
}
}
}

View file

@ -0,0 +1,246 @@
<?xml version="1.0" encoding="UTF-8"?>
<ContentView xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:conv="clr-namespace:ShareeBike.View;assembly=SharedBusinessLogic"
xmlns:rental_process="clr-namespace:ShareeBike.ViewModel.Bikes;assembly=SharedBusinessLogic"
xmlns:resources="clr-namespace:ShareeBike.MultilingualResources;assembly=SharedBusinessLogic"
xmlns:sharedGui="clr-namespace:SharedGui.View.Bike.RentalProcess"
x:Class="SharedGui.View.Bike.RentalProcess.RentalProcessBookedOpenCloseLock"
IsVisible="False">
<ContentView.Triggers>
<DataTrigger TargetType="ContentView"
Binding="{Binding RentalProcess.State}"
Value="{x:Static rental_process:CurrentRentalProcess.CloseLock}">
<Setter Property="IsVisible" Value="True" />
</DataTrigger>
<DataTrigger TargetType="ContentView"
Binding="{Binding RentalProcess.State}"
Value="{x:Static rental_process:CurrentRentalProcess.CloseLockAndCancelReservation}">
<Setter Property="IsVisible" Value="True" />
</DataTrigger>
<DataTrigger TargetType="ContentView"
Binding="{Binding RentalProcess.State}"
Value="{x:Static rental_process:CurrentRentalProcess.EndRental}">
<Setter Property="IsVisible" Value="False" />
<Setter Property="HeightRequest" Value="0"/>
</DataTrigger>
</ContentView.Triggers>
<ContentView.Resources>
<conv:StringNotNullOrEmptyToVisibleConverter x:Key="StringNotNullOrEmpty_Converter"/>
<x:String x:Key="Glasses">&#xf530;</x:String>
<x:String x:Key="Bluetooth">&#xf293;</x:String>
<x:String x:Key="Upload">&#xf382;</x:String>
</ContentView.Resources>
<ContentView.Content>
<Frame
Grid.Row="0"
HorizontalOptions="FillAndExpand"
VerticalOptions="FillAndExpand"
BackgroundColor="White"
Padding="0"
Margin="0">
<Grid RowDefinitions="60,Auto,Auto,1*"
RowSpacing="0">
<!-- Title of rental process -->
<Frame Grid.Row="0"
HorizontalOptions="FillAndExpand"
VerticalOptions="FillAndExpand"
BackgroundColor="{DynamicResource primary-back-title-color}"
Padding="0"
Margin="0">
<Label
Text="{x:Static resources:AppResources.ActionCloseLock}"
FontSize="Large"
TextColor="White"
HorizontalOptions="Center"
VerticalOptions="Center"/>
</Frame>
<!--Bike info-->
<sharedGui:RentalProcessBikeInfo Grid.Row="1"/>
<!-- Progress bar -->
<sharedGui:RentalProcess2StepsBar Grid.Row="2"/>
<!--CloseLock Content-->
<Grid Grid.Row="3"
RowSpacing="10"
RowDefinitions="Auto,1*,Auto"
Margin="0,40,0,20">
<Grid.Triggers>
<MultiTrigger TargetType="Grid">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.StepIndex}" Value="2" />
<BindingCondition Binding="{Binding RentalProcess.State}" Value="{x:Static rental_process:CurrentRentalProcess.CloseLock}" />
</MultiTrigger.Conditions>
<Setter Property="IsVisible" Value="False"/>
<Setter Property="HeightRequest" Value="0"/>
</MultiTrigger>
</Grid.Triggers>
<!--Step-->
<Grid Grid.Row="0"
Padding="30,0,0,0"
ColumnDefinitions="20,Auto,1*,20"
ColumnSpacing="10"
HorizontalOptions="CenterAndExpand">
<!--Step icon-->
<Image
Grid.Column="1"
HorizontalOptions="End">
<Image.Triggers>
<MultiTrigger TargetType="Image">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.StepInfoText}" Value="{x:Static resources:AppResources.MarkingRentalProcessCloseLockStepCloseLock}"/>
</MultiTrigger.Conditions>
<Setter Property="Source">
<Setter.Value>
<FontImageSource
Glyph="{StaticResource Bluetooth}"
FontFamily="FA-B"
Size="40"
Color="Black"/>
</Setter.Value>
</Setter>
</MultiTrigger>
<MultiTrigger TargetType="Image">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.StepInfoText}" Value="{x:Static resources:AppResources.MarkingRentalProcessCloseLockStepUpload}"/>
</MultiTrigger.Conditions>
<Setter Property="Source">
<Setter.Value>
<FontImageSource
Glyph="{StaticResource Upload}"
FontFamily="FA-S"
Size="40"
Color="Black"/>
</Setter.Value>
</Setter>
</MultiTrigger>
<MultiTrigger TargetType="Image">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.StepInfoText}" Value="{x:Static resources:AppResources.MarkingRentalProcessCloseLockSecondStepCancelReservation}"/>
</MultiTrigger.Conditions>
<Setter Property="Source">
<Setter.Value>
<FontImageSource
Glyph="{StaticResource Upload}"
FontFamily="FA-S"
Size="40"
Color="Black"/>
</Setter.Value>
</Setter>
</MultiTrigger>
<MultiTrigger TargetType="Image">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.StepInfoText}" Value="{x:Static resources:AppResources.MarkingRentalProcessCloseLockSecondStepDisconnect}"/>
</MultiTrigger.Conditions>
<Setter Property="Source">
<Setter.Value>
<FontImageSource
Glyph="{StaticResource Bluetooth}"
FontFamily="FA-S"
Size="40"
Color="Black"/>
</Setter.Value>
</Setter>
</MultiTrigger>
</Image.Triggers>
</Image>
<!--Step text-->
<Label
Grid.Column="2"
TextType="Html"
Text="{Binding RentalProcess.StepInfoText}"
FontSize="Large"
HorizontalOptions="Start"
VerticalOptions="Center"
TextColor="Black"
Padding="0">
</Label>
</Grid>
<!--Spinner & Info text-->
<Grid Grid.Row="1"
Margin="30,30,30,0"
RowDefinitions="Auto,1*"
RowSpacing="30"
IsVisible="True">
<!--Spinner-->
<ActivityIndicator Grid.Row="0"
IsRunning="{Binding IsProcessWithRunningProcessView}"
Scale="2"
HorizontalOptions="Center"
VerticalOptions="StartAndExpand"
Color="{x:DynamicResource primary-back-title-color}"/>
<!--Info text-->
<Label Grid.Row="1"
TextType="Html"
Text="{Binding StatusInfoText}"
FontSize="Medium"
TextColor="DimGray"
HorizontalOptions="CenterAndExpand"
HorizontalTextAlignment="Center"/>
</Grid>
<!--Attention: Important info-->
<Frame Grid.Row="2"
Margin="0,20,0,20"
Padding="10"
HorizontalOptions="FillAndExpand"
HasShadow="False"
IsVisible="{Binding RentalProcess.ImportantStepInfoText, Converter={StaticResource StringNotNullOrEmpty_Converter}}"
BackgroundColor="{DynamicResource important-text-color}">
<Grid
ColumnDefinitions="20,*,Auto,20"
RowDefinitions="Auto">
<Label
Grid.Column="1"
HorizontalOptions="End"
IsVisible="True"
TextColor="White"
FontSize="Large"
Text="{Binding RentalProcess.ImportantStepInfoText}"
FontAttributes="Bold">
</Label>
<Image
Grid.Column="2"
HorizontalOptions="Start">
<Image.Source>
<FontImageSource
Glyph="{StaticResource Glasses}"
FontFamily="FA-S"
Size="40"
Color="White"/>
</Image.Source>
</Image>
</Grid>
</Frame>
</Grid>
</Grid>
</Frame>
</ContentView.Content>
</ContentView>

View file

@ -0,0 +1,17 @@
using Xamarin.Forms;
using Xamarin.Forms.Xaml;
namespace SharedGui.View.Bike.RentalProcess
{
#if !NOXCT
[XamlCompilation(XamlCompilationOptions.Compile)]
public partial class RentalProcessBookedOpenCloseLock : ContentView
{
public RentalProcessBookedOpenCloseLock()
{
InitializeComponent();
}
}
#endif
}

View file

@ -0,0 +1,278 @@
<?xml version="1.0" encoding="UTF-8"?>
<ContentView xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:sharedGui="clr-namespace:SharedGui.View.Bike.RentalProcess"
xmlns:resources="clr-namespace:ShareeBike.MultilingualResources;assembly=SharedBusinessLogic"
xmlns:conv="clr-namespace:ShareeBike.View;assembly=SharedBusinessLogic"
xmlns:rental_process="clr-namespace:ShareeBike.ViewModel.Bikes;assembly=SharedBusinessLogic"
x:Class="SharedGui.View.Bike.RentalProcess.RentalProcessStartReservationOrRental"
IsVisible="False">
<ContentView.Triggers>
<DataTrigger TargetType="ContentView"
Binding="{Binding RentalProcess.State}"
Value="{x:Static rental_process:CurrentRentalProcess.StartReservationOrRental}">
<Setter Property="IsVisible" Value="True" />
</DataTrigger>
</ContentView.Triggers>
<ContentView.Resources>
<conv:StringNotNullOrEmptyToVisibleConverter x:Key="StringNotNullOrEmpty_Converter"/>
<x:String x:Key="Bluetooth">&#xf293;</x:String>
<x:String x:Key="Upload">&#xf382;</x:String>
<x:String x:Key="Triangle">&#xf071;</x:String>
</ContentView.Resources>
<ContentView.Content>
<Frame
Grid.Row="0"
HorizontalOptions="FillAndExpand"
VerticalOptions="FillAndExpand"
BackgroundColor="White"
Padding="0"
Margin="0">
<Grid RowDefinitions="60,Auto,Auto,1*"
RowSpacing="0">
<!-- Title of rental process -->
<Frame Grid.Row="0"
HorizontalOptions="FillAndExpand"
VerticalOptions="FillAndExpand"
BackgroundColor="{DynamicResource primary-back-title-color}"
Padding="0"
Margin="0">
<Label
Text="{x:Static resources:AppResources.ActionRequestBike}"
FontSize="Large"
TextColor="White"
HorizontalOptions="Center"
VerticalOptions="Center"/>
</Frame>
<!--Bike info-->
<sharedGui:RentalProcessBikeInfo Grid.Row="1"/>
<!-- Progress bar -->
<sharedGui:RentalProcess2StepsBar Grid.Row="2"/>
<!--Request Bike Content-->
<Grid Grid.Row="3"
RowSpacing="10"
RowDefinitions="Auto,1*,Auto"
Margin="0,40,0,20">
<Grid.Triggers>
<MultiTrigger TargetType="Grid">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.StepIndex}" Value="2" />
<BindingCondition Binding="{Binding RentalProcess.StepInfoText}" Value="{x:Static resources:AppResources.MarkingRentalProcessRequestBikeSecondStepReserve}"/>
</MultiTrigger.Conditions>
<Setter Property="IsVisible" Value="False"/>
<Setter Property="HeightRequest" Value="0"/>
</MultiTrigger>
<MultiTrigger TargetType="Grid">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.StepIndex}" Value="2" />
<BindingCondition Binding="{Binding RentalProcess.StepInfoText}" Value="{x:Static resources:AppResources.MarkingRentalProcessRequestBikeSecondStepRent}"/>
</MultiTrigger.Conditions>
<Setter Property="IsVisible" Value="False"/>
<Setter Property="HeightRequest" Value="0"/>
</MultiTrigger>
<MultiTrigger TargetType="Grid">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.StepIndex}" Value="2" />
<BindingCondition Binding="{Binding RentalProcess.Result}" Value="{x:Static rental_process:CurrentStepStatus.Succeeded}" />
</MultiTrigger.Conditions>
<Setter Property="IsVisible" Value="False"/>
<Setter Property="HeightRequest" Value="0"/>
</MultiTrigger>
</Grid.Triggers>
<!--Step icon and Step text-->
<Grid Grid.Row="0"
Padding="30,0,0,0"
ColumnDefinitions="20,Auto,1*,20"
ColumnSpacing="10"
HorizontalOptions="CenterAndExpand">
<!--Step icon-->
<Image
Grid.Column="1"
HorizontalOptions="End">
<Image.Triggers>
<MultiTrigger TargetType="Image">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.StepInfoText}" Value="{x:Static resources:AppResources.MarkingRentalProcessRequestBikeFirstStepRequest}"/>
</MultiTrigger.Conditions>
<Setter Property="Source">
<Setter.Value>
<FontImageSource
Glyph="{StaticResource Upload}"
FontFamily="FA-S"
Size="40"
Color="Black"/>
</Setter.Value>
</Setter>
</MultiTrigger>
<MultiTrigger TargetType="Image">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.StepInfoText}" Value="{x:Static resources:AppResources.MarkingRentalProcessRequestBikeFirstStepAuthenticateInfo}"/>
</MultiTrigger.Conditions>
<Setter Property="Source">
<Setter.Value>
<FontImageSource
Glyph="{StaticResource Upload}"
FontFamily="FA-S"
Size="40"
Color="Black"/>
</Setter.Value>
</Setter>
</MultiTrigger>
<MultiTrigger TargetType="Image">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.StepInfoText}" Value="{x:Static resources:AppResources.MarkingRentalProcessRequestBikeFirstStepConnect}"/>
</MultiTrigger.Conditions>
<Setter Property="Source">
<Setter.Value>
<FontImageSource
Glyph="{StaticResource Bluetooth}"
FontFamily="FA-B"
Size="40"
Color="Black"/>
</Setter.Value>
</Setter>
</MultiTrigger>
<MultiTrigger TargetType="Image">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.StepInfoText}" Value="{x:Static resources:AppResources.MarkingRentalProcessRequestBikeSecondStepRent}"/>
</MultiTrigger.Conditions>
<Setter Property="Source">
<Setter.Value>
<FontImageSource
Glyph="{StaticResource Upload}"
FontFamily="FA-S"
Size="40"
Color="Black"/>
</Setter.Value>
</Setter>
</MultiTrigger>
<MultiTrigger TargetType="Image">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.StepInfoText}" Value="{x:Static resources:AppResources.MarkingRentalProcessRequestBikeSecondStepReserve}"/>
</MultiTrigger.Conditions>
<Setter Property="Source">
<Setter.Value>
<FontImageSource
Glyph="{StaticResource Upload}"
FontFamily="FA-S"
Size="40"
Color="Black"/>
</Setter.Value>
</Setter>
</MultiTrigger>
<MultiTrigger TargetType="Image">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.StepInfoText}" Value="{x:Static resources:AppResources.MarkingRentalProcessRequestBikeSecondStepStartRental}"/>
</MultiTrigger.Conditions>
<Setter Property="Source">
<Setter.Value>
<FontImageSource
Glyph="{StaticResource Upload}"
FontFamily="FA-S"
Size="40"
Color="Black"/>
</Setter.Value>
</Setter>
</MultiTrigger>
</Image.Triggers>
</Image>
<!--Step text-->
<Label
Grid.Column="2"
TextType="Html"
Text="{Binding RentalProcess.StepInfoText}"
FontSize="Large"
HorizontalOptions="StartAndExpand"
VerticalOptions="Center"
TextColor="Black"
Padding="0">
</Label>
</Grid>
<!--Spinner & Info text-->
<Grid Grid.Row="1"
Margin="30,30,30,0"
RowDefinitions="Auto,1*"
RowSpacing="30"
IsVisible="True">
<!--Spinner-->
<ActivityIndicator Grid.Row="0"
IsRunning="{Binding IsProcessWithRunningProcessView}"
Scale="2"
HorizontalOptions="Center"
VerticalOptions="StartAndExpand"
Color="{x:DynamicResource primary-back-title-color}"/>
<!--Info text-->
<Label Grid.Row="1"
TextType="Html"
Text="{Binding StatusInfoText}"
FontSize="Medium"
TextColor="DimGray"
HorizontalOptions="CenterAndExpand"
HorizontalTextAlignment="Center"/>
</Grid>
<!--Attention: Important info-->
<Frame Grid.Row="2"
Margin="0,20,0,20"
Padding="10"
HorizontalOptions="FillAndExpand"
HasShadow="False"
IsVisible="{Binding RentalProcess.ImportantStepInfoText, Converter={StaticResource StringNotNullOrEmpty_Converter}}"
BackgroundColor="{DynamicResource important-text-color}">
<Grid
ColumnDefinitions="20,*,Auto,20"
RowDefinitions="Auto">
<Label
Grid.Column="1"
HorizontalOptions="End"
IsVisible="True"
TextColor="White"
FontSize="Large"
Text="{Binding RentalProcess.ImportantStepInfoText}"
FontAttributes="Bold">
</Label>
<Image
Grid.Column="2"
HorizontalOptions="Start">
<Image.Source>
<FontImageSource
Glyph="{StaticResource Triangle}"
FontFamily="FA-S"
Size="40"
Color="White"/>
</Image.Source>
</Image>
</Grid>
</Frame>
</Grid>
</Grid>
</Frame>
</ContentView.Content>
</ContentView>

View file

@ -0,0 +1,17 @@
using Xamarin.Forms;
using Xamarin.Forms.Xaml;
namespace SharedGui.View.Bike.RentalProcess
{
#if !NOXCT
[XamlCompilation(XamlCompilationOptions.Compile)]
public partial class RentalProcessStartReservationOrRental : ContentView
{
public RentalProcessStartReservationOrRental ()
{
InitializeComponent();
}
}
#endif
}

View file

@ -0,0 +1,88 @@
<?xml version="1.0" encoding="UTF-8"?>
<ContentView xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:conv="clr-namespace:ShareeBike.View;assembly=SharedBusinessLogic"
xmlns:rental_process="clr-namespace:ShareeBike.ViewModel.Bikes;assembly=SharedBusinessLogic"
xmlns:resources="clr-namespace:ShareeBike.MultilingualResources;assembly=SharedBusinessLogic"
x:Class="SharedGui.View.Bike.RentalProcess.RentalProcessStepBarFinished">
<ContentView.Resources>
<conv:StringNotNullOrEmptyToVisibleConverter x:Key="StringNotNullOrEmpty_Converter"/>
<x:String x:Key="check">&#xf00c;</x:String>
<x:String x:Key="xmark">&#xf00d;</x:String>
</ContentView.Resources>
<ContentView.Content>
<!-- Progress bar -->
<Grid
ColumnDefinitions="1*,80,40"
RowDefinitions="15,50,15"
RowSpacing="0">
<Frame
Grid.Column="0"
Grid.ColumnSpan="3"
Grid.Row="1"
BackgroundColor="{DynamicResource process-step-succeeded}"
Padding="0">
<Label
Padding="40,0,0,0"
VerticalOptions="Center"
TextColor="White"
FontAttributes="Bold"
Text="">
<Label.Triggers>
<MultiTrigger TargetType="Label">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.State}" Value="{x:Static rental_process:CurrentRentalProcess.StartReservationOrRental}" />
</MultiTrigger.Conditions>
<Setter Property="Text" Value="{x:Static resources:AppResources.StatusTextReserved}" />
</MultiTrigger>
<MultiTrigger TargetType="Label">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.State}" Value="{x:Static rental_process:CurrentRentalProcess.OpenLock}" />
</MultiTrigger.Conditions>
<Setter Property="Text" Value="{x:Static resources:AppResources.StatusTextLockOpened}" />
</MultiTrigger>
<MultiTrigger TargetType="Label">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.State}" Value="{x:Static rental_process:CurrentRentalProcess.CloseLock}" />
</MultiTrigger.Conditions>
<Setter Property="Text" Value="{x:Static resources:AppResources.StatusTextLockClosed}" />
</MultiTrigger>
<MultiTrigger TargetType="Label">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding RentalProcess.State}" Value="{x:Static rental_process:CurrentRentalProcess.EndRental}" />
</MultiTrigger.Conditions>
<Setter Property="Text" Value="{x:Static resources:AppResources.StatusTextRentalEnded}" />
</MultiTrigger>
</Label.Triggers>
</Label>
</Frame>
<Frame
Grid.Column="1"
Grid.Row="0"
Grid.RowSpan="3"
BackgroundColor="{DynamicResource process-step-succeeded}"
BorderColor="White"
CornerRadius="40">
<Image>
<Image.Source>
<FontImageSource
Glyph="{StaticResource check}"
FontFamily="FA-S"
Size="22"
Color="White"/>
</Image.Source>
</Image>
</Frame>
</Grid>
</ContentView.Content>
</ContentView>

View file

@ -0,0 +1,20 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Xamarin.Forms;
using Xamarin.Forms.Xaml;
namespace SharedGui.View.Bike.RentalProcess
{
[XamlCompilation(XamlCompilationOptions.Compile)]
public partial class RentalProcessStepBarFinished : ContentView
{
public RentalProcessStepBarFinished ()
{
InitializeComponent ();
}
}
}