Register-Login

main
unknown 6 months ago
parent f1c836480e
commit a8c14f471d
  1. 6
      App.xaml.cs
  2. 9
      AppShell.xaml
  3. 4
      Helpers/DatabaseHelper.cs
  4. 16
      Justice.csproj
  5. 9
      Justice.csproj.user
  6. 3
      Justice.sln
  7. 16
      Models/User.cs
  8. 43
      Views/AuthorityDashboardPage.xaml
  9. 9
      Views/AuthorityDashboardPage.xaml.cs
  10. 2
      Views/DashboardPage.xaml
  11. 14
      Views/LoginPage.xaml
  12. 55
      Views/LoginPage.xaml.cs
  13. 24
      Views/RegistrationPage.xaml
  14. 53
      Views/RegistrationPage.xaml.cs
  15. BIN
      bin/Debug/net9.0-android/Justice.dll
  16. BIN
      bin/Debug/net9.0-android/Justice.pdb
  17. 1
      bin/Debug/net9.0-android/Justice.runtimeconfig.json
  18. BIN
      bin/Debug/net9.0-android/com.companyname.justice-Signed.apk
  19. BIN
      bin/Debug/net9.0-android/com.companyname.justice-Signed.apk.idsig
  20. BIN
      bin/Debug/net9.0-android/com.companyname.justice.apk
  21. BIN
      bin/Debug/net9.0-ios/iossimulator-x64/Azure.Core.dll
  22. BIN
      bin/Debug/net9.0-ios/iossimulator-x64/Azure.Identity.dll
  23. BIN
      bin/Debug/net9.0-ios/iossimulator-x64/BCrypt.Net-Next.dll
  24. BIN
      bin/Debug/net9.0-ios/iossimulator-x64/Humanizer.dll
  25. BIN
      bin/Debug/net9.0-ios/iossimulator-x64/Justice.dll
  26. BIN
      bin/Debug/net9.0-ios/iossimulator-x64/Justice.pdb
  27. 2
      bin/Debug/net9.0-ios/iossimulator-x64/Justice.runtimeconfig.json
  28. BIN
      bin/Debug/net9.0-ios/iossimulator-x64/Microsoft.Bcl.AsyncInterfaces.dll
  29. BIN
      bin/Debug/net9.0-ios/iossimulator-x64/Microsoft.Build.Locator.dll
  30. BIN
      bin/Debug/net9.0-ios/iossimulator-x64/Microsoft.CodeAnalysis.CSharp.Workspaces.dll
  31. BIN
      bin/Debug/net9.0-ios/iossimulator-x64/Microsoft.CodeAnalysis.CSharp.dll
  32. BIN
      bin/Debug/net9.0-ios/iossimulator-x64/Microsoft.CodeAnalysis.Workspaces.MSBuild.BuildHost.dll
  33. BIN
      bin/Debug/net9.0-ios/iossimulator-x64/Microsoft.CodeAnalysis.Workspaces.MSBuild.dll
  34. BIN
      bin/Debug/net9.0-ios/iossimulator-x64/Microsoft.CodeAnalysis.Workspaces.dll
  35. BIN
      bin/Debug/net9.0-ios/iossimulator-x64/Microsoft.CodeAnalysis.dll
  36. BIN
      bin/Debug/net9.0-ios/iossimulator-x64/Microsoft.Data.SqlClient.dll
  37. BIN
      bin/Debug/net9.0-ios/iossimulator-x64/Microsoft.EntityFrameworkCore.Abstractions.dll
  38. BIN
      bin/Debug/net9.0-ios/iossimulator-x64/Microsoft.EntityFrameworkCore.Design.dll
  39. BIN
      bin/Debug/net9.0-ios/iossimulator-x64/Microsoft.EntityFrameworkCore.Relational.dll
  40. BIN
      bin/Debug/net9.0-ios/iossimulator-x64/Microsoft.EntityFrameworkCore.SqlServer.dll
  41. BIN
      bin/Debug/net9.0-ios/iossimulator-x64/Microsoft.EntityFrameworkCore.dll
  42. BIN
      bin/Debug/net9.0-ios/iossimulator-x64/Microsoft.Extensions.Caching.Abstractions.dll
  43. BIN
      bin/Debug/net9.0-ios/iossimulator-x64/Microsoft.Extensions.Caching.Memory.dll
  44. BIN
      bin/Debug/net9.0-ios/iossimulator-x64/Microsoft.Extensions.DependencyModel.dll
  45. BIN
      bin/Debug/net9.0-ios/iossimulator-x64/Microsoft.Identity.Client.Extensions.Msal.dll
  46. BIN
      bin/Debug/net9.0-ios/iossimulator-x64/Microsoft.Identity.Client.dll
  47. BIN
      bin/Debug/net9.0-ios/iossimulator-x64/Microsoft.IdentityModel.Abstractions.dll
  48. BIN
      bin/Debug/net9.0-ios/iossimulator-x64/Microsoft.IdentityModel.JsonWebTokens.dll
  49. BIN
      bin/Debug/net9.0-ios/iossimulator-x64/Microsoft.IdentityModel.Logging.dll
  50. BIN
      bin/Debug/net9.0-ios/iossimulator-x64/Microsoft.IdentityModel.Protocols.OpenIdConnect.dll
  51. BIN
      bin/Debug/net9.0-ios/iossimulator-x64/Microsoft.IdentityModel.Protocols.dll
  52. BIN
      bin/Debug/net9.0-ios/iossimulator-x64/Microsoft.IdentityModel.Tokens.dll
  53. BIN
      bin/Debug/net9.0-ios/iossimulator-x64/Microsoft.SqlServer.Server.dll
  54. BIN
      bin/Debug/net9.0-ios/iossimulator-x64/Microsoft.Win32.SystemEvents.dll
  55. BIN
      bin/Debug/net9.0-ios/iossimulator-x64/Mono.TextTemplating.dll
  56. BIN
      bin/Debug/net9.0-ios/iossimulator-x64/System.ClientModel.dll
  57. BIN
      bin/Debug/net9.0-ios/iossimulator-x64/System.CodeDom.dll
  58. BIN
      bin/Debug/net9.0-ios/iossimulator-x64/System.Composition.AttributedModel.dll
  59. BIN
      bin/Debug/net9.0-ios/iossimulator-x64/System.Composition.Convention.dll
  60. BIN
      bin/Debug/net9.0-ios/iossimulator-x64/System.Composition.Hosting.dll
  61. BIN
      bin/Debug/net9.0-ios/iossimulator-x64/System.Composition.Runtime.dll
  62. BIN
      bin/Debug/net9.0-ios/iossimulator-x64/System.Composition.TypedParts.dll
  63. BIN
      bin/Debug/net9.0-ios/iossimulator-x64/System.Configuration.ConfigurationManager.dll
  64. BIN
      bin/Debug/net9.0-ios/iossimulator-x64/System.Drawing.Common.dll
  65. BIN
      bin/Debug/net9.0-ios/iossimulator-x64/System.IdentityModel.Tokens.Jwt.dll
  66. BIN
      bin/Debug/net9.0-ios/iossimulator-x64/System.Memory.Data.dll
  67. BIN
      bin/Debug/net9.0-ios/iossimulator-x64/System.Runtime.Caching.dll
  68. BIN
      bin/Debug/net9.0-ios/iossimulator-x64/System.Security.Cryptography.ProtectedData.dll
  69. BIN
      bin/Debug/net9.0-ios/iossimulator-x64/System.Security.Permissions.dll
  70. BIN
      bin/Debug/net9.0-ios/iossimulator-x64/System.Windows.Extensions.dll
  71. BIN
      bin/Debug/net9.0-ios/iossimulator-x64/cs/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll
  72. BIN
      bin/Debug/net9.0-ios/iossimulator-x64/cs/Microsoft.CodeAnalysis.CSharp.resources.dll
  73. BIN
      bin/Debug/net9.0-ios/iossimulator-x64/cs/Microsoft.CodeAnalysis.Workspaces.MSBuild.BuildHost.resources.dll
  74. BIN
      bin/Debug/net9.0-ios/iossimulator-x64/cs/Microsoft.CodeAnalysis.Workspaces.resources.dll
  75. BIN
      bin/Debug/net9.0-ios/iossimulator-x64/cs/Microsoft.CodeAnalysis.resources.dll
  76. BIN
      bin/Debug/net9.0-ios/iossimulator-x64/de/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll
  77. BIN
      bin/Debug/net9.0-ios/iossimulator-x64/de/Microsoft.CodeAnalysis.CSharp.resources.dll
  78. BIN
      bin/Debug/net9.0-ios/iossimulator-x64/de/Microsoft.CodeAnalysis.Workspaces.MSBuild.BuildHost.resources.dll
  79. BIN
      bin/Debug/net9.0-ios/iossimulator-x64/de/Microsoft.CodeAnalysis.Workspaces.resources.dll
  80. BIN
      bin/Debug/net9.0-ios/iossimulator-x64/de/Microsoft.CodeAnalysis.resources.dll
  81. BIN
      bin/Debug/net9.0-ios/iossimulator-x64/es/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll
  82. BIN
      bin/Debug/net9.0-ios/iossimulator-x64/es/Microsoft.CodeAnalysis.CSharp.resources.dll
  83. BIN
      bin/Debug/net9.0-ios/iossimulator-x64/es/Microsoft.CodeAnalysis.Workspaces.MSBuild.BuildHost.resources.dll
  84. BIN
      bin/Debug/net9.0-ios/iossimulator-x64/es/Microsoft.CodeAnalysis.Workspaces.resources.dll
  85. BIN
      bin/Debug/net9.0-ios/iossimulator-x64/es/Microsoft.CodeAnalysis.resources.dll
  86. BIN
      bin/Debug/net9.0-ios/iossimulator-x64/fr/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll
  87. BIN
      bin/Debug/net9.0-ios/iossimulator-x64/fr/Microsoft.CodeAnalysis.CSharp.resources.dll
  88. BIN
      bin/Debug/net9.0-ios/iossimulator-x64/fr/Microsoft.CodeAnalysis.Workspaces.MSBuild.BuildHost.resources.dll
  89. BIN
      bin/Debug/net9.0-ios/iossimulator-x64/fr/Microsoft.CodeAnalysis.Workspaces.resources.dll
  90. BIN
      bin/Debug/net9.0-ios/iossimulator-x64/fr/Microsoft.CodeAnalysis.resources.dll
  91. BIN
      bin/Debug/net9.0-ios/iossimulator-x64/it/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll
  92. BIN
      bin/Debug/net9.0-ios/iossimulator-x64/it/Microsoft.CodeAnalysis.CSharp.resources.dll
  93. BIN
      bin/Debug/net9.0-ios/iossimulator-x64/it/Microsoft.CodeAnalysis.Workspaces.MSBuild.BuildHost.resources.dll
  94. BIN
      bin/Debug/net9.0-ios/iossimulator-x64/it/Microsoft.CodeAnalysis.Workspaces.resources.dll
  95. BIN
      bin/Debug/net9.0-ios/iossimulator-x64/it/Microsoft.CodeAnalysis.resources.dll
  96. BIN
      bin/Debug/net9.0-ios/iossimulator-x64/ja/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll
  97. BIN
      bin/Debug/net9.0-ios/iossimulator-x64/ja/Microsoft.CodeAnalysis.CSharp.resources.dll
  98. BIN
      bin/Debug/net9.0-ios/iossimulator-x64/ja/Microsoft.CodeAnalysis.Workspaces.MSBuild.BuildHost.resources.dll
  99. BIN
      bin/Debug/net9.0-ios/iossimulator-x64/ja/Microsoft.CodeAnalysis.Workspaces.resources.dll
  100. BIN
      bin/Debug/net9.0-ios/iossimulator-x64/ja/Microsoft.CodeAnalysis.resources.dll
  101. Some files were not shown because too many files have changed in this diff Show More

