diff --git a/sample/DemoAPI/Program.cs b/sample/DemoAPI/Program.cs index b2c364c..59c4da9 100644 --- a/sample/DemoAPI/Program.cs +++ b/sample/DemoAPI/Program.cs @@ -1,7 +1,8 @@ +using System.Diagnostics; using AvantiPoint.MobileAuth; -using AvantiPoint.MobileAuth.Authentication; using DemoAPI.Data; using Microsoft.EntityFrameworkCore; +using Microsoft.OpenApi.Models; var builder = WebApplication.CreateBuilder(args); @@ -18,7 +19,23 @@ // Add services to the container. // Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle builder.Services.AddEndpointsApiExplorer(); -builder.Services.AddSwaggerGen(); +var versionInfo = FileVersionInfo.GetVersionInfo(typeof(MobileAuth).Assembly.Location); +var version = $"{versionInfo.FileMajorPart}.{versionInfo.ProductMinorPart}.{versionInfo.ProductBuildPart}"; +builder.Services.AddSwaggerGen(c => +{ + c.SwaggerDoc($"v1", new OpenApiInfo + { + Title = "Mobile Auth - Demo", + Contact = new OpenApiContact + { + Name = "AvantiPoint", + Email = "hello@avantipoint.com", + Url = new Uri("https://avantipoint.com") + }, + Description = "This is a demo api for the AvantiPoint Mobile Auth library. Do not use this API for production. For more information please visit https://github.com/avantipoint/mobileauth-lib", + Version = version + }); +}); var app = builder.Build(); @@ -26,7 +43,10 @@ app.UseHttpsRedirection(); app.UseSwagger(); -app.UseSwaggerUI(); +app.UseSwaggerUI(o => +{ + o.InjectStylesheet("https://cdn.avantipoint.com/theme/swagger/style.css"); +}); app.UseAuthentication(); app.UseAuthorization(); diff --git a/sample/DemoMobileApp/DemoMobileApp.csproj b/sample/DemoMobileApp/DemoMobileApp.csproj index 0246ebd..bcbf8c5 100644 --- a/sample/DemoMobileApp/DemoMobileApp.csproj +++ b/sample/DemoMobileApp/DemoMobileApp.csproj @@ -50,6 +50,7 @@ + diff --git a/sample/DemoMobileApp/MainPage.xaml b/sample/DemoMobileApp/MainPage.xaml index 1de6454..3252d94 100644 --- a/sample/DemoMobileApp/MainPage.xaml +++ b/sample/DemoMobileApp/MainPage.xaml @@ -3,6 +3,7 @@ xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" xmlns:vm="clr-namespace:DemoMobileApp.ViewModels" xmlns:converter="clr-namespace:DemoMobileApp.Converters" + xmlns:toolkit="http://schemas.microsoft.com/dotnet/2022/maui/toolkit" x:DataType="vm:MainPageViewModel" x:Class="DemoMobileApp.MainPage"> @@ -35,10 +36,14 @@ - + Margin="0,15,0,20"> + + + + diff --git a/sample/DemoMobileApp/MauiProgram.cs b/sample/DemoMobileApp/MauiProgram.cs index 1f22cf7..d2ac26a 100644 --- a/sample/DemoMobileApp/MauiProgram.cs +++ b/sample/DemoMobileApp/MauiProgram.cs @@ -1,3 +1,4 @@ +using CommunityToolkit.Maui; using DemoMobileApp.Services; using DemoMobileApp.ViewModels; using Refit; @@ -19,6 +20,7 @@ public static MauiApp CreateMauiApp() .UseMauiMicroMvvm( "Resources/Styles/Colors.xaml", "Resources/Styles/Styles.xaml") + .UseMauiCommunityToolkit() .ConfigureFonts(fonts => { fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular"); diff --git a/sample/DemoMobileApp/ViewModels/MainPageViewModel.cs b/sample/DemoMobileApp/ViewModels/MainPageViewModel.cs index 5e4b11a..11e1bea 100644 --- a/sample/DemoMobileApp/ViewModels/MainPageViewModel.cs +++ b/sample/DemoMobileApp/ViewModels/MainPageViewModel.cs @@ -23,6 +23,12 @@ public MainPageViewModel(ViewModelContext context, ISecureStorage storage, IWebA public ObservableCollection Claims { get; } + public string Email + { + get => Get(); + set => Set(value); + } + public Command LoginCommand { get; } private async void OnLoginCommandExecuted(string scheme) @@ -44,6 +50,9 @@ private async void OnLoginCommandExecuted(string scheme) var claims = response.Content.Select(x => $"{x.Key}: {x.Value}"); foreach (var claim in claims) Claims.Add(claim); + + if (response.Content.TryGetValue("email", out var email)) + Email = email; } } catch (Exception ex)