225 lines
22 KiB
XML

<?xml version="1.0" encoding="utf-8" ?>
<controls:BaseContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="gehGassiApp.Views.Payments.IdentityProofView"
xmlns:res="clr-namespace:gehGassiApp.Resources"
xmlns:controls="clr-namespace:gehGassiApp.Controls"
xmlns:i="clr-namespace:gehGassiApp.Constants"
xmlns:payment="clr-namespace:gehGassiApp.ViewModels.Payment"
xmlns:common="clr-namespace:gehGassiApp.Domain.Common;assembly=gehGassiApp.Domain"
ControlTemplate="{StaticResource MenuPageTemplate}">
<controls:BaseContentPage.TitleView>
<controls:ShellTitleViewNoLogoControl ViewModel="{Binding .}" Initials="{Binding CurrentAppUser.Initials}" Photo="{Binding CurrentAppUser.Photo}"/>
</controls:BaseContentPage.TitleView>
<ContentPage.Content>
<ScrollView x:Name="rootScrollView" Padding="20,20,20,20" HorizontalOptions="Fill" VerticalOptions="FillAndExpand">
<VerticalStackLayout x:Name="rootVerticalStackLayout" SizeChanged="rootVerticalStackLayout_SizeChanged" Spacing="0" HorizontalOptions="Fill" VerticalOptions="StartAndExpand">
<VerticalStackLayout HorizontalOptions="Fill" VerticalOptions="StartAndExpand" Spacing="0"
IsVisible="{Binding CurrentStep, Converter={StaticResource EnumToBoolConverter}, ConverterParameter={x:Static payment:IdentityStep.View}}">
<HorizontalStackLayout HorizontalOptions="CenterAndExpand" VerticalOptions="StartAndExpand" Spacing="8">
<Label Text="{x:Static res:Text.Common_Status}" Style="{StaticResource BodyM_GreyDark}" HorizontalOptions="End" VerticalOptions="Center"></Label>
<Border StrokeShape="RoundRectangle 6" BackgroundColor="{Binding CurrentIdentityDocument, Converter={StaticResource IdentityDocumentStatusToColorConverter}, ConverterParameter='Background'}"
HorizontalOptions="StartAndExpand" VerticalOptions="Center" StrokeThickness="0" Padding="6,4,6,4">
<HorizontalStackLayout HorizontalOptions="StartAndExpand" Spacing="2">
<Label Text="{Binding CurrentIdentityDocument.Status, Converter={StaticResource EnumToTextConverter}}" Style="{StaticResource BodyMMedium_Blue}"
TextColor="{Binding CurrentIdentityDocument, Converter={StaticResource IdentityDocumentStatusToColorConverter}, ConverterParameter='Text'}" VerticalOptions="Center" LineBreakMode="TailTruncation"></Label>
<Ellipse Fill="{Binding CurrentIdentityDocument, Converter={StaticResource IdentityDocumentStatusToColorConverter}, ConverterParameter='Dot'}" WidthRequest="8" HeightRequest="8"></Ellipse>
</HorizontalStackLayout>
</Border>
</HorizontalStackLayout>
<Grid RowDefinitions="20,*" ColumnDefinitions="*,Auto,*" Margin="0,130,0,130">
<Image Grid.Row="1" Grid.Column="1" Source="{Binding CurrentIdentityDocument.Source, Converter={StaticResource EnumToIconConverter}}"></Image>
<Border Grid.Column="1" Grid.RowSpan="2" HeightRequest="40" WidthRequest="40" HorizontalOptions="EndAndExpand" VerticalOptions="StartAndExpand" StrokeShape="RoundRectangle 20"
BackgroundColor="{Binding CurrentIdentityDocument, Converter={StaticResource IdentityDocumentStatusToColorConverter}, ConverterParameter='IconBackground'}" StrokeThickness="0" Margin="0,0,-20,0">
<Image HorizontalOptions="Center" VerticalOptions="Center">
<Image.Source>
<FontImageSource Glyph="{Binding CurrentIdentityDocument.Status, Converter={StaticResource EnumToIconConverter}}" FontFamily="IconMoon"
Color="{Binding CurrentIdentityDocument, Converter={StaticResource IdentityDocumentStatusToColorConverter}, ConverterParameter='Icon'}" Size="20"></FontImageSource>
</Image.Source>
</Image>
</Border>
</Grid>
<Label HorizontalOptions="CenterAndExpand" HorizontalTextAlignment="Center" Style="{StaticResource H5_Red}" Text="{Binding CurrentIdentityDocument.RefusedReasonType, Converter={StaticResource KycRefusedTypeConverter}}"
IsVisible="{Binding CurrentIdentityDocument.Status, Converter={StaticResource EnumToBoolConverter}, ConverterParameter={x:Static common:IdentityDocumentStatus.REFUSED}}">
</Label>
<VerticalStackLayout HorizontalOptions="Fill" VerticalOptions="StartAndExpand" BindableLayout.ItemsSource="{Binding CurrentIdentityDocument.Flags}"
IsVisible="{Binding CurrentIdentityDocument.Status, Converter={StaticResource EnumToBoolConverter}, ConverterParameter={x:Static common:IdentityDocumentStatus.REFUSED}}">
<BindableLayout.ItemTemplate>
<DataTemplate>
<Label Text="{Binding ., Converter={StaticResource KycRefusedFlagConverter}}" Style="{StaticResource BodyCaption_GreyDark}" HorizontalOptions="CenterAndExpand" HorizontalTextAlignment="Center"></Label>
</DataTemplate>
</BindableLayout.ItemTemplate>
</VerticalStackLayout>
<Grid RowDefinitions="*,*" ColumnDefinitions="*,*" RowSpacing="16" Margin="{StaticResource MarginBig}">
<Label Grid.Row="0" Grid.Column="0" Text="{x:Static res:Text.Common_DocumentType}" Style="{StaticResource BodyM_GreyDark}" HorizontalOptions="StartAndExpand"></Label>
<Label Grid.Row="0" Grid.Column="1" Text="{Binding CurrentIdentityDocument.Source, Converter={StaticResource EnumToTextConverter}}" Style="{StaticResource BodyMMedium_Blue}" HorizontalOptions="EndAndExpand"></Label>
<Label Grid.Row="1" Grid.Column="0" Text="{Binding CurrentIdentityDocument, Converter={StaticResource IdentityDocumentStatusToTextConverter}}" Style="{StaticResource BodyM_GreyDark}" HorizontalOptions="StartAndExpand"></Label>
<Label Grid.Row="1" Grid.Column="1" Text="{Binding CurrentIdentityDocument, Converter={StaticResource IdentityDocumentStatusToDateTextConverter}}" Style="{StaticResource BodyMMedium_Blue}" HorizontalOptions="EndAndExpand"></Label>
</Grid>
<Button Text="{x:Static res:Text.Button_CreateNew}" Command="{Binding CreateCommand}"
IsVisible="{Binding CurrentIdentityDocument.Status, Converter={StaticResource EnumToBoolConverter}, ConverterParameter={x:Static common:IdentityDocumentStatus.REFUSED}}">
</Button>
<Button Text="{x:Static res:Text.Button_CreateNew}" Command="{Binding CreateCommand}"
IsVisible="{Binding CurrentIdentityDocument.Status, Converter={StaticResource EnumToBoolConverter}, ConverterParameter={x:Static common:IdentityDocumentStatus.OUT_OF_DATE}}">
</Button>
</VerticalStackLayout>
<VerticalStackLayout HorizontalOptions="Fill" VerticalOptions="StartAndExpand" Spacing="0"
IsVisible="{Binding CurrentStep, Converter={StaticResource EnumToBoolConverter}, ConverterParameter={x:Static payment:IdentityStep.Start}}">
<Label Text="{x:Static res:Text.View_IdentityProof_Desc}" Style="{StaticResource H6_Blue}" VerticalOptions="StartAndExpand" HorizontalOptions="StartAndExpand" HorizontalTextAlignment="Start"></Label>
<Image WidthRequest="118" HeightRequest="150" Source="profile" Margin="0,64,0,64"></Image>
<Button Text="{x:Static res:Text.Button_Create}" Command="{Binding CreateCommand}" Margin="{StaticResource MarginMid}"></Button>
<Label Text="{x:Static res:Text.View_IdentityProof_Benefit}" Style="{StaticResource BodyXs_GreyDark}" VerticalOptions="StartAndExpand" HorizontalOptions="CenterAndExpand" HorizontalTextAlignment="Center"></Label>
</VerticalStackLayout>
<VerticalStackLayout HorizontalOptions="Fill" VerticalOptions="StartAndExpand" Spacing="0"
IsVisible="{Binding CurrentStep, Converter={StaticResource EnumToBoolConverter}, ConverterParameter={x:Static payment:IdentityStep.Create}}">
<Grid ColumnDefinitions="25,50,25" HorizontalOptions="Center" ColumnSpacing="5" Margin="{StaticResource MarginMid}">
<Border Grid.Column="0" Style="{StaticResource DarkBlueBorder}" HorizontalOptions="Fill" VerticalOptions="Fill" Padding="0" WidthRequest="25" HeightRequest="25">
<Label Text="1" Style="{StaticResource Menu_White}" HorizontalOptions="Center" VerticalOptions="Center"></Label>
</Border>
<Border Grid.Column="1" Style="{StaticResource Separator_LightBlue20}"></Border>
<Border Grid.Column="2" Style="{StaticResource LightBlue20Border}" HorizontalOptions="Fill" VerticalOptions="Fill" Padding="0" WidthRequest="25" HeightRequest="25">
<Label Text="2" Style="{StaticResource Menu_Blue}" HorizontalOptions="Center" VerticalOptions="Center"></Label>
</Border>
</Grid>
<Label Text="{x:Static res:Text.View_IdentityProof_HowTo}" Style="{StaticResource H2_Blue}" VerticalOptions="StartAndExpand" HorizontalOptions="CenterAndExpand" HorizontalTextAlignment="Center" Margin="{StaticResource MarginBig}"></Label>
<Grid RowDefinitions="188,188" ColumnDefinitions="*,*" HorizontalOptions="Fill" VerticalOptions="StartAndExpand" RowSpacing="12" ColumnSpacing="12">
<Border Grid.Row="0" Grid.Column="0" Style="{StaticResource LightGreyBorder}" HorizontalOptions="Fill" VerticalOptions="Fill" Padding="20,40,20,40">
<VerticalStackLayout Spacing="15">
<Image HeightRequest="70" WidthRequest="45" Source="passport"/>
<Label Text="{x:Static res:Text.Enum_IdentityDocumentSource_Passport}" Style="{StaticResource H5_Blue}" FontAttributes="Bold" HorizontalOptions="CenterAndExpand" LineBreakMode="TailTruncation"></Label>
</VerticalStackLayout>
<Border.GestureRecognizers>
<TapGestureRecognizer Command="{Binding SelectPassportCommand}"/>
</Border.GestureRecognizers>
</Border>
<Border Grid.Row="0" Grid.Column="1" Style="{StaticResource LightGreyBorder}" HorizontalOptions="Fill" VerticalOptions="Fill" Padding="20,40,20,40">
<VerticalStackLayout Spacing="15">
<Image HeightRequest="70" WidthRequest="95" Source="id_card"/>
<Label Text="{x:Static res:Text.Enum_IdentityDocumentSource_IdentityCard}" Style="{StaticResource H5_Blue}" FontAttributes="Bold" HorizontalOptions="CenterAndExpand" LineBreakMode="TailTruncation"></Label>
</VerticalStackLayout>
<Border.GestureRecognizers>
<TapGestureRecognizer Command="{Binding SelectIdentityCardCommand}"/>
</Border.GestureRecognizers>
</Border>
<Border Grid.Row="1" Grid.Column="0" Style="{StaticResource LightGreyBorder}" HorizontalOptions="Fill" VerticalOptions="Fill" Padding="20,40,20,40">
<VerticalStackLayout Spacing="15">
<Image HeightRequest="70" WidthRequest="95" Source="driving_license"/>
<Label Text="{x:Static res:Text.Enum_IdentityDocumentSource_DrivingLicense}" Style="{StaticResource H5_Blue}" FontAttributes="Bold" HorizontalOptions="CenterAndExpand" LineBreakMode="TailTruncation"></Label>
</VerticalStackLayout>
<Border.GestureRecognizers>
<TapGestureRecognizer Command="{Binding SelectDrivingLicenseCommand}"/>
</Border.GestureRecognizers>
</Border>
<Border Grid.Row="1" Grid.Column="1" Style="{StaticResource LightGreyBorder}" HorizontalOptions="Fill" VerticalOptions="Fill" Padding="20,40,20,40">
<VerticalStackLayout Spacing="15">
<Image HeightRequest="70" WidthRequest="95" Source="residencycard"/>
<Label Text="{x:Static res:Text.Enum_IdentityDocumentSource_ResidencyCard}" Style="{StaticResource H5_Blue}" FontAttributes="Bold" HorizontalOptions="CenterAndExpand" LineBreakMode="TailTruncation"></Label>
</VerticalStackLayout>
<Border.GestureRecognizers>
<TapGestureRecognizer Command="{Binding SelectResidencyCardCommand}"/>
</Border.GestureRecognizers>
</Border>
</Grid>
</VerticalStackLayout>
<VerticalStackLayout HorizontalOptions="Fill" VerticalOptions="StartAndExpand" Spacing="0"
IsVisible="{Binding CurrentStep, Converter={StaticResource EnumToBoolConverter}, ConverterParameter={x:Static payment:IdentityStep.SelectDocuments}}">
<Grid ColumnDefinitions="25,50,25" HorizontalOptions="Center" ColumnSpacing="5" Margin="{StaticResource MarginMid}">
<Border Grid.Column="0" Style="{StaticResource LightBlue20Border}" HorizontalOptions="Fill" VerticalOptions="Fill" Padding="0" WidthRequest="25" HeightRequest="25">
<Label Text="1" Style="{StaticResource Menu_Blue}" HorizontalOptions="Center" VerticalOptions="Center"></Label>
</Border>
<Border Grid.Column="1" Style="{StaticResource Separator_LightBlue20}"></Border>
<Border Grid.Column="2" Style="{StaticResource DarkBlueBorder}" HorizontalOptions="Fill" VerticalOptions="Fill" Padding="0" WidthRequest="25" HeightRequest="25">
<Label Text="2" Style="{StaticResource Menu_White}" HorizontalOptions="Center" VerticalOptions="Center"></Label>
</Border>
</Grid>
<Label Text="{Binding SelectedSource, Converter={StaticResource EnumToTextConverter}}" HorizontalOptions="CenterAndExpand" Style="{StaticResource H2_Blue}" Margin="{StaticResource MarginVerySmall}"/>
<Label Text="{x:Static res:Text.Enum_IdentityDocumentSource_Passport_Desc}" HorizontalOptions="CenterAndExpand" Style="{StaticResource BodyM_GreyDark}" HorizontalTextAlignment="Center" Margin="{StaticResource MarginBig}"
IsVisible="{Binding SelectedSource, Converter={StaticResource EnumToBoolConverter}, ConverterParameter={x:Static common:IdentityDocumentSource.Passport}}"/>
<Label Text="{x:Static res:Text.Enum_IdentityDocumentSource_IdentityCard_Desc}" HorizontalOptions="CenterAndExpand" Style="{StaticResource BodyM_GreyDark}" HorizontalTextAlignment="Center" Margin="{StaticResource MarginBig}"
IsVisible="{Binding SelectedSource, Converter={StaticResource EnumToBoolConverter}, ConverterParameter={x:Static common:IdentityDocumentSource.IdentityCard}}"/>
<Label Text="{x:Static res:Text.Enum_IdentityDocumentSource_DrivingLicense_Desc}" HorizontalOptions="CenterAndExpand" Style="{StaticResource BodyM_GreyDark}" HorizontalTextAlignment="Center" Margin="{StaticResource MarginBig}"
IsVisible="{Binding SelectedSource, Converter={StaticResource EnumToBoolConverter}, ConverterParameter={x:Static common:IdentityDocumentSource.DrivingLicense}}"/>
<Label Text="{x:Static res:Text.Enum_IdentityDocumentSource_ResidencyCard_Desc}" HorizontalOptions="CenterAndExpand" Style="{StaticResource BodyM_GreyDark}" HorizontalTextAlignment="Center" Margin="{StaticResource MarginBig}"
IsVisible="{Binding SelectedSource, Converter={StaticResource EnumToBoolConverter}, ConverterParameter={x:Static common:IdentityDocumentSource.ResidencyCard}}"/>
<Border HorizontalOptions="Fill" VerticalOptions="Fill" Style="{StaticResource LightGreyBorder}" IsVisible="{Binding FrontRequired}" Margin="{StaticResource MarginSmall}">
<Grid RowDefinitions="Auto,Auto,Auto,Auto" ColumnDefinitions="*,*" HorizontalOptions="Fill" VerticalOptions="StartAndExpand" RowSpacing="12" ColumnSpacing="6">
<Label Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2" Text="{Binding SelectedSource, Converter={StaticResource EnumToTextConverter}}" Style="{StaticResource H5_Blue}" HorizontalOptions="CenterAndExpand" LineBreakMode="TailTruncation" Margin="{StaticResource MarginBig}"></Label>
<Image Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2" HeightRequest="75" Source="{Binding FileOneImageSource}" Margin="{StaticResource MarginBig}"></Image>
<Label Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="2" Text="{Binding FileOneName}" Style="{StaticResource BodyCaption_GreyDark}" HorizontalOptions="CenterAndExpand" LineBreakMode="TailTruncation"></Label>
<Button Grid.Row="3" Grid.Column="0" Text="{x:Static res:Text.Button_SelectFile}" HorizontalOptions="Fill" Style="{StaticResource SecondaryButton}" Background="{StaticResource Grey_Light}" Command="{Binding SelectFileOneCommand}"></Button>
<Button Grid.Row="3" Grid.Column="1" Text="{x:Static res:Text.Button_TakePicture}" HorizontalOptions="Fill" Style="{StaticResource SecondaryButton}" Background="{StaticResource Grey_Light}" Command="{Binding PhotoFileOneCommand}"></Button>
<Image Grid.Row="0" Grid.Column="0" Grid.RowSpan="4" Grid.ColumnSpan="2" HorizontalOptions="End" VerticalOptions="Start" HeightRequest="30" IsVisible="{Binding FileOneValid}" >
<Image.Source>
<FontImageSource Glyph="{x:Static i:IconsMoon.Icon_Check}" FontFamily="IconMoon" Color="{StaticResource Primary_DarkBlue}"></FontImageSource>
</Image.Source>
</Image>
</Grid>
</Border>
<Border HorizontalOptions="Fill" VerticalOptions="Fill" Style="{StaticResource LightGreyBorder}" IsVisible="{Binding BackRequired}">
<Grid RowDefinitions="Auto,Auto,Auto,Auto" ColumnDefinitions="*,*" HorizontalOptions="Fill" VerticalOptions="StartAndExpand" RowSpacing="12" ColumnSpacing="6">
<Label Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2" Text="{Binding SelectedSource, Converter={StaticResource EnumToTextConverter}}" Style="{StaticResource H5_Blue}" HorizontalOptions="CenterAndExpand" LineBreakMode="TailTruncation" Margin="{StaticResource MarginBig}"></Label>
<Image Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2" HeightRequest="75" Source="{Binding FileTwoImageSource}" Margin="{StaticResource MarginBig}"></Image>
<Label Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="2" Text="{Binding FileTwoName}" Style="{StaticResource BodyCaption_GreyDark}" HorizontalOptions="CenterAndExpand" LineBreakMode="TailTruncation"></Label>
<Button Grid.Row="3" Grid.Column="0" Text="{x:Static res:Text.Button_SelectFile}" HorizontalOptions="Fill" Style="{StaticResource SecondaryButton}" Background="{StaticResource Grey_Light}" Command="{Binding SelectFileTwoCommand}"></Button>
<Button Grid.Row="3" Grid.Column="1" Text="{x:Static res:Text.Button_TakePicture}" HorizontalOptions="Fill" Style="{StaticResource SecondaryButton}" Background="{StaticResource Grey_Light}" Command="{Binding PhotoFileTwoCommand}"></Button>
<Image Grid.Row="0" Grid.Column="0" Grid.RowSpan="4" Grid.ColumnSpan="2" HorizontalOptions="End" VerticalOptions="Start" HeightRequest="30" IsVisible="{Binding FileTwoValid}" >
<Image.Source>
<FontImageSource Glyph="{x:Static i:IconsMoon.Icon_Check}" FontFamily="IconMoon" Color="{StaticResource Primary_DarkBlue}"></FontImageSource>
</Image.Source>
</Image>
</Grid>
</Border>
<ActivityIndicator IsRunning="{Binding IsSaving}" IsVisible="{Binding IsSaving}" HorizontalOptions="Center" VerticalOptions="Center" Scale="1"/>
<Button Text="{x:Static res:Text.Button_Send}" Command="{Binding SendCommand}" Margin="0,32,0,0">
<Button.IsEnabled>
<MultiBinding Converter="{StaticResource AllTrueMultiConverter}">
<Binding Path="FileOneValid"></Binding>
<Binding Path="FileTwoValid"></Binding>
<Binding Path="IsNotBusy"></Binding>
</MultiBinding>
</Button.IsEnabled>
</Button>
</VerticalStackLayout>
</VerticalStackLayout>
</ScrollView>
</ContentPage.Content>
</controls:BaseContentPage>