@ -8,7 +8,8 @@ namespace Justice
public App()
{
InitializeComponent();
InitializeDatabaseAsync(); // Call the async method to initialize the database
InitializeDatabaseAsync();
// Call the async method to initialize the database
}
private async void InitializeDatabaseAsync()
@ -17,7 +18,8 @@ namespace Justice
{
var dbHelper = new DatabaseHelper();
await dbHelper.InitializeAsync<EmergencyContact>();
await dbHelper.InitializeAsync<IncidentReport>();// Asynchronously create the EmergencyContact table
await dbHelper.InitializeAsync<IncidentReport>();
await dbHelper.InitializeAsync<User>();// Asynchronously create the EmergencyContact table
}
catch (Exception ex)
{

@ -3,12 +3,11 @@
x:Class="Justice.AppShell"
xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:Justice"
xmlns:views="clr-namespace:Justice.Views"
Shell.FlyoutBehavior="Flyout"
Title="Justice">
<ShellContent
Title="Home"
ContentTemplate="{DataTemplate local:Views.DashboardPage}"
Route="Views.DashboardPage" />
<ShellContent Title="Login" ContentTemplate="{DataTemplate views:LoginPage}" />
<ShellContent Title="Register" ContentTemplate="{DataTemplate views:RegistrationPage}" />
<ShellContent Title="Home" ContentTemplate="{DataTemplate views:DashboardPage}" Route="DashboardPage" />
</Shell>

@ -36,5 +36,9 @@ namespace Justice.Helpers
{
return await _database.DeleteAsync(item);
}
public async Task<T> FindAsync<T>(string query, params object[] args) where T : new()
{
return await _database.FindWithQueryAsync<T>(query, args);
}
}
}

@ -60,7 +60,14 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="BCrypt.Net-Next" Version="4.0.3" />
<PackageReference Include="MailKit" Version="4.9.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="9.0.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="9.0.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="9.0.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Microsoft.Maui.Controls" Version="9.0.22" />
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="9.0.0" />
<PackageReference Include="Microsoft.Maui.Maps" Version="9.0.22" />
@ -75,6 +82,9 @@
<MauiXaml Update="Views\AddContactPage.xaml">
<Generator>MSBuild:Compile</Generator>
</MauiXaml>
<MauiXaml Update="Views\AuthorityDashboardPage.xaml">
<Generator>MSBuild:Compile</Generator>
</MauiXaml>
<MauiXaml Update="Views\DashboardPage.xaml">
<Generator>MSBuild:Compile</Generator>
</MauiXaml>
@ -90,6 +100,12 @@
<MauiXaml Update="Views\InformationCenterPage.xaml">
<Generator>MSBuild:Compile</Generator>
</MauiXaml>
<MauiXaml Update="Views\LoginPage.xaml">
<Generator>MSBuild:Compile</Generator>
</MauiXaml>
<MauiXaml Update="Views\RegistrationPage.xaml">
<Generator>MSBuild:Compile</Generator>
</MauiXaml>
<MauiXaml Update="Views\SosPage.xaml">
<Generator>MSBuild:Compile</Generator>
</MauiXaml>

@ -14,6 +14,9 @@
<MauiXaml Update="Views\AddContactPage.xaml">
<SubType>Designer</SubType>
</MauiXaml>
<MauiXaml Update="Views\AuthorityDashboardPage.xaml">
<SubType>Designer</SubType>
</MauiXaml>
<MauiXaml Update="Views\DashboardPage.xaml">
<SubType>Designer</SubType>
</MauiXaml>
@ -29,6 +32,12 @@
<MauiXaml Update="Views\InformationCenterPage.xaml">
<SubType>Designer</SubType>
</MauiXaml>
<MauiXaml Update="Views\LoginPage.xaml">
<SubType>Designer</SubType>
</MauiXaml>
<MauiXaml Update="Views\RegistrationPage.xaml">
<SubType>Designer</SubType>
</MauiXaml>
<MauiXaml Update="Views\SosPage.xaml">
<SubType>Designer</SubType>
</MauiXaml>

@ -1,7 +1,7 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.12.35527.113 d17.12
VisualStudioVersion = 17.12.35527.113
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Justice", "Justice.csproj", "{C9C0819F-18B1-47E3-B27A-1992686E61D1}"
EndProject
@ -13,6 +13,7 @@ Global
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{C9C0819F-18B1-47E3-B27A-1992686E61D1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C9C0819F-18B1-47E3-B27A-1992686E61D1}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C9C0819F-18B1-47E3-B27A-1992686E61D1}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
{C9C0819F-18B1-47E3-B27A-1992686E61D1}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C9C0819F-18B1-47E3-B27A-1992686E61D1}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection

@ -8,19 +8,15 @@ namespace Justice.Models
{
public class User
{
public string Name { get; set; }
public string MobileNumber { get; set; }
public string Address { get; set; }
public string NationalIdentityNumber { get; set; }
public string NationalIdPath { get; set; }
public string Email { get; set; }
public int Id { get; set; }
public string Username { get; set; }
public string Password { get; set; }
public string Role { get; set; }
public string AuthorityType { get; set; }
}
public class AuthorityUser : User
{
public string AuthorityCategory { get; set; }
public string IncidentCategory { get; set; }
public double Longitude { get; set; }
public double Latitude { get; set; }
}
}

@ -0,0 +1,43 @@
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="Justice.Views.AuthorityDashboardPage"
Title="Authority Dashboard">
<StackLayout Padding="20">
<!-- Dashboard Header -->
<Label Text="Authority Dashboard"
FontSize="Large"
HorizontalOptions="Center"
FontAttributes="Bold" />
<!-- Section: Reports List -->
<Label Text="Reports Submitted by Users"
FontSize="Medium"
FontAttributes="Bold"
Margin="0,20,0,10" />
<ListView x:Name="ReportsListView"
HasUnevenRows="True">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<StackLayout Padding="10">
<Label Text="{Binding IncidentType}"
FontSize="Medium"
FontAttributes="Bold" />
<Label Text="{Binding Address}"
FontSize="Small"
TextColor="Gray" />
<Label Text="{Binding DateTime, StringFormat='Reported on: {0:MMM dd, yyyy HH:mm}'}"
FontSize="Small" />
<Label Text="{Binding Description}"
FontSize="Small" />
<Button Text="Mark as Solved"
CommandParameter="{Binding .}" />
</StackLayout>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</StackLayout>
</ContentPage>

@ -0,0 +1,9 @@
namespace Justice.Views;
public partial class AuthorityDashboardPage : ContentPage
{
public AuthorityDashboardPage()
{
InitializeComponent();
}
}

@ -101,8 +101,6 @@
</VerticalStackLayout>
</Border>
</Grid>
<Grid RowSpacing="15" ColumnSpacing="15" Padding="10">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>

@ -0,0 +1,14 @@
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="Justice.Views.LoginPage"
Title="Login">
<StackLayout Padding="20">
<Label Text="Login" FontSize="Large" HorizontalOptions="Center" />
<Entry x:Name="UsernameEntry" Placeholder="Username" />
<Entry x:Name="PasswordEntry" Placeholder="Password" IsPassword="True" />
<Button Text="Login" Clicked="OnLoginClicked" />
</StackLayout>
</ContentPage>

@ -0,0 +1,55 @@
using Justice.Helpers;
using Justice.Models;
using Org.BouncyCastle.Crypto.Generators;
using System;
using BCrypt.Net;
namespace Justice.Views
{
public partial class LoginPage : ContentPage
{
private readonly DatabaseHelper _dbHelper;
public LoginPage()
{
InitializeComponent();
_dbHelper = new DatabaseHelper();
}
private async void OnLoginClicked(object sender, EventArgs e)
{
if (string.IsNullOrWhiteSpace(UsernameEntry.Text) || string.IsNullOrWhiteSpace(PasswordEntry.Text))
{
await DisplayAlert("Error", "Username and password are required.", "OK");
return;
}
try
{
var user = await _dbHelper.FindAsync<User>("SELECT * FROM User WHERE Username = ?", UsernameEntry.Text.Trim());
if (user == null || !BCrypt.Net.BCrypt.Verify(PasswordEntry.Text.Trim(), user.Password))
{
await DisplayAlert("Error", "Invalid username or password.", "OK");
return;
}
await DisplayAlert("Success", $"Welcome {user.Username}!", "OK");
// Navigate based on role
if (user.Role == "EndUser")
{
await Navigation.PushAsync(new DashboardPage());
}
else if (user.Role == "AuthorityUser")
{
await Navigation.PushAsync(new AuthorityDashboardPage());
}
}
catch (Exception ex)
{
await DisplayAlert("Error", $"Failed to login: {ex.Message}", "OK");
}
}
}
}

@ -0,0 +1,24 @@
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="Justice.Views.RegistrationPage"
Title="Register">
<StackLayout Padding="20">
<Label Text="Register" FontSize="Large" HorizontalOptions="Center" />
<Entry x:Name="UsernameEntry" Placeholder="Username" />
<Entry x:Name="PasswordEntry" Placeholder="Password" IsPassword="True" />
<Picker x:Name="RolePicker" Title="Select Role">
<Picker.ItemsSource>
<x:Array Type="{x:Type x:String}">
<x:String>EndUser</x:String>
<x:String>AuthorityUser</x:String>
</x:Array>
</Picker.ItemsSource>
</Picker>
<Entry x:Name="AuthorityTypeEntry" Placeholder="Authority Type (Optional)" IsVisible="False" />
<Button Text="Register" Clicked="OnRegisterClicked" />
</StackLayout>
</ContentPage>

@ -0,0 +1,53 @@
using Justice.Helpers;
using Justice.Models;
using Org.BouncyCastle.Crypto.Generators;
using System;
namespace Justice.Views
{
public partial class RegistrationPage : ContentPage
{
private readonly DatabaseHelper _dbHelper;
public RegistrationPage()
{
InitializeComponent();
_dbHelper = new DatabaseHelper();
RolePicker.SelectedIndexChanged += (s, e) =>
{
AuthorityTypeEntry.IsVisible = RolePicker.SelectedItem?.ToString() == "AuthorityUser";
};
}
private async void OnRegisterClicked(object sender, EventArgs e)
{
if (string.IsNullOrWhiteSpace(UsernameEntry.Text) || string.IsNullOrWhiteSpace(PasswordEntry.Text) || RolePicker.SelectedItem == null)
{
await DisplayAlert("Error", "All fields are required.", "OK");
return;
}
var hashedPassword = BCrypt.Net.BCrypt.HashPassword(PasswordEntry.Text.Trim());
var user = new User
{
Username = UsernameEntry.Text.Trim(),
Password = hashedPassword,
Role = RolePicker.SelectedItem.ToString(),
AuthorityType = AuthorityTypeEntry.IsVisible ? AuthorityTypeEntry.Text.Trim() : null
};
try
{
await _dbHelper.InitializeAsync<User>();
await _dbHelper.InsertAsync(user);
await DisplayAlert("Success", "User registered successfully.", "OK");
await Navigation.PopAsync();
}
catch (Exception ex)
{
await DisplayAlert("Error", $"Failed to register: {ex.Message}", "OK");
}
}
}
}

@ -19,6 +19,7 @@
"System.Globalization.Invariant": false,
"System.Net.Http.EnableActivityPropagation": false,
"System.Net.Http.UseNativeHttpHandler": true,
"System.Reflection.NullabilityInfoContext.IsSupported": true,
"System.Runtime.InteropServices.BuiltInComInterop.IsSupported": false,
"System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false,
"System.StartupHookProvider.IsSupported": false,

@ -22,7 +22,7 @@
"System.Globalization.Hybrid": true,
"System.Net.Http.EnableActivityPropagation": false,
"System.Net.Http.UseNativeHttpHandler": true,
"System.Reflection.NullabilityInfoContext.IsSupported": false,
"System.Reflection.NullabilityInfoContext.IsSupported": true,
"System.Resources.ResourceManager.AllowCustomResourceTypes": false,
"System.Resources.UseSystemResourceKeys": false,
"System.Runtime.InteropServices.BuiltInComInterop.IsSupported": false,

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save