From d1832bc794c0e78abe47ec9f614e4fa3ad88f4a4 Mon Sep 17 00:00:00 2001 From: Dennis Brentjes Date: Tue, 3 Jun 2025 19:50:43 +0200 Subject: [PATCH] Last cleanup --- .gitignore | 1 + FrontendAvalonia/.gitignore | 454 - FrontendAvalonia/App.axaml | 8 - FrontendAvalonia/App.axaml.cs | 23 - FrontendAvalonia/Directory.Build.props | 6 - .../FrontendAvalonia.Android.csproj | 27 - .../FrontendAvalonia.Android/Icon.png | Bin 14349 -> 0 bytes .../FrontendAvalonia.Android/MainActivity.cs | 10 - .../Properties/AndroidManifest.xml | 5 - .../Resources/drawable/splash_screen.xml | 13 - .../Resources/values-night/colors.xml | 4 - .../Resources/values/colors.xml | 4 - .../Resources/values/styles.xml | 17 - .../SplashActivity.cs | 32 - .../AppBundle/Logo.svg | 5 - .../AppBundle/app.css | 74 - .../AppBundle/favicon.ico | Bin 176111 -> 0 bytes .../AppBundle/index.html | 30 - .../AppBundle/main.js | 13 - .../FrontendAvalonia.Browser.csproj | 20 - .../FrontendAvalonia.Browser/Program.cs | 19 - .../Properties/launchSettings.json | 13 - .../runtimeconfig.template.json | 11 - .../.avalonia-build-tasks/id | 1 - .../FrontendAvalonia.Desktop.csproj | 24 - .../FrontendAvalonia.Desktop/Program.cs | 23 - .../Properties/launchSettings.json | 11 - .../FrontendAvalonia.Desktop/app.manifest | 18 - FrontendAvalonia/FrontendAvalonia.csproj | 22 - .../FrontendAvalonia.iOS/AppDelegate.cs | 23 - .../FrontendAvalonia.iOS/Entitlements.plist | 5 - .../FrontendAvalonia.iOS.csproj | 22 - .../FrontendAvalonia.iOS/Info.plist | 47 - FrontendAvalonia/FrontendAvalonia.iOS/Main.cs | 14 - .../Resources/LaunchScreen.xib | 43 - FrontendAvalonia/FrontendAvalonia.sln | 54 - .../FrontendAvalonia/.avalonia-build-tasks/id | 1 - FrontendAvalonia/FrontendAvalonia/App.axaml | 28 - .../FrontendAvalonia/App.axaml.cs | 71 - .../FrontendAvalonia/Assets/avalonia-logo.ico | Bin 176111 -> 0 bytes .../Extensions/SplatExtensions.cs | 22 - .../FrontendAvalonia/FrontendAvalonia.csproj | 47 - .../FrontendAvalonia/Models/GamenightModel.cs | 16 - .../Services/GamenightApi/Gamenight.cs | 240 - .../Services/GamenightApi/Gamenight.yaml | 224 - .../FrontendAvalonia/ViewLocator.cs | 22 - .../ViewModels/AddGamenightViewModel.cs | 86 - .../ViewModels/GamenightsViewModel.cs | 44 - .../ViewModels/LoginViewModel.cs | 37 - .../ViewModels/MainScreenViewModel.cs | 8 - .../ViewModels/MainViewModel.cs | 92 - .../ViewModels/MenuItemViewModel.cs | 14 - .../ViewModels/PageViewModelBase.cs | 16 - .../ViewModels/ViewModelBase.cs | 8 - .../FrontendAvalonia/Views/AddGamenight.axaml | 26 - .../Views/AddGamenight.axaml.cs | 12 - .../Views/GamenightsView.axaml | 16 - .../Views/GamenightsView.axaml.cs | 14 - .../FrontendAvalonia/Views/LoginView.axaml | 19 - .../FrontendAvalonia/Views/LoginView.axaml.cs | 14 - .../FrontendAvalonia/Views/MainView.axaml | 47 - .../FrontendAvalonia/Views/MainView.axaml.cs | 14 - .../FrontendAvalonia/Views/MainWindow.axaml | 12 - .../Views/MainWindow.axaml.cs | 11 - FrontendAvalonia/MainWindow.axaml | 9 - FrontendAvalonia/MainWindow.axaml.cs | 11 - FrontendAvalonia/Program.cs | 20 - FrontendAvalonia/app.manifest | 18 - FrontendPlatformUno/.gitignore | 3 - FrontendPlatformUno/.vsconfig | 38 - FrontendPlatformUno/Directory.Build.props | 59 - FrontendPlatformUno/Directory.Build.targets | 2 - .../FrontendPlatformUno.Base/AppHead.xaml | 17 - .../FrontendPlatformUno.Base/AppHead.xaml.cs | 14 - .../Icons/appconfig.svg | 137 - .../Icons/iconapp.svg | 42 - .../Splash/splash_screen.svg | 137 - .../FrontendPlatformUno.Base/base.props | 25 - .../FrontendPlatformUno.DataContracts.csproj | 8 - .../Serialization/WeatherForecastContext.cs | 22 - .../WeatherForecast.cs | 16 - .../Android/AndroidManifest.xml | 4 - .../Android/Assets/AboutAssets.txt | 22 - .../Android/Main.Android.cs | 43 - .../Android/MainActivity.Android.cs | 17 - .../Android/Resources/AboutResources.txt | 47 - .../Android/Resources/values/Strings.xml | 5 - .../Android/Resources/values/Styles.xml | 23 - .../Android/environment.conf | 2 - .../FrontendPlatformUno.Mobile.csproj | 82 - .../FrontendPlatformUno.Mobile.csproj.user | 15 - .../MacCatalyst/Entitlements.plist | 6 - .../MacCatalyst/Info.plist | 29 - .../MacCatalyst/Main.maccatalyst.cs | 15 - .../LaunchImages.launchimage/Contents.json | 58 - .../iOS/Entitlements.plist | 6 - .../FrontendPlatformUno.Mobile/iOS/Info.plist | 51 - .../iOS/Main.iOS.cs | 15 - .../LaunchImages.launchimage/Contents.json | 58 - .../FrontendPlatformUno.Skia.Gtk.csproj | 38 - .../FrontendPlatformUno.Skia.Gtk.csproj.user | 15 - .../Package.appxmanifest | 43 - .../FrontendPlatformUno.Skia.Gtk/Program.cs | 22 - .../Properties/launchSettings.json | 11 - .../FrontendPlatformUno.Skia.Gtk/app.manifest | 77 - .../FrontendPlatformUno.Tests/AppInfoTests.cs | 19 - .../FrontendPlatformUno.Tests.csproj | 19 - .../FrontendPlatformUno.Tests/GlobalUsings.cs | 3 - .../FrontendPlatformUno.UITests/Constants.cs | 12 - .../FrontendPlatformUno.UITests.csproj | 16 - .../Given_MainPage.cs | 22 - .../GlobalUsings.cs | 7 - .../FrontendPlatformUno.UITests/TestBase.cs | 82 - .../FrontendPlatformUno.Wasm.csproj | 85 - .../FrontendPlatformUno.Wasm.csproj.user | 5 - .../FrontendPlatformUno.Wasm/LinkerConfig.xml | 11 - .../FrontendPlatformUno.Wasm/Program.cs | 14 - .../Properties/launchSettings.json | 30 - .../WasmCSS/Fonts.css | 28 - .../WasmScripts/AppManifest.js | 3 - .../manifest.webmanifest | 10 - .../wwwroot/staticwebapp.config.json | 30 - .../wwwroot/web.config | 78 - .../FrontendPlatformUno.Windows.csproj | 69 - .../FrontendPlatformUno.Windows.csproj.user | 17 - .../Package.appxmanifest | 43 - .../PublishProfiles/win10-arm64.pubxml | 20 - .../PublishProfiles/win10-x64.pubxml | 20 - .../PublishProfiles/win10-x86.pubxml | 20 - .../Properties/launchsettings.json | 14 - .../Resources.lang-en-us.resw | 123 - .../FrontendPlatformUno.Windows/app.manifest | 15 - FrontendPlatformUno/FrontendPlatformUno.sln | 197 - .../FrontendPlatformUno/App.cs | 75 - .../FrontendPlatformUno/AppResources.xaml | 15 - .../FrontendPlatformUno/Assets/Icons/back.svg | 3 - .../Assets/SharedAssets.md | 34 - .../Business/Models/AppConfig.cs | 8 - .../Business/Models/Entity.cs | 5 - .../FrontendPlatformUno.csproj | 113 - .../FrontendPlatformUno.csproj.user | 18 - .../FrontendPlatformUno/GlobalUsings.cs | 30 - .../Infrastructure/DebugHandler.cs | 41 - .../FrontendPlatformUno/Services/.gitignore | 1 - .../Services/Gamenight.yaml | 249 - .../Strings/en/Resources.resw | 123 - .../Strings/es/Resources.resw | 123 - .../Strings/fr/Resources.resw | 123 - .../Strings/pt-BR/Resources.resw | 123 - .../Styles/ColorPaletteOverride.xaml | 65 - .../Styles/ColorPaletteOverride.zip | Bin 5848 -> 0 bytes .../Styles/GamenightStyles.xaml | 13 - .../Styles/MaterialFontsOverride.xaml | 8 - .../ViewModels/GamenightsViewModel.cs | 31 - .../ViewModels/LoginViewModel.cs | 59 - .../ViewModels/ShellViewModel.cs | 19 - .../Views/GamenightsPage.xaml | 23 - .../Views/GamenightsPage.xaml.cs | 30 - .../FrontendPlatformUno/Views/LoginPage.xaml | 37 - .../Views/LoginPage.xaml.cs | 42 - .../Views/NavBarUserControl.xaml | 27 - .../Views/NavBarUserControl.xaml.cs | 27 - .../FrontendPlatformUno/Views/Shell.xaml | 35 - .../FrontendPlatformUno/Views/Shell.xaml.cs | 14 - .../appsettings.development.json | 9 - .../FrontendPlatformUno/appsettings.json | 16 - backend-actix/build.rs | 11 +- backend-actix/gamenight-api.yaml | 2 +- .../src/request/gamenight_handlers.rs | 26 +- backend-actix/src/request/mod.rs | 2 - backend-actix/src/request/requests.rs | 64 - backend-actix/src/request/responses.rs | 25 - backend-actix/src/request/user_handlers.rs | 76 +- frontend/.gitignore | 23 - frontend/README.md | 70 - frontend/package-lock.json | 28642 ---------------- frontend/package.json | 60 - frontend/public/favicon.ico | Bin 3870 -> 0 bytes frontend/public/index.html | 43 - frontend/public/logo192.png | Bin 5347 -> 0 bytes frontend/public/logo512.png | Bin 9664 -> 0 bytes frontend/public/manifest.json | 25 - frontend/public/robots.txt | 3 - frontend/src/App.css | 51 - frontend/src/App.js | 130 - frontend/src/App.test.js | 8 - frontend/src/api/Api.js | 119 - frontend/src/api/FetchResource.js | 73 - frontend/src/components/AddGameNight.jsx | 114 - frontend/src/components/AdminPanel.jsx | 178 - frontend/src/components/GameAdder.jsx | 60 - frontend/src/components/Gamenight.jsx | 127 - frontend/src/components/Gamenights.jsx | 74 - frontend/src/components/Login.jsx | 42 - frontend/src/components/MenuBar.jsx | 64 - frontend/src/index.css | 13 - frontend/src/index.js | 17 - frontend/src/logo.svg | 1 - frontend/src/reportWebVitals.js | 13 - frontend/src/setupTests.js | 5 - gamenight-api-client-rs/.gitignore | 6 + .../down.sql | 0 .../up.sql | 0 .../src/gamenight_participants.rs | 2 +- gamenight-database/src/schema/schema.rs | 83 + 205 files changed, 178 insertions(+), 36164 deletions(-) delete mode 100644 FrontendAvalonia/.gitignore delete mode 100644 FrontendAvalonia/App.axaml delete mode 100644 FrontendAvalonia/App.axaml.cs delete mode 100644 FrontendAvalonia/Directory.Build.props delete mode 100644 FrontendAvalonia/FrontendAvalonia.Android/FrontendAvalonia.Android.csproj delete mode 100644 FrontendAvalonia/FrontendAvalonia.Android/Icon.png delete mode 100644 FrontendAvalonia/FrontendAvalonia.Android/MainActivity.cs delete mode 100644 FrontendAvalonia/FrontendAvalonia.Android/Properties/AndroidManifest.xml delete mode 100644 FrontendAvalonia/FrontendAvalonia.Android/Resources/drawable/splash_screen.xml delete mode 100644 FrontendAvalonia/FrontendAvalonia.Android/Resources/values-night/colors.xml delete mode 100644 FrontendAvalonia/FrontendAvalonia.Android/Resources/values/colors.xml delete mode 100644 FrontendAvalonia/FrontendAvalonia.Android/Resources/values/styles.xml delete mode 100644 FrontendAvalonia/FrontendAvalonia.Android/SplashActivity.cs delete mode 100644 FrontendAvalonia/FrontendAvalonia.Browser/AppBundle/Logo.svg delete mode 100644 FrontendAvalonia/FrontendAvalonia.Browser/AppBundle/app.css delete mode 100644 FrontendAvalonia/FrontendAvalonia.Browser/AppBundle/favicon.ico delete mode 100644 FrontendAvalonia/FrontendAvalonia.Browser/AppBundle/index.html delete mode 100644 FrontendAvalonia/FrontendAvalonia.Browser/AppBundle/main.js delete mode 100644 FrontendAvalonia/FrontendAvalonia.Browser/FrontendAvalonia.Browser.csproj delete mode 100644 FrontendAvalonia/FrontendAvalonia.Browser/Program.cs delete mode 100644 FrontendAvalonia/FrontendAvalonia.Browser/Properties/launchSettings.json delete mode 100644 FrontendAvalonia/FrontendAvalonia.Browser/runtimeconfig.template.json delete mode 100644 FrontendAvalonia/FrontendAvalonia.Desktop/.avalonia-build-tasks/id delete mode 100644 FrontendAvalonia/FrontendAvalonia.Desktop/FrontendAvalonia.Desktop.csproj delete mode 100644 FrontendAvalonia/FrontendAvalonia.Desktop/Program.cs delete mode 100644 FrontendAvalonia/FrontendAvalonia.Desktop/Properties/launchSettings.json delete mode 100644 FrontendAvalonia/FrontendAvalonia.Desktop/app.manifest delete mode 100644 FrontendAvalonia/FrontendAvalonia.csproj delete mode 100644 FrontendAvalonia/FrontendAvalonia.iOS/AppDelegate.cs delete mode 100644 FrontendAvalonia/FrontendAvalonia.iOS/Entitlements.plist delete mode 100644 FrontendAvalonia/FrontendAvalonia.iOS/FrontendAvalonia.iOS.csproj delete mode 100644 FrontendAvalonia/FrontendAvalonia.iOS/Info.plist delete mode 100644 FrontendAvalonia/FrontendAvalonia.iOS/Main.cs delete mode 100644 FrontendAvalonia/FrontendAvalonia.iOS/Resources/LaunchScreen.xib delete mode 100644 FrontendAvalonia/FrontendAvalonia.sln delete mode 100644 FrontendAvalonia/FrontendAvalonia/.avalonia-build-tasks/id delete mode 100644 FrontendAvalonia/FrontendAvalonia/App.axaml delete mode 100644 FrontendAvalonia/FrontendAvalonia/App.axaml.cs delete mode 100644 FrontendAvalonia/FrontendAvalonia/Assets/avalonia-logo.ico delete mode 100644 FrontendAvalonia/FrontendAvalonia/Extensions/SplatExtensions.cs delete mode 100644 FrontendAvalonia/FrontendAvalonia/FrontendAvalonia.csproj delete mode 100644 FrontendAvalonia/FrontendAvalonia/Models/GamenightModel.cs delete mode 100644 FrontendAvalonia/FrontendAvalonia/Services/GamenightApi/Gamenight.cs delete mode 100644 FrontendAvalonia/FrontendAvalonia/Services/GamenightApi/Gamenight.yaml delete mode 100644 FrontendAvalonia/FrontendAvalonia/ViewLocator.cs delete mode 100644 FrontendAvalonia/FrontendAvalonia/ViewModels/AddGamenightViewModel.cs delete mode 100644 FrontendAvalonia/FrontendAvalonia/ViewModels/GamenightsViewModel.cs delete mode 100644 FrontendAvalonia/FrontendAvalonia/ViewModels/LoginViewModel.cs delete mode 100644 FrontendAvalonia/FrontendAvalonia/ViewModels/MainScreenViewModel.cs delete mode 100644 FrontendAvalonia/FrontendAvalonia/ViewModels/MainViewModel.cs delete mode 100644 FrontendAvalonia/FrontendAvalonia/ViewModels/MenuItemViewModel.cs delete mode 100644 FrontendAvalonia/FrontendAvalonia/ViewModels/PageViewModelBase.cs delete mode 100644 FrontendAvalonia/FrontendAvalonia/ViewModels/ViewModelBase.cs delete mode 100644 FrontendAvalonia/FrontendAvalonia/Views/AddGamenight.axaml delete mode 100644 FrontendAvalonia/FrontendAvalonia/Views/AddGamenight.axaml.cs delete mode 100644 FrontendAvalonia/FrontendAvalonia/Views/GamenightsView.axaml delete mode 100644 FrontendAvalonia/FrontendAvalonia/Views/GamenightsView.axaml.cs delete mode 100644 FrontendAvalonia/FrontendAvalonia/Views/LoginView.axaml delete mode 100644 FrontendAvalonia/FrontendAvalonia/Views/LoginView.axaml.cs delete mode 100644 FrontendAvalonia/FrontendAvalonia/Views/MainView.axaml delete mode 100644 FrontendAvalonia/FrontendAvalonia/Views/MainView.axaml.cs delete mode 100644 FrontendAvalonia/FrontendAvalonia/Views/MainWindow.axaml delete mode 100644 FrontendAvalonia/FrontendAvalonia/Views/MainWindow.axaml.cs delete mode 100644 FrontendAvalonia/MainWindow.axaml delete mode 100644 FrontendAvalonia/MainWindow.axaml.cs delete mode 100644 FrontendAvalonia/Program.cs delete mode 100644 FrontendAvalonia/app.manifest delete mode 100644 FrontendPlatformUno/.gitignore delete mode 100644 FrontendPlatformUno/.vsconfig delete mode 100644 FrontendPlatformUno/Directory.Build.props delete mode 100644 FrontendPlatformUno/Directory.Build.targets delete mode 100644 FrontendPlatformUno/FrontendPlatformUno.Base/AppHead.xaml delete mode 100644 FrontendPlatformUno/FrontendPlatformUno.Base/AppHead.xaml.cs delete mode 100644 FrontendPlatformUno/FrontendPlatformUno.Base/Icons/appconfig.svg delete mode 100644 FrontendPlatformUno/FrontendPlatformUno.Base/Icons/iconapp.svg delete mode 100644 FrontendPlatformUno/FrontendPlatformUno.Base/Splash/splash_screen.svg delete mode 100644 FrontendPlatformUno/FrontendPlatformUno.Base/base.props delete mode 100644 FrontendPlatformUno/FrontendPlatformUno.DataContracts/FrontendPlatformUno.DataContracts.csproj delete mode 100644 FrontendPlatformUno/FrontendPlatformUno.DataContracts/Serialization/WeatherForecastContext.cs delete mode 100644 FrontendPlatformUno/FrontendPlatformUno.DataContracts/WeatherForecast.cs delete mode 100644 FrontendPlatformUno/FrontendPlatformUno.Mobile/Android/AndroidManifest.xml delete mode 100644 FrontendPlatformUno/FrontendPlatformUno.Mobile/Android/Assets/AboutAssets.txt delete mode 100644 FrontendPlatformUno/FrontendPlatformUno.Mobile/Android/Main.Android.cs delete mode 100644 FrontendPlatformUno/FrontendPlatformUno.Mobile/Android/MainActivity.Android.cs delete mode 100644 FrontendPlatformUno/FrontendPlatformUno.Mobile/Android/Resources/AboutResources.txt delete mode 100644 FrontendPlatformUno/FrontendPlatformUno.Mobile/Android/Resources/values/Strings.xml delete mode 100644 FrontendPlatformUno/FrontendPlatformUno.Mobile/Android/Resources/values/Styles.xml delete mode 100644 FrontendPlatformUno/FrontendPlatformUno.Mobile/Android/environment.conf delete mode 100644 FrontendPlatformUno/FrontendPlatformUno.Mobile/FrontendPlatformUno.Mobile.csproj delete mode 100644 FrontendPlatformUno/FrontendPlatformUno.Mobile/FrontendPlatformUno.Mobile.csproj.user delete mode 100644 FrontendPlatformUno/FrontendPlatformUno.Mobile/MacCatalyst/Entitlements.plist delete mode 100644 FrontendPlatformUno/FrontendPlatformUno.Mobile/MacCatalyst/Info.plist delete mode 100644 FrontendPlatformUno/FrontendPlatformUno.Mobile/MacCatalyst/Main.maccatalyst.cs delete mode 100644 FrontendPlatformUno/FrontendPlatformUno.Mobile/MacCatalyst/Media.xcassets/LaunchImages.launchimage/Contents.json delete mode 100644 FrontendPlatformUno/FrontendPlatformUno.Mobile/iOS/Entitlements.plist delete mode 100644 FrontendPlatformUno/FrontendPlatformUno.Mobile/iOS/Info.plist delete mode 100644 FrontendPlatformUno/FrontendPlatformUno.Mobile/iOS/Main.iOS.cs delete mode 100644 FrontendPlatformUno/FrontendPlatformUno.Mobile/iOS/Media.xcassets/LaunchImages.launchimage/Contents.json delete mode 100644 FrontendPlatformUno/FrontendPlatformUno.Skia.Gtk/FrontendPlatformUno.Skia.Gtk.csproj delete mode 100644 FrontendPlatformUno/FrontendPlatformUno.Skia.Gtk/FrontendPlatformUno.Skia.Gtk.csproj.user delete mode 100644 FrontendPlatformUno/FrontendPlatformUno.Skia.Gtk/Package.appxmanifest delete mode 100644 FrontendPlatformUno/FrontendPlatformUno.Skia.Gtk/Program.cs delete mode 100644 FrontendPlatformUno/FrontendPlatformUno.Skia.Gtk/Properties/launchSettings.json delete mode 100644 FrontendPlatformUno/FrontendPlatformUno.Skia.Gtk/app.manifest delete mode 100644 FrontendPlatformUno/FrontendPlatformUno.Tests/AppInfoTests.cs delete mode 100644 FrontendPlatformUno/FrontendPlatformUno.Tests/FrontendPlatformUno.Tests.csproj delete mode 100644 FrontendPlatformUno/FrontendPlatformUno.Tests/GlobalUsings.cs delete mode 100644 FrontendPlatformUno/FrontendPlatformUno.UITests/Constants.cs delete mode 100644 FrontendPlatformUno/FrontendPlatformUno.UITests/FrontendPlatformUno.UITests.csproj delete mode 100644 FrontendPlatformUno/FrontendPlatformUno.UITests/Given_MainPage.cs delete mode 100644 FrontendPlatformUno/FrontendPlatformUno.UITests/GlobalUsings.cs delete mode 100644 FrontendPlatformUno/FrontendPlatformUno.UITests/TestBase.cs delete mode 100644 FrontendPlatformUno/FrontendPlatformUno.Wasm/FrontendPlatformUno.Wasm.csproj delete mode 100644 FrontendPlatformUno/FrontendPlatformUno.Wasm/FrontendPlatformUno.Wasm.csproj.user delete mode 100644 FrontendPlatformUno/FrontendPlatformUno.Wasm/LinkerConfig.xml delete mode 100644 FrontendPlatformUno/FrontendPlatformUno.Wasm/Program.cs delete mode 100644 FrontendPlatformUno/FrontendPlatformUno.Wasm/Properties/launchSettings.json delete mode 100644 FrontendPlatformUno/FrontendPlatformUno.Wasm/WasmCSS/Fonts.css delete mode 100644 FrontendPlatformUno/FrontendPlatformUno.Wasm/WasmScripts/AppManifest.js delete mode 100644 FrontendPlatformUno/FrontendPlatformUno.Wasm/manifest.webmanifest delete mode 100644 FrontendPlatformUno/FrontendPlatformUno.Wasm/wwwroot/staticwebapp.config.json delete mode 100644 FrontendPlatformUno/FrontendPlatformUno.Wasm/wwwroot/web.config delete mode 100644 FrontendPlatformUno/FrontendPlatformUno.Windows/FrontendPlatformUno.Windows.csproj delete mode 100644 FrontendPlatformUno/FrontendPlatformUno.Windows/FrontendPlatformUno.Windows.csproj.user delete mode 100644 FrontendPlatformUno/FrontendPlatformUno.Windows/Package.appxmanifest delete mode 100644 FrontendPlatformUno/FrontendPlatformUno.Windows/Properties/PublishProfiles/win10-arm64.pubxml delete mode 100644 FrontendPlatformUno/FrontendPlatformUno.Windows/Properties/PublishProfiles/win10-x64.pubxml delete mode 100644 FrontendPlatformUno/FrontendPlatformUno.Windows/Properties/PublishProfiles/win10-x86.pubxml delete mode 100644 FrontendPlatformUno/FrontendPlatformUno.Windows/Properties/launchsettings.json delete mode 100644 FrontendPlatformUno/FrontendPlatformUno.Windows/Resources.lang-en-us.resw delete mode 100644 FrontendPlatformUno/FrontendPlatformUno.Windows/app.manifest delete mode 100644 FrontendPlatformUno/FrontendPlatformUno.sln delete mode 100644 FrontendPlatformUno/FrontendPlatformUno/App.cs delete mode 100644 FrontendPlatformUno/FrontendPlatformUno/AppResources.xaml delete mode 100644 FrontendPlatformUno/FrontendPlatformUno/Assets/Icons/back.svg delete mode 100644 FrontendPlatformUno/FrontendPlatformUno/Assets/SharedAssets.md delete mode 100644 FrontendPlatformUno/FrontendPlatformUno/Business/Models/AppConfig.cs delete mode 100644 FrontendPlatformUno/FrontendPlatformUno/Business/Models/Entity.cs delete mode 100644 FrontendPlatformUno/FrontendPlatformUno/FrontendPlatformUno.csproj delete mode 100644 FrontendPlatformUno/FrontendPlatformUno/FrontendPlatformUno.csproj.user delete mode 100644 FrontendPlatformUno/FrontendPlatformUno/GlobalUsings.cs delete mode 100644 FrontendPlatformUno/FrontendPlatformUno/Infrastructure/DebugHandler.cs delete mode 100644 FrontendPlatformUno/FrontendPlatformUno/Services/.gitignore delete mode 100644 FrontendPlatformUno/FrontendPlatformUno/Services/Gamenight.yaml delete mode 100644 FrontendPlatformUno/FrontendPlatformUno/Strings/en/Resources.resw delete mode 100644 FrontendPlatformUno/FrontendPlatformUno/Strings/es/Resources.resw delete mode 100644 FrontendPlatformUno/FrontendPlatformUno/Strings/fr/Resources.resw delete mode 100644 FrontendPlatformUno/FrontendPlatformUno/Strings/pt-BR/Resources.resw delete mode 100644 FrontendPlatformUno/FrontendPlatformUno/Styles/ColorPaletteOverride.xaml delete mode 100644 FrontendPlatformUno/FrontendPlatformUno/Styles/ColorPaletteOverride.zip delete mode 100644 FrontendPlatformUno/FrontendPlatformUno/Styles/GamenightStyles.xaml delete mode 100644 FrontendPlatformUno/FrontendPlatformUno/Styles/MaterialFontsOverride.xaml delete mode 100644 FrontendPlatformUno/FrontendPlatformUno/ViewModels/GamenightsViewModel.cs delete mode 100644 FrontendPlatformUno/FrontendPlatformUno/ViewModels/LoginViewModel.cs delete mode 100644 FrontendPlatformUno/FrontendPlatformUno/ViewModels/ShellViewModel.cs delete mode 100644 FrontendPlatformUno/FrontendPlatformUno/Views/GamenightsPage.xaml delete mode 100644 FrontendPlatformUno/FrontendPlatformUno/Views/GamenightsPage.xaml.cs delete mode 100644 FrontendPlatformUno/FrontendPlatformUno/Views/LoginPage.xaml delete mode 100644 FrontendPlatformUno/FrontendPlatformUno/Views/LoginPage.xaml.cs delete mode 100644 FrontendPlatformUno/FrontendPlatformUno/Views/NavBarUserControl.xaml delete mode 100644 FrontendPlatformUno/FrontendPlatformUno/Views/NavBarUserControl.xaml.cs delete mode 100644 FrontendPlatformUno/FrontendPlatformUno/Views/Shell.xaml delete mode 100644 FrontendPlatformUno/FrontendPlatformUno/Views/Shell.xaml.cs delete mode 100644 FrontendPlatformUno/FrontendPlatformUno/appsettings.development.json delete mode 100644 FrontendPlatformUno/FrontendPlatformUno/appsettings.json delete mode 100644 backend-actix/src/request/requests.rs delete mode 100644 backend-actix/src/request/responses.rs delete mode 100644 frontend/.gitignore delete mode 100644 frontend/README.md delete mode 100644 frontend/package-lock.json delete mode 100644 frontend/package.json delete mode 100644 frontend/public/favicon.ico delete mode 100644 frontend/public/index.html delete mode 100644 frontend/public/logo192.png delete mode 100644 frontend/public/logo512.png delete mode 100644 frontend/public/manifest.json delete mode 100644 frontend/public/robots.txt delete mode 100644 frontend/src/App.css delete mode 100644 frontend/src/App.js delete mode 100644 frontend/src/App.test.js delete mode 100644 frontend/src/api/Api.js delete mode 100644 frontend/src/api/FetchResource.js delete mode 100644 frontend/src/components/AddGameNight.jsx delete mode 100644 frontend/src/components/AdminPanel.jsx delete mode 100644 frontend/src/components/GameAdder.jsx delete mode 100644 frontend/src/components/Gamenight.jsx delete mode 100644 frontend/src/components/Gamenights.jsx delete mode 100644 frontend/src/components/Login.jsx delete mode 100644 frontend/src/components/MenuBar.jsx delete mode 100644 frontend/src/index.css delete mode 100644 frontend/src/index.js delete mode 100644 frontend/src/logo.svg delete mode 100644 frontend/src/reportWebVitals.js delete mode 100644 frontend/src/setupTests.js rename gamenight-database/migrations/{2022-05-28-142526_gamenight participants => 2022-05-28-142526_gamenight participant}/down.sql (100%) rename gamenight-database/migrations/{2022-05-28-142526_gamenight participants => 2022-05-28-142526_gamenight participant}/up.sql (100%) create mode 100644 gamenight-database/src/schema/schema.rs diff --git a/.gitignore b/.gitignore index 6aa1064..360b42d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ /target/ **/*.rs.bk Cargo.lock +.vscode diff --git a/FrontendAvalonia/.gitignore b/FrontendAvalonia/.gitignore deleted file mode 100644 index 8afdcb6..0000000 --- a/FrontendAvalonia/.gitignore +++ /dev/null @@ -1,454 +0,0 @@ -## Ignore Visual Studio temporary files, build results, and -## files generated by popular Visual Studio add-ons. -## -## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore - -# User-specific files -*.rsuser -*.suo -*.user -*.userosscache -*.sln.docstates - -# User-specific files (MonoDevelop/Xamarin Studio) -*.userprefs - -# Mono auto generated files -mono_crash.* - -# Build results -[Dd]ebug/ -[Dd]ebugPublic/ -[Rr]elease/ -[Rr]eleases/ -x64/ -x86/ -[Ww][Ii][Nn]32/ -[Aa][Rr][Mm]/ -[Aa][Rr][Mm]64/ -bld/ -[Bb]in/ -[Oo]bj/ -[Ll]og/ -[Ll]ogs/ - -# Visual Studio 2015/2017 cache/options directory -.vs/ -# Uncomment if you have tasks that create the project's static files in wwwroot -#wwwroot/ - -# Visual Studio 2017 auto generated files -Generated\ Files/ - -# MSTest test Results -[Tt]est[Rr]esult*/ -[Bb]uild[Ll]og.* - -# NUnit -*.VisualState.xml -TestResult.xml -nunit-*.xml - -# Build Results of an ATL Project -[Dd]ebugPS/ -[Rr]eleasePS/ -dlldata.c - -# Benchmark Results -BenchmarkDotNet.Artifacts/ - -# .NET Core -project.lock.json -project.fragment.lock.json -artifacts/ - -# Tye -.tye/ - -# ASP.NET Scaffolding -ScaffoldingReadMe.txt - -# StyleCop -StyleCopReport.xml - -# Files built by Visual Studio -*_i.c -*_p.c -*_h.h -*.ilk -*.meta -*.obj -*.iobj -*.pch -*.pdb -*.ipdb -*.pgc -*.pgd -*.rsp -*.sbr -*.tlb -*.tli -*.tlh -*.tmp -*.tmp_proj -*_wpftmp.csproj -*.log -*.vspscc -*.vssscc -.builds -*.pidb -*.svclog -*.scc - -# Chutzpah Test files -_Chutzpah* - -# Visual C++ cache files -ipch/ -*.aps -*.ncb -*.opendb -*.opensdf -*.sdf -*.cachefile -*.VC.db -*.VC.VC.opendb - -# Visual Studio profiler -*.psess -*.vsp -*.vspx -*.sap - -# Visual Studio Trace Files -*.e2e - -# TFS 2012 Local Workspace -$tf/ - -# Guidance Automation Toolkit -*.gpState - -# ReSharper is a .NET coding add-in -_ReSharper*/ -*.[Rr]e[Ss]harper -*.DotSettings.user - -# TeamCity is a build add-in -_TeamCity* - -# DotCover is a Code Coverage Tool -*.dotCover - -# AxoCover is a Code Coverage Tool -.axoCover/* -!.axoCover/settings.json - -# Coverlet is a free, cross platform Code Coverage Tool -coverage*.json -coverage*.xml -coverage*.info - -# Visual Studio code coverage results -*.coverage -*.coveragexml - -# NCrunch -_NCrunch_* -.*crunch*.local.xml -nCrunchTemp_* - -# MightyMoose -*.mm.* -AutoTest.Net/ - -# Web workbench (sass) -.sass-cache/ - -# Installshield output folder -[Ee]xpress/ - -# DocProject is a documentation generator add-in -DocProject/buildhelp/ -DocProject/Help/*.HxT -DocProject/Help/*.HxC -DocProject/Help/*.hhc -DocProject/Help/*.hhk -DocProject/Help/*.hhp -DocProject/Help/Html2 -DocProject/Help/html - -# Click-Once directory -publish/ - -# Publish Web Output -*.[Pp]ublish.xml -*.azurePubxml -# Note: Comment the next line if you want to checkin your web deploy settings, -# but database connection strings (with potential passwords) will be unencrypted -*.pubxml -*.publishproj - -# Microsoft Azure Web App publish settings. Comment the next line if you want to -# checkin your Azure Web App publish settings, but sensitive information contained -# in these scripts will be unencrypted -PublishScripts/ - -# NuGet Packages -*.nupkg -# NuGet Symbol Packages -*.snupkg -# The packages folder can be ignored because of Package Restore -**/[Pp]ackages/* -# except build/, which is used as an MSBuild target. -!**/[Pp]ackages/build/ -# Uncomment if necessary however generally it will be regenerated when needed -#!**/[Pp]ackages/repositories.config -# NuGet v3's project.json files produces more ignorable files -*.nuget.props -*.nuget.targets - -# Microsoft Azure Build Output -csx/ -*.build.csdef - -# Microsoft Azure Emulator -ecf/ -rcf/ - -# Windows Store app package directories and files -AppPackages/ -BundleArtifacts/ -Package.StoreAssociation.xml -_pkginfo.txt -*.appx -*.appxbundle -*.appxupload - -# Visual Studio cache files -# files ending in .cache can be ignored -*.[Cc]ache -# but keep track of directories ending in .cache -!?*.[Cc]ache/ - -# Others -ClientBin/ -~$* -*~ -*.dbmdl -*.dbproj.schemaview -*.jfm -*.pfx -*.publishsettings -orleans.codegen.cs - -# Including strong name files can present a security risk -# (https://github.com/github/gitignore/pull/2483#issue-259490424) -#*.snk - -# Since there are multiple workflows, uncomment next line to ignore bower_components -# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) -#bower_components/ - -# RIA/Silverlight projects -Generated_Code/ - -# Backup & report files from converting an old project file -# to a newer Visual Studio version. Backup files are not needed, -# because we have git ;-) -_UpgradeReport_Files/ -Backup*/ -UpgradeLog*.XML -UpgradeLog*.htm -ServiceFabricBackup/ -*.rptproj.bak - -# SQL Server files -*.mdf -*.ldf -*.ndf - -# Business Intelligence projects -*.rdl.data -*.bim.layout -*.bim_*.settings -*.rptproj.rsuser -*- [Bb]ackup.rdl -*- [Bb]ackup ([0-9]).rdl -*- [Bb]ackup ([0-9][0-9]).rdl - -# Microsoft Fakes -FakesAssemblies/ - -# GhostDoc plugin setting file -*.GhostDoc.xml - -# Node.js Tools for Visual Studio -.ntvs_analysis.dat -node_modules/ - -# Visual Studio 6 build log -*.plg - -# Visual Studio 6 workspace options file -*.opt - -# Visual Studio 6 auto-generated workspace file (contains which files were open etc.) -*.vbw - -# Visual Studio LightSwitch build output -**/*.HTMLClient/GeneratedArtifacts -**/*.DesktopClient/GeneratedArtifacts -**/*.DesktopClient/ModelManifest.xml -**/*.Server/GeneratedArtifacts -**/*.Server/ModelManifest.xml -_Pvt_Extensions - -# Paket dependency manager -.paket/paket.exe -paket-files/ - -# FAKE - F# Make -.fake/ - -# CodeRush personal settings -.cr/personal - -# Python Tools for Visual Studio (PTVS) -__pycache__/ -*.pyc - -# Cake - Uncomment if you are using it -# tools/** -# !tools/packages.config - -# Tabs Studio -*.tss - -# Telerik's JustMock configuration file -*.jmconfig - -# BizTalk build output -*.btp.cs -*.btm.cs -*.odx.cs -*.xsd.cs - -# OpenCover UI analysis results -OpenCover/ - -# Azure Stream Analytics local run output -ASALocalRun/ - -# MSBuild Binary and Structured Log -*.binlog - -# NVidia Nsight GPU debugger configuration file -*.nvuser - -# MFractors (Xamarin productivity tool) working folder -.mfractor/ - -# Local History for Visual Studio -.localhistory/ - -# BeatPulse healthcheck temp database -healthchecksdb - -# Backup folder for Package Reference Convert tool in Visual Studio 2017 -MigrationBackup/ - -# Ionide (cross platform F# VS Code tools) working folder -.ionide/ - -# Fody - auto-generated XML schema -FodyWeavers.xsd - -## -## Visual studio for Mac -## - - -# globs -Makefile.in -*.userprefs -*.usertasks -config.make -config.status -aclocal.m4 -install-sh -autom4te.cache/ -*.tar.gz -tarballs/ -test-results/ - -# Mac bundle stuff -*.dmg -*.app - -# content below from: https://github.com/github/gitignore/blob/master/Global/macOS.gitignore -# General -.DS_Store -.AppleDouble -.LSOverride - -# Icon must end with two \r -Icon - - -# Thumbnails -._* - -# Files that might appear in the root of a volume -.DocumentRevisions-V100 -.fseventsd -.Spotlight-V100 -.TemporaryItems -.Trashes -.VolumeIcon.icns -.com.apple.timemachine.donotpresent - -# Directories potentially created on remote AFP share -.AppleDB -.AppleDesktop -Network Trash Folder -Temporary Items -.apdisk - -# content below from: https://github.com/github/gitignore/blob/master/Global/Windows.gitignore -# Windows thumbnail cache files -Thumbs.db -ehthumbs.db -ehthumbs_vista.db - -# Dump file -*.stackdump - -# Folder config file -[Dd]esktop.ini - -# Recycle Bin used on file shares -$RECYCLE.BIN/ - -# Windows Installer files -*.cab -*.msi -*.msix -*.msm -*.msp - -# Windows shortcuts -*.lnk - -# JetBrains Rider -.idea/ -*.sln.iml - -## -## Visual Studio Code -## -.vscode/* -!.vscode/settings.json -!.vscode/tasks.json -!.vscode/launch.json -!.vscode/extensions.json diff --git a/FrontendAvalonia/App.axaml b/FrontendAvalonia/App.axaml deleted file mode 100644 index ddc0b60..0000000 --- a/FrontendAvalonia/App.axaml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/FrontendAvalonia/App.axaml.cs b/FrontendAvalonia/App.axaml.cs deleted file mode 100644 index de00bbe..0000000 --- a/FrontendAvalonia/App.axaml.cs +++ /dev/null @@ -1,23 +0,0 @@ -using Avalonia; -using Avalonia.Controls.ApplicationLifetimes; -using Avalonia.Markup.Xaml; - -namespace FrontendAvalonia; - -public partial class App : Application -{ - public override void Initialize() - { - AvaloniaXamlLoader.Load(this); - } - - public override void OnFrameworkInitializationCompleted() - { - if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop) - { - desktop.MainWindow = new MainWindow(); - } - - base.OnFrameworkInitializationCompleted(); - } -} \ No newline at end of file diff --git a/FrontendAvalonia/Directory.Build.props b/FrontendAvalonia/Directory.Build.props deleted file mode 100644 index 5a014d1..0000000 --- a/FrontendAvalonia/Directory.Build.props +++ /dev/null @@ -1,6 +0,0 @@ - - - enable - 11.0.0-rc1.1 - - diff --git a/FrontendAvalonia/FrontendAvalonia.Android/FrontendAvalonia.Android.csproj b/FrontendAvalonia/FrontendAvalonia.Android/FrontendAvalonia.Android.csproj deleted file mode 100644 index 21a38ae..0000000 --- a/FrontendAvalonia/FrontendAvalonia.Android/FrontendAvalonia.Android.csproj +++ /dev/null @@ -1,27 +0,0 @@ - - - Exe - net7.0-android - 21 - enable - com.CompanyName.FrontendAvalonia - 1 - 1.0 - apk - False - - - - - Resources\drawable\Icon.png - - - - - - - - - - - diff --git a/FrontendAvalonia/FrontendAvalonia.Android/Icon.png b/FrontendAvalonia/FrontendAvalonia.Android/Icon.png deleted file mode 100644 index 41a2a618fb02e4cb7f6a15caf572b693bfe1ebb1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14349 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 HQ$iB}THCz{ diff --git a/FrontendAvalonia/FrontendAvalonia.Android/MainActivity.cs b/FrontendAvalonia/FrontendAvalonia.Android/MainActivity.cs deleted file mode 100644 index 264b801..0000000 --- a/FrontendAvalonia/FrontendAvalonia.Android/MainActivity.cs +++ /dev/null @@ -1,10 +0,0 @@ -using Android.App; -using Android.Content.PM; -using Avalonia.Android; - -namespace FrontendAvalonia.Android; - -[Activity(Label = "FrontendAvalonia.Android", Theme = "@style/MyTheme.NoActionBar", Icon = "@drawable/icon", LaunchMode = LaunchMode.SingleTop, ConfigurationChanges = ConfigChanges.Orientation | ConfigChanges.ScreenSize | ConfigChanges.UiMode)] -public class MainActivity : AvaloniaMainActivity -{ -} diff --git a/FrontendAvalonia/FrontendAvalonia.Android/Properties/AndroidManifest.xml b/FrontendAvalonia/FrontendAvalonia.Android/Properties/AndroidManifest.xml deleted file mode 100644 index 8d25d30..0000000 --- a/FrontendAvalonia/FrontendAvalonia.Android/Properties/AndroidManifest.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/FrontendAvalonia/FrontendAvalonia.Android/Resources/drawable/splash_screen.xml b/FrontendAvalonia/FrontendAvalonia.Android/Resources/drawable/splash_screen.xml deleted file mode 100644 index 2e920b4..0000000 --- a/FrontendAvalonia/FrontendAvalonia.Android/Resources/drawable/splash_screen.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - diff --git a/FrontendAvalonia/FrontendAvalonia.Android/Resources/values-night/colors.xml b/FrontendAvalonia/FrontendAvalonia.Android/Resources/values-night/colors.xml deleted file mode 100644 index 3d47b6f..0000000 --- a/FrontendAvalonia/FrontendAvalonia.Android/Resources/values-night/colors.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - #212121 - diff --git a/FrontendAvalonia/FrontendAvalonia.Android/Resources/values/colors.xml b/FrontendAvalonia/FrontendAvalonia.Android/Resources/values/colors.xml deleted file mode 100644 index 59279d5..0000000 --- a/FrontendAvalonia/FrontendAvalonia.Android/Resources/values/colors.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - #FFFFFF - diff --git a/FrontendAvalonia/FrontendAvalonia.Android/Resources/values/styles.xml b/FrontendAvalonia/FrontendAvalonia.Android/Resources/values/styles.xml deleted file mode 100644 index 2759d29..0000000 --- a/FrontendAvalonia/FrontendAvalonia.Android/Resources/values/styles.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - diff --git a/FrontendAvalonia/FrontendAvalonia.Android/SplashActivity.cs b/FrontendAvalonia/FrontendAvalonia.Android/SplashActivity.cs deleted file mode 100644 index a2cda26..0000000 --- a/FrontendAvalonia/FrontendAvalonia.Android/SplashActivity.cs +++ /dev/null @@ -1,32 +0,0 @@ -//using Android.App; -//using Android.Content; -//using Android.OS; -//using Application = Android.App.Application; -//using Avalonia; -//using Avalonia.Android; -//using Avalonia.ReactiveUI; - -//namespace FrontendAvalonia.Android; - -//[Activity(Theme = "@style/MyTheme.Splash", MainLauncher = true, NoHistory = true)] -//public class SplashActivity : AvaloniaSplashActivity -//{ -// protected override AppBuilder CustomizeAppBuilder(AppBuilder builder) -// { -// return base.CustomizeAppBuilder(builder) -// .WithInterFont() -// .UseReactiveUI(); -// } - -// protected override void OnCreate(Bundle? savedInstanceState) -// { -// base.OnCreate(savedInstanceState); -// } - -// protected override void OnResume() -// { -// base.OnResume(); - -// StartActivity(new Intent(Application.Context, typeof(MainActivity))); -// } -//} diff --git a/FrontendAvalonia/FrontendAvalonia.Browser/AppBundle/Logo.svg b/FrontendAvalonia/FrontendAvalonia.Browser/AppBundle/Logo.svg deleted file mode 100644 index 9685a23..0000000 --- a/FrontendAvalonia/FrontendAvalonia.Browser/AppBundle/Logo.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/FrontendAvalonia/FrontendAvalonia.Browser/AppBundle/app.css b/FrontendAvalonia/FrontendAvalonia.Browser/AppBundle/app.css deleted file mode 100644 index a424538..0000000 --- a/FrontendAvalonia/FrontendAvalonia.Browser/AppBundle/app.css +++ /dev/null @@ -1,74 +0,0 @@ -:root { - --sat: env(safe-area-inset-top); - --sar: env(safe-area-inset-right); - --sab: env(safe-area-inset-bottom); - --sal: env(safe-area-inset-left); -} - -/* HTML styles for the splash screen */ - -.highlight { - color: white; - font-size: 2.5rem; - display: block; -} - -.purple { - color: #8b44ac; -} - -.icon { - opacity: 0.05; - height: 35%; - width: 35%; - position: absolute; - background-repeat: no-repeat; - right: 0px; - bottom: 0px; - margin-right: 3%; - margin-bottom: 5%; - z-index: 5000; - background-position: right bottom; - pointer-events: none; -} - -#avalonia-splash a { - color: whitesmoke; - text-decoration: none; -} - -.center { - display: flex; - justify-content: center; - align-items: center; - height: 100vh; -} - -#avalonia-splash { - position: relative; - height: 100%; - width: 100%; - color: whitesmoke; - background: #1b2a4e; - font-family: 'Nunito', sans-serif; - background-position: center; - background-size: cover; - background-repeat: no-repeat; - justify-content: center; - align-items: center; -} - -.splash-close { - animation: fadeout 0.25s linear forwards; -} - -@keyframes fadeout { - 0% { - opacity: 100%; - } - - 100% { - opacity: 0; - visibility: collapse; - } -} diff --git a/FrontendAvalonia/FrontendAvalonia.Browser/AppBundle/favicon.ico b/FrontendAvalonia/FrontendAvalonia.Browser/AppBundle/favicon.ico deleted file mode 100644 index da8d49ff9b94e52778f5324a1b87dd443a698b57..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176111 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 B(c}OC diff --git a/FrontendAvalonia/FrontendAvalonia.Browser/AppBundle/index.html b/FrontendAvalonia/FrontendAvalonia.Browser/AppBundle/index.html deleted file mode 100644 index 1ff09ae..0000000 --- a/FrontendAvalonia/FrontendAvalonia.Browser/AppBundle/index.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - FrontendAvalonia.Browser - - - - - - - - - - -
-
-
-

- Powered by - Avalonia UI -

-
- Avalonia Logo -
-
- - - - \ No newline at end of file diff --git a/FrontendAvalonia/FrontendAvalonia.Browser/AppBundle/main.js b/FrontendAvalonia/FrontendAvalonia.Browser/AppBundle/main.js deleted file mode 100644 index 0dbe2e4..0000000 --- a/FrontendAvalonia/FrontendAvalonia.Browser/AppBundle/main.js +++ /dev/null @@ -1,13 +0,0 @@ -import { dotnet } from './dotnet.js' - -const is_browser = typeof window != "undefined"; -if (!is_browser) throw new Error(`Expected to be running in a browser`); - -const dotnetRuntime = await dotnet - .withDiagnosticTracing(false) - .withApplicationArgumentsFromQuery() - .create(); - -const config = dotnetRuntime.getConfig(); - -await dotnetRuntime.runMainAndExit(config.mainAssemblyName, [window.location.search]); \ No newline at end of file diff --git a/FrontendAvalonia/FrontendAvalonia.Browser/FrontendAvalonia.Browser.csproj b/FrontendAvalonia/FrontendAvalonia.Browser/FrontendAvalonia.Browser.csproj deleted file mode 100644 index 70e35b6..0000000 --- a/FrontendAvalonia/FrontendAvalonia.Browser/FrontendAvalonia.Browser.csproj +++ /dev/null @@ -1,20 +0,0 @@ - - - net7.0 - browser-wasm - AppBundle\main.js - Exe - - - - - - - - - - - - - - diff --git a/FrontendAvalonia/FrontendAvalonia.Browser/Program.cs b/FrontendAvalonia/FrontendAvalonia.Browser/Program.cs deleted file mode 100644 index 16eecc7..0000000 --- a/FrontendAvalonia/FrontendAvalonia.Browser/Program.cs +++ /dev/null @@ -1,19 +0,0 @@ -using System.Runtime.Versioning; -using System.Threading.Tasks; -using Avalonia; -using Avalonia.Browser; -using Avalonia.ReactiveUI; -using FrontendAvalonia; - -[assembly: SupportedOSPlatform("browser")] - -internal partial class Program -{ - private static async Task Main(string[] args) => await BuildAvaloniaApp() - .WithInterFont() - .UseReactiveUI() - .StartBrowserAppAsync("out"); - - public static AppBuilder BuildAvaloniaApp() - => AppBuilder.Configure(); -} \ No newline at end of file diff --git a/FrontendAvalonia/FrontendAvalonia.Browser/Properties/launchSettings.json b/FrontendAvalonia/FrontendAvalonia.Browser/Properties/launchSettings.json deleted file mode 100644 index cefdffd..0000000 --- a/FrontendAvalonia/FrontendAvalonia.Browser/Properties/launchSettings.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "profiles": { - "FrontendAvalonia.Browser": { - "commandName": "Project", - "launchBrowser": true, - "environmentVariables": { - "ASPNETCORE_ENVIRONMENT": "Development" - }, - "applicationUrl": "https://localhost:5001;http://localhost:5000", - "inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/debug?browser={browserInspectUri}" - } - } -} \ No newline at end of file diff --git a/FrontendAvalonia/FrontendAvalonia.Browser/runtimeconfig.template.json b/FrontendAvalonia/FrontendAvalonia.Browser/runtimeconfig.template.json deleted file mode 100644 index c6990ba..0000000 --- a/FrontendAvalonia/FrontendAvalonia.Browser/runtimeconfig.template.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "wasmHostProperties": { - "perHostConfig": [ - { - "name": "browser", - "html-path": "index.html", - "Host": "browser" - } - ] - } -} \ No newline at end of file diff --git a/FrontendAvalonia/FrontendAvalonia.Desktop/.avalonia-build-tasks/id b/FrontendAvalonia/FrontendAvalonia.Desktop/.avalonia-build-tasks/id deleted file mode 100644 index 0105b2b..0000000 --- a/FrontendAvalonia/FrontendAvalonia.Desktop/.avalonia-build-tasks/id +++ /dev/null @@ -1 +0,0 @@ -Åÿg/‘L¼õ“Ѓ^/™ \ No newline at end of file diff --git a/FrontendAvalonia/FrontendAvalonia.Desktop/FrontendAvalonia.Desktop.csproj b/FrontendAvalonia/FrontendAvalonia.Desktop/FrontendAvalonia.Desktop.csproj deleted file mode 100644 index 4d5cf0d..0000000 --- a/FrontendAvalonia/FrontendAvalonia.Desktop/FrontendAvalonia.Desktop.csproj +++ /dev/null @@ -1,24 +0,0 @@ - - - WinExe - - net7.0 - enable - true - - - - app.manifest - - - - - - - - - - - - diff --git a/FrontendAvalonia/FrontendAvalonia.Desktop/Program.cs b/FrontendAvalonia/FrontendAvalonia.Desktop/Program.cs deleted file mode 100644 index 711d4c0..0000000 --- a/FrontendAvalonia/FrontendAvalonia.Desktop/Program.cs +++ /dev/null @@ -1,23 +0,0 @@ -using System; -using Avalonia; -using Avalonia.ReactiveUI; - -namespace FrontendAvalonia.Desktop; - -class Program -{ - // Initialization code. Don't use any Avalonia, third-party APIs or any - // SynchronizationContext-reliant code before AppMain is called: things aren't initialized - // yet and stuff might break. - [STAThread] - public static void Main(string[] args) => BuildAvaloniaApp() - .StartWithClassicDesktopLifetime(args); - - // Avalonia configuration, don't remove; also used by visual designer. - public static AppBuilder BuildAvaloniaApp() - => AppBuilder.Configure() - .UsePlatformDetect() - .WithInterFont() - .LogToTrace() - .UseReactiveUI(); -} diff --git a/FrontendAvalonia/FrontendAvalonia.Desktop/Properties/launchSettings.json b/FrontendAvalonia/FrontendAvalonia.Desktop/Properties/launchSettings.json deleted file mode 100644 index dacc6e2..0000000 --- a/FrontendAvalonia/FrontendAvalonia.Desktop/Properties/launchSettings.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "profiles": { - "FrontendAvalonia.Desktop": { - "commandName": "Project" - }, - "WSL": { - "commandName": "WSL2", - "distributionName": "" - } - } -} \ No newline at end of file diff --git a/FrontendAvalonia/FrontendAvalonia.Desktop/app.manifest b/FrontendAvalonia/FrontendAvalonia.Desktop/app.manifest deleted file mode 100644 index bd198f9..0000000 --- a/FrontendAvalonia/FrontendAvalonia.Desktop/app.manifest +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - diff --git a/FrontendAvalonia/FrontendAvalonia.csproj b/FrontendAvalonia/FrontendAvalonia.csproj deleted file mode 100644 index dceb682..0000000 --- a/FrontendAvalonia/FrontendAvalonia.csproj +++ /dev/null @@ -1,22 +0,0 @@ - - - WinExe - net6.0 - enable - true - app.manifest - - - - - - - - - - - - - - - diff --git a/FrontendAvalonia/FrontendAvalonia.iOS/AppDelegate.cs b/FrontendAvalonia/FrontendAvalonia.iOS/AppDelegate.cs deleted file mode 100644 index c5c2ef7..0000000 --- a/FrontendAvalonia/FrontendAvalonia.iOS/AppDelegate.cs +++ /dev/null @@ -1,23 +0,0 @@ -using Foundation; -using UIKit; -using Avalonia; -using Avalonia.Controls; -using Avalonia.iOS; -using Avalonia.Media; -using Avalonia.ReactiveUI; - -namespace FrontendAvalonia.iOS; - -// The UIApplicationDelegate for the application. This class is responsible for launching the -// User Interface of the application, as well as listening (and optionally responding) to -// application events from iOS. -[Register("AppDelegate")] -public partial class AppDelegate : AvaloniaAppDelegate -{ - protected override AppBuilder CustomizeAppBuilder(AppBuilder builder) - { - return base.CustomizeAppBuilder(builder) - .WithInterFont() - .UseReactiveUI(); - } -} diff --git a/FrontendAvalonia/FrontendAvalonia.iOS/Entitlements.plist b/FrontendAvalonia/FrontendAvalonia.iOS/Entitlements.plist deleted file mode 100644 index 0c67376..0000000 --- a/FrontendAvalonia/FrontendAvalonia.iOS/Entitlements.plist +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/FrontendAvalonia/FrontendAvalonia.iOS/FrontendAvalonia.iOS.csproj b/FrontendAvalonia/FrontendAvalonia.iOS/FrontendAvalonia.iOS.csproj deleted file mode 100644 index c8e91c2..0000000 --- a/FrontendAvalonia/FrontendAvalonia.iOS/FrontendAvalonia.iOS.csproj +++ /dev/null @@ -1,22 +0,0 @@ - - - Exe - net7.0-ios - 10.0 - manual - enable - iossimulator-x64 - - - - - - - - - - - - - - diff --git a/FrontendAvalonia/FrontendAvalonia.iOS/Info.plist b/FrontendAvalonia/FrontendAvalonia.iOS/Info.plist deleted file mode 100644 index 742b690..0000000 --- a/FrontendAvalonia/FrontendAvalonia.iOS/Info.plist +++ /dev/null @@ -1,47 +0,0 @@ - - - - - CFBundleDisplayName - FrontendAvalonia - CFBundleIdentifier - companyName.FrontendAvalonia - CFBundleShortVersionString - 1.0 - CFBundleVersion - 1.0 - LSRequiresIPhoneOS - - MinimumOSVersion - 10.0 - UIDeviceFamily - - 1 - 2 - - UILaunchStoryboardName - LaunchScreen - UIRequiredDeviceCapabilities - - armv7 - - UISupportedInterfaceOrientations - - UIInterfaceOrientationPortrait - UIInterfaceOrientationPortraitUpsideDown - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - UISupportedInterfaceOrientations~ipad - - UIInterfaceOrientationPortrait - UIInterfaceOrientationPortraitUpsideDown - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - UIStatusBarHidden - - UIViewControllerBasedStatusBarAppearance - - - diff --git a/FrontendAvalonia/FrontendAvalonia.iOS/Main.cs b/FrontendAvalonia/FrontendAvalonia.iOS/Main.cs deleted file mode 100644 index 77d1306..0000000 --- a/FrontendAvalonia/FrontendAvalonia.iOS/Main.cs +++ /dev/null @@ -1,14 +0,0 @@ -using UIKit; - -namespace FrontendAvalonia.iOS; - -public class Application -{ - // This is the main entry point of the application. - static void Main(string[] args) - { - // if you want to use a different Application Delegate class from "AppDelegate" - // you can specify it here. - UIApplication.Main(args, null, typeof(AppDelegate)); - } -} diff --git a/FrontendAvalonia/FrontendAvalonia.iOS/Resources/LaunchScreen.xib b/FrontendAvalonia/FrontendAvalonia.iOS/Resources/LaunchScreen.xib deleted file mode 100644 index efe278d..0000000 --- a/FrontendAvalonia/FrontendAvalonia.iOS/Resources/LaunchScreen.xib +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/FrontendAvalonia/FrontendAvalonia.sln b/FrontendAvalonia/FrontendAvalonia.sln deleted file mode 100644 index e8931b2..0000000 --- a/FrontendAvalonia/FrontendAvalonia.sln +++ /dev/null @@ -1,54 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 17 -VisualStudioVersion = 17.3.32811.315 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FrontendAvalonia", "FrontendAvalonia\FrontendAvalonia.csproj", "{EBFA8512-1EA5-4D8C-B4AC-AB5B48A6D568}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FrontendAvalonia.Desktop", "FrontendAvalonia.Desktop\FrontendAvalonia.Desktop.csproj", "{ABC31E74-02FF-46EB-B3B2-4E6AE43B456C}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FrontendAvalonia.Browser", "FrontendAvalonia.Browser\FrontendAvalonia.Browser.csproj", "{1C1A049E-235C-4CD0-B6FA-D53AC418F4DA}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FrontendAvalonia.iOS", "FrontendAvalonia.iOS\FrontendAvalonia.iOS.csproj", "{EBD9022F-BC83-4846-9A11-6F7F3772DC64}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FrontendAvalonia.Android", "FrontendAvalonia.Android\FrontendAvalonia.Android.csproj", "{7AD1DAC8-7FBE-49D5-8614-7321233DB82E}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{3DA99C4E-89E3-4049-9C22-0A7EC60D83D8}" - ProjectSection(SolutionItems) = preProject - Directory.Build.props = Directory.Build.props - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {EBFA8512-1EA5-4D8C-B4AC-AB5B48A6D568}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {EBFA8512-1EA5-4D8C-B4AC-AB5B48A6D568}.Debug|Any CPU.Build.0 = Debug|Any CPU - {EBFA8512-1EA5-4D8C-B4AC-AB5B48A6D568}.Release|Any CPU.ActiveCfg = Release|Any CPU - {EBFA8512-1EA5-4D8C-B4AC-AB5B48A6D568}.Release|Any CPU.Build.0 = Release|Any CPU - {ABC31E74-02FF-46EB-B3B2-4E6AE43B456C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {ABC31E74-02FF-46EB-B3B2-4E6AE43B456C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {ABC31E74-02FF-46EB-B3B2-4E6AE43B456C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {ABC31E74-02FF-46EB-B3B2-4E6AE43B456C}.Release|Any CPU.Build.0 = Release|Any CPU - {1C1A049E-235C-4CD0-B6FA-D53AC418F4DA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {1C1A049E-235C-4CD0-B6FA-D53AC418F4DA}.Debug|Any CPU.Build.0 = Debug|Any CPU - {1C1A049E-235C-4CD0-B6FA-D53AC418F4DA}.Release|Any CPU.ActiveCfg = Release|Any CPU - {1C1A049E-235C-4CD0-B6FA-D53AC418F4DA}.Release|Any CPU.Build.0 = Release|Any CPU - {EBD9022F-BC83-4846-9A11-6F7F3772DC64}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {EBD9022F-BC83-4846-9A11-6F7F3772DC64}.Debug|Any CPU.Build.0 = Debug|Any CPU - {EBD9022F-BC83-4846-9A11-6F7F3772DC64}.Release|Any CPU.ActiveCfg = Release|Any CPU - {EBD9022F-BC83-4846-9A11-6F7F3772DC64}.Release|Any CPU.Build.0 = Release|Any CPU - {7AD1DAC8-7FBE-49D5-8614-7321233DB82E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7AD1DAC8-7FBE-49D5-8614-7321233DB82E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7AD1DAC8-7FBE-49D5-8614-7321233DB82E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7AD1DAC8-7FBE-49D5-8614-7321233DB82E}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {83CB65B8-011F-4ED7-BCD3-A6CFA935EF7E} - EndGlobalSection -EndGlobal diff --git a/FrontendAvalonia/FrontendAvalonia/.avalonia-build-tasks/id b/FrontendAvalonia/FrontendAvalonia/.avalonia-build-tasks/id deleted file mode 100644 index 61fd20c..0000000 --- a/FrontendAvalonia/FrontendAvalonia/.avalonia-build-tasks/id +++ /dev/null @@ -1 +0,0 @@ -À¼óÂ˵šBºNèÓÑ_Θ \ No newline at end of file diff --git a/FrontendAvalonia/FrontendAvalonia/App.axaml b/FrontendAvalonia/FrontendAvalonia/App.axaml deleted file mode 100644 index a0753df..0000000 --- a/FrontendAvalonia/FrontendAvalonia/App.axaml +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/FrontendAvalonia/FrontendAvalonia/App.axaml.cs b/FrontendAvalonia/FrontendAvalonia/App.axaml.cs deleted file mode 100644 index 15663c3..0000000 --- a/FrontendAvalonia/FrontendAvalonia/App.axaml.cs +++ /dev/null @@ -1,71 +0,0 @@ -using System; -using Avalonia; -using Avalonia.Controls.ApplicationLifetimes; -using Avalonia.Markup.Xaml; -using FrontendAvalonia.Extensions; -using FrontendAvalonia.Models; -using FrontendAvalonia.Services.GamenightApi; -using FrontendAvalonia.ViewModels; -using FrontendAvalonia.Views; -using ReactiveUI; -using Refit; -using Splat; - -namespace FrontendAvalonia; - -public partial class App : Application -{ - public override void Initialize() - { - AvaloniaXamlLoader.Load(this); - } - - public override void OnFrameworkInitializationCompleted() - { - var mutable = Locator.CurrentMutable; - var locator = Locator.Current ?? throw new InvalidOperationException("Locator should not be null here."); - mutable.RegisterLazySingleton(() => new GamenightModel()); - - mutable.RegisterLazySingleton(() => new MainScreenViewModel()); - mutable.RegisterLazySingleton(() => RestService.For("http://localhost:8080")); - - mutable.Register(() => new AddGamenightViewModel( - locator.GetRequiredService(), - locator.GetRequiredService())); - mutable.Register(() => new LoginViewModel( - locator.GetRequiredService(), - locator.GetRequiredService(), - locator.GetRequiredService())); - mutable.Register(() => new GamenightsViewModel( - locator.GetRequiredService(), - locator.GetRequiredService(), - locator.GetRequiredService(), - locator.GetRequiredService())); - mutable.Register(() => new MainViewModel( - locator.GetRequiredService(), - locator.GetRequiredService(), - locator.GetRequiredService(), - locator.GetRequiredService(), - locator.GetRequiredService())); - - - if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop) - { - desktop.MainWindow = new MainWindow - { - DataContext = Locator.Current.GetService() - }; - } - else if (ApplicationLifetime is ISingleViewApplicationLifetime singleViewPlatform) - { - singleViewPlatform.MainView = new MainView - { - DataContext = Locator.Current.GetService() - }; - } - - Locator.Current.GetService()?.Router.Navigate.Execute(Locator.Current.GetService() ?? throw new InvalidOperationException("Could not find initial viewmodel to navigate to")); - - base.OnFrameworkInitializationCompleted(); - } -} \ No newline at end of file diff --git a/FrontendAvalonia/FrontendAvalonia/Assets/avalonia-logo.ico b/FrontendAvalonia/FrontendAvalonia/Assets/avalonia-logo.ico deleted file mode 100644 index da8d49ff9b94e52778f5324a1b87dd443a698b57..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176111 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 B(c}OC diff --git a/FrontendAvalonia/FrontendAvalonia/Extensions/SplatExtensions.cs b/FrontendAvalonia/FrontendAvalonia/Extensions/SplatExtensions.cs deleted file mode 100644 index 96498a9..0000000 --- a/FrontendAvalonia/FrontendAvalonia/Extensions/SplatExtensions.cs +++ /dev/null @@ -1,22 +0,0 @@ -using Splat; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace FrontendAvalonia.Extensions -{ - public static class SplatExtensions - { - public static T GetRequiredService(this IReadonlyDependencyResolver resolver, string? contract = null) - { - if (resolver is null) - { - throw new ArgumentNullException(nameof(resolver)); - } - - return resolver.GetService(contract) ?? throw new InvalidOperationException($"Service {typeof(T).Name} was required but was not registered."); - } - } -} diff --git a/FrontendAvalonia/FrontendAvalonia/FrontendAvalonia.csproj b/FrontendAvalonia/FrontendAvalonia/FrontendAvalonia.csproj deleted file mode 100644 index 99f812d..0000000 --- a/FrontendAvalonia/FrontendAvalonia/FrontendAvalonia.csproj +++ /dev/null @@ -1,47 +0,0 @@ - - - net7.0 - enable - latest - true - - - - - - - - - - - - - - - - - - - - True - True - Gamenight.yaml - - - LoginView.axaml - - - GamenightsView.axaml - - - AddGamenight.axaml - - - - - - RefitterCodeGenerator - Gamenight.cs - - - diff --git a/FrontendAvalonia/FrontendAvalonia/Models/GamenightModel.cs b/FrontendAvalonia/FrontendAvalonia/Models/GamenightModel.cs deleted file mode 100644 index 0cc78a9..0000000 --- a/FrontendAvalonia/FrontendAvalonia/Models/GamenightModel.cs +++ /dev/null @@ -1,16 +0,0 @@ - -using ReactiveUI; - -namespace FrontendAvalonia.Models -{ - public class GamenightModel : ReactiveObject - { - private string? _userToken; - - public string? UserToken - { - get => _userToken; - set => this.RaiseAndSetIfChanged(ref _userToken, value); - } - } -} diff --git a/FrontendAvalonia/FrontendAvalonia/Services/GamenightApi/Gamenight.cs b/FrontendAvalonia/FrontendAvalonia/Services/GamenightApi/Gamenight.cs deleted file mode 100644 index 509ea44..0000000 --- a/FrontendAvalonia/FrontendAvalonia/Services/GamenightApi/Gamenight.cs +++ /dev/null @@ -1,240 +0,0 @@ - -//---------------------- -// -// Generated REST API Client Code Generator v1.7.17.0 on 6/26/2023 11:20:46 AM -// Using the tool Refitter v0.6.0 -// -//---------------------- - - -// -// This code was generated by Refitter. -// - -using Refit; -using System.Collections.Generic; -using System.Text.Json.Serialization; -using System.Threading; -using System.Threading.Tasks; - -namespace FrontendAvalonia.Services.GamenightApi -{ - public interface IGamenight - { - /// - /// Submit your credentials to get a JWT-token to use with the rest of the api. - /// - [Post("/token")] - Task> GetToken([Body] object body, CancellationToken cancellationToken = default); - - /// - /// Create a new user given a registration token and user information, username and email must be unique, and password and password_repeat must match. - /// - [Post("/user")] - Task PostRegister([Body] object body, CancellationToken cancellationToken = default); - - /// - /// Retrieve the list of gamenights on this gamenight server. Requires authorization. - /// - [Get("/gamenights")] - Task>> GetGamenights(CancellationToken cancellationToken = default); - - /// - /// Add a gamenight by providing a name and a date, only available when providing an JWT token. - /// - [Post("/gamenight")] - Task PostGamenight([Body] object body, [Authorize("Bearer")] string token, CancellationToken cancellationToken = default); - - [Get("/gamenight")] - Task> GetGamenight([Body] object body, CancellationToken cancellationToken = default); - - - } -} - - -//---------------------- -// -// Generated using the NSwag toolchain v13.19.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.3.0)) (http://NSwag.org) -// -//---------------------- - -#pragma warning disable 108 // Disable "CS0108 '{derivedDto}.ToJson()' hides inherited member '{dtoBase}.ToJson()'. Use the new keyword if hiding was intended." -#pragma warning disable 114 // Disable "CS0114 '{derivedDto}.RaisePropertyChanged(String)' hides inherited member 'dtoBase.RaisePropertyChanged(String)'. To make the current member override that implementation, add the override keyword. Otherwise add the new keyword." -#pragma warning disable 472 // Disable "CS0472 The result of the expression is always 'false' since a value of type 'Int32' is never equal to 'null' of type 'Int32?' -#pragma warning disable 612 // Disable "CS0612 '...' is obsolete" -#pragma warning disable 1573 // Disable "CS1573 Parameter '...' has no matching param tag in the XML comment for ... -#pragma warning disable 1591 // Disable "CS1591 Missing XML comment for publicly visible type or member ..." -#pragma warning disable 8073 // Disable "CS8073 The result of the expression is always 'false' since a value of type 'T' is never equal to 'null' of type 'T?'" -#pragma warning disable 3016 // Disable "CS3016 Arrays as attribute arguments is not CLS-compliant" -#pragma warning disable 8603 // Disable "CS8603 Possible null reference return" - -namespace FrontendAvalonia.Services.GamenightApi -{ - using System = global::System; - - - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.19.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.3.0))")] - public partial class Gamenight - { - - [JsonPropertyName("id")] - - [JsonIgnore(Condition = JsonIgnoreCondition.Never)] - [System.ComponentModel.DataAnnotations.Required(AllowEmptyStrings = true)] - public string Id { get; set; } - - [JsonPropertyName("name")] - - [JsonIgnore(Condition = JsonIgnoreCondition.Never)] - [System.ComponentModel.DataAnnotations.Required(AllowEmptyStrings = true)] - public string Name { get; set; } - - [JsonPropertyName("datetime")] - - [JsonIgnore(Condition = JsonIgnoreCondition.Never)] - [System.ComponentModel.DataAnnotations.Required(AllowEmptyStrings = true)] - public string Datetime { get; set; } - - [JsonPropertyName("owner_id")] - - [JsonIgnore(Condition = JsonIgnoreCondition.Never)] - [System.ComponentModel.DataAnnotations.Required(AllowEmptyStrings = true)] - public string Owner_id { get; set; } - - private IDictionary _additionalProperties; - - [JsonExtensionData] - public IDictionary AdditionalProperties - { - get { return _additionalProperties ?? (_additionalProperties = new Dictionary()); } - set { _additionalProperties = value; } - } - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.19.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.3.0))")] - public partial class Failure - { - - [JsonPropertyName("message")] - - [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingDefault)] - public string Message { get; set; } - - private IDictionary _additionalProperties; - - [JsonExtensionData] - public IDictionary AdditionalProperties - { - get { return _additionalProperties ?? (_additionalProperties = new Dictionary()); } - set { _additionalProperties = value; } - } - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.19.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.3.0))")] - public partial class Token - { - - [JsonPropertyName("jwt_token")] - - [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingDefault)] - public string Jwt_token { get; set; } - - private IDictionary _additionalProperties; - - [JsonExtensionData] - public IDictionary AdditionalProperties - { - get { return _additionalProperties ?? (_additionalProperties = new Dictionary()); } - set { _additionalProperties = value; } - } - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.19.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.3.0))")] - public partial class Login - { - - [JsonPropertyName("username")] - - [JsonIgnore(Condition = JsonIgnoreCondition.Never)] - [System.ComponentModel.DataAnnotations.Required(AllowEmptyStrings = true)] - public string Username { get; set; } - - [JsonPropertyName("password")] - - [JsonIgnore(Condition = JsonIgnoreCondition.Never)] - [System.ComponentModel.DataAnnotations.Required(AllowEmptyStrings = true)] - public string Password { get; set; } - - private IDictionary _additionalProperties; - - [JsonExtensionData] - public IDictionary AdditionalProperties - { - get { return _additionalProperties ?? (_additionalProperties = new Dictionary()); } - set { _additionalProperties = value; } - } - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.19.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.3.0))")] - public partial class Registration - { - - [JsonPropertyName("username")] - - [JsonIgnore(Condition = JsonIgnoreCondition.Never)] - [System.ComponentModel.DataAnnotations.Required(AllowEmptyStrings = true)] - public string Username { get; set; } - - [JsonPropertyName("email")] - - [JsonIgnore(Condition = JsonIgnoreCondition.Never)] - [System.ComponentModel.DataAnnotations.Required(AllowEmptyStrings = true)] - public string Email { get; set; } - - [JsonPropertyName("password")] - - [JsonIgnore(Condition = JsonIgnoreCondition.Never)] - [System.ComponentModel.DataAnnotations.Required(AllowEmptyStrings = true)] - public string Password { get; set; } - - [JsonPropertyName("password_repeat")] - - [JsonIgnore(Condition = JsonIgnoreCondition.Never)] - [System.ComponentModel.DataAnnotations.Required(AllowEmptyStrings = true)] - public string Password_repeat { get; set; } - - [JsonPropertyName("registration_token")] - - [JsonIgnore(Condition = JsonIgnoreCondition.Never)] - [System.ComponentModel.DataAnnotations.Required(AllowEmptyStrings = true)] - public string Registration_token { get; set; } - - private IDictionary _additionalProperties; - - [JsonExtensionData] - public IDictionary AdditionalProperties - { - get { return _additionalProperties ?? (_additionalProperties = new Dictionary()); } - set { _additionalProperties = value; } - } - - } - - -} - -#pragma warning restore 108 -#pragma warning restore 114 -#pragma warning restore 472 -#pragma warning restore 612 -#pragma warning restore 1573 -#pragma warning restore 1591 -#pragma warning restore 8073 -#pragma warning restore 3016 -#pragma warning restore 8603 diff --git a/FrontendAvalonia/FrontendAvalonia/Services/GamenightApi/Gamenight.yaml b/FrontendAvalonia/FrontendAvalonia/Services/GamenightApi/Gamenight.yaml deleted file mode 100644 index ea992bc..0000000 --- a/FrontendAvalonia/FrontendAvalonia/Services/GamenightApi/Gamenight.yaml +++ /dev/null @@ -1,224 +0,0 @@ -openapi: 3.0.0 -x-stoplight: - id: w776sltk0h1bo -info: - title: Gamenight - version: '1.0' - contact: - name: Dennis Brentjes - email: dennis@brentj.es - url: 'https://brentj.es' - description: Api specifaction for a Gamenight server - license: - name: MIT -servers: - - url: 'http://localhost:8080' - description: Gamenight -paths: - /token: - post: - summary: '' - operationId: get-token - responses: - '200': - $ref: '#/components/responses/TokenResponse' - '401': - $ref: '#/components/responses/FailureResponse' - requestBody: - $ref: '#/components/requestBodies/LoginRequest' - description: Submit your credentials to get a JWT-token to use with the rest of the api. - parameters: [] - /user: - post: - summary: '' - operationId: post-register - requestBody: - $ref: '#/components/requestBodies/RegisterRequest' - responses: - '200': - description: '' - '422': - $ref: '#/components/responses/FailureResponse' - description: 'Create a new user given a registration token and user information, username and email must be unique, and password and password_repeat must match.' - parameters: [] - /gamenights: - get: - summary: Your GET endpoint - responses: - '200': - $ref: '#/components/responses/GamenightsResponse' - '400': - $ref: '#/components/responses/FailureResponse' - '401': - $ref: '#/components/responses/FailureResponse' - operationId: get-gamenights - security: - - JWT-Auth: [] - description: Retrieve the list of gamenights on this gamenight server. Requires authorization. - /gamenight: - post: - summary: '' - operationId: post-gamenight - responses: - '200': - description: OK - '401': - $ref: '#/components/responses/FailureResponse' - '422': - $ref: '#/components/responses/FailureResponse' - security: - - JWT-Auth: [] - requestBody: - $ref: '#/components/requestBodies/AddGamenight' - description: 'Add a gamenight by providing a name and a date, only available when providing an JWT token.' - get: - summary: '' - operationId: get-gamenight - responses: - '200': - $ref: '#/components/responses/GamenightResponse' - '401': - $ref: '#/components/responses/FailureResponse' - '422': - $ref: '#/components/responses/FailureResponse' - requestBody: - $ref: '#/components/requestBodies/GetGamenight' - security: - - JWT-Auth: [] -components: - schemas: - Gamenight: - title: Gamenight - x-stoplight: - id: 0nmru75ph5wh3 - type: object - properties: - id: - type: string - name: - type: string - datetime: - type: string - owner_id: - type: string - required: - - id - - name - - datetime - - owner_id - Failure: - title: Failure - type: object - properties: - message: - type: string - description: '' - Token: - title: Token - x-stoplight: - id: 8pz19kigm1jer - type: object - properties: - jwt_token: - type: string - Login: - title: Login - type: object - properties: - username: - type: string - password: - type: string - required: - - username - - password - Registration: - title: Registration - type: object - properties: - username: - type: string - email: - type: string - password: - type: string - password_repeat: - type: string - registration_token: - type: string - required: - - username - - email - - password - - password_repeat - - registration_token - requestBodies: - LoginRequest: - content: - application/json: - schema: - $ref: '#/components/schemas/Login' - RegisterRequest: - content: - application/json: - schema: - $ref: '#/components/schemas/Registration' - AddGamenight: - content: - application/json: - schema: - type: object - properties: - name: - type: string - datetime: - type: string - GetGamenight: - content: - application/json: - schema: - type: object - properties: - id: - type: string - responses: - TokenResponse: - description: Example response - content: - application/json: - schema: - $ref: '#/components/schemas/Token' - FailureResponse: - description: Example response - content: - application/json: - schema: - $ref: '#/components/schemas/Failure' - application/xml: - schema: - type: object - properties: - message: - type: string - required: - - message - GamenightsResponse: - description: Example response - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/Gamenight' - GamenightResponse: - description: Example response - content: - application/json: - schema: - $ref: '#/components/schemas/Gamenight' - securitySchemes: - JWT-Auth: - type: http - scheme: bearer - bearerFormat: JWT - description: '' diff --git a/FrontendAvalonia/FrontendAvalonia/ViewLocator.cs b/FrontendAvalonia/FrontendAvalonia/ViewLocator.cs deleted file mode 100644 index 7849ce6..0000000 --- a/FrontendAvalonia/FrontendAvalonia/ViewLocator.cs +++ /dev/null @@ -1,22 +0,0 @@ -using System; -using System.Runtime.Serialization; -using Avalonia.Controls; -using Avalonia.Controls.Templates; -using FrontendAvalonia.ViewModels; -using FrontendAvalonia.Views; -using ReactiveUI; - -namespace FrontendAvalonia; - -public class ViewLocator : IViewLocator -{ - public IViewFor? ResolveView(T? viewModel, string? contract = null) - { - return viewModel switch - { - GamenightsViewModel context => new GamenightsView { DataContext = context }, - LoginViewModel context => new LoginView { DataContext = context }, - _ => throw new InvalidOperationException($"Cannot find view for {viewModel?.GetType().Name}") - }; - } -} \ No newline at end of file diff --git a/FrontendAvalonia/FrontendAvalonia/ViewModels/AddGamenightViewModel.cs b/FrontendAvalonia/FrontendAvalonia/ViewModels/AddGamenightViewModel.cs deleted file mode 100644 index 8e1b05a..0000000 --- a/FrontendAvalonia/FrontendAvalonia/ViewModels/AddGamenightViewModel.cs +++ /dev/null @@ -1,86 +0,0 @@ -using System; -using System.Runtime.InteropServices.JavaScript; -using System.Threading; -using System.Threading.Tasks; -using System.Windows.Input; -using FrontendAvalonia.Models; -using FrontendAvalonia.Services.GamenightApi; -using ReactiveUI; - -namespace FrontendAvalonia.ViewModels; - -public class AddGamenightViewModel : ViewModelBase -{ - private IGamenight Gamenight { get; } - - private GamenightModel GamenightModel { get; } - - private bool _expanded; - - public bool Expanded - { - get => _expanded; - set => this.RaiseAndSetIfChanged(ref _expanded, value); - } - - public AddGamenightViewModel(IGamenight gamenight, GamenightModel gamenightModel) - { - Gamenight = gamenight; - GamenightModel = gamenightModel; - StartDate = DateTime.Now.Date; - EndDate = DateTime.Now.Date; - AddCommand = ReactiveCommand.CreateFromTask(AddGamenight); - } - - private async Task AddGamenight(CancellationToken ct) - { - var body = new Gamenight - { - Name = Name, - Datetime = (StartDate + StartTime).ToString("u").Replace(" ", "T"), - }; - await Gamenight.PostGamenight(body, GamenightModel.UserToken, ct); - } - - private string _name = string.Empty; - - public string Name - { - get => _name; - set => this.RaiseAndSetIfChanged(ref _name, value); - } - - private DateTimeOffset _startDate; - - public DateTimeOffset StartDate - { - get => _startDate; - set => this.RaiseAndSetIfChanged(ref _startDate, value); - } - - private TimeSpan _startTime; - - public TimeSpan StartTime - { - get => _startTime; - set => this.RaiseAndSetIfChanged(ref _startTime, value); - } - - private DateTimeOffset _endDate; - - public DateTimeOffset EndDate - { - get => _endDate; - set => this.RaiseAndSetIfChanged(ref _endDate, value); - } - - private TimeSpan _endTime; - - public TimeSpan EndTime - { - get => _endTime; - set => this.RaiseAndSetIfChanged(ref _endTime, value); - } - - public ICommand AddCommand { get; } -} \ No newline at end of file diff --git a/FrontendAvalonia/FrontendAvalonia/ViewModels/GamenightsViewModel.cs b/FrontendAvalonia/FrontendAvalonia/ViewModels/GamenightsViewModel.cs deleted file mode 100644 index 754c7b4..0000000 --- a/FrontendAvalonia/FrontendAvalonia/ViewModels/GamenightsViewModel.cs +++ /dev/null @@ -1,44 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using DynamicData.Binding; -using FrontendAvalonia.Models; -using FrontendAvalonia.Services.GamenightApi; -using ReactiveUI; - -namespace FrontendAvalonia.ViewModels; - -public class GamenightsViewModel : PageViewModelBase -{ - private IGamenight Gamenight { get; } - private GamenightModel Model { get; } - private LoginViewModel LoginViewModel { get; } - - public AddGamenightViewModel AddGamenightViewModel { get; } - - private ObservableCollectionExtended _gamenightItems = new ObservableCollectionExtended(); - public ObservableCollectionExtended GamenightItems { - get => _gamenightItems; - set => this.RaiseAndSetIfChanged(ref _gamenightItems, value); - } - - public GamenightsViewModel(IScreen screen, IGamenight gamenight, GamenightModel model, LoginViewModel loginViewModel) - : base(screen) - { - Gamenight = gamenight; - Model = model; - LoginViewModel = loginViewModel; - AddGamenightViewModel = new AddGamenightViewModel(Gamenight, model); - this._gamenightItems.Add(AddGamenightViewModel); - this.WhenActivated(OnActivated); - } - - private IEnumerable OnActivated() - { - if (Model.UserToken == null) - { - HostScreen.Router.Navigate.Execute(LoginViewModel); - } - return Enumerable.Empty(); - } -} \ No newline at end of file diff --git a/FrontendAvalonia/FrontendAvalonia/ViewModels/LoginViewModel.cs b/FrontendAvalonia/FrontendAvalonia/ViewModels/LoginViewModel.cs deleted file mode 100644 index d4e25d8..0000000 --- a/FrontendAvalonia/FrontendAvalonia/ViewModels/LoginViewModel.cs +++ /dev/null @@ -1,37 +0,0 @@ -using System.Threading.Tasks; -using System.Windows.Input; -using FrontendAvalonia.Models; -using FrontendAvalonia.Services.GamenightApi; -using FrontendAvalonia.Views; -using ReactiveUI; - -namespace FrontendAvalonia.ViewModels; - -public class LoginViewModel : PageViewModelBase -{ - private IGamenight GamenightApi { get; } - private GamenightModel Model { get; } - - public string Username { get; set; } = string.Empty; - public string Password { get; set; } = string.Empty; - public ICommand LoginCommand { get; } - - public LoginViewModel(IScreen screen, IGamenight gamenightApi, GamenightModel model) - :base(screen) - { - GamenightApi = gamenightApi; - Model = model; - - LoginCommand = ReactiveCommand.CreateFromTask(Login); - } - - private async Task Login() - { - var result = await GamenightApi.GetToken(new Login { Username = Username, Password = Password }); - if (result is { IsSuccessStatusCode: true }) - { - Model.UserToken = result.Content?.Jwt_token; - HostScreen.Router.NavigateBack.Execute(); - } - } -} \ No newline at end of file diff --git a/FrontendAvalonia/FrontendAvalonia/ViewModels/MainScreenViewModel.cs b/FrontendAvalonia/FrontendAvalonia/ViewModels/MainScreenViewModel.cs deleted file mode 100644 index eb5789a..0000000 --- a/FrontendAvalonia/FrontendAvalonia/ViewModels/MainScreenViewModel.cs +++ /dev/null @@ -1,8 +0,0 @@ -using ReactiveUI; - -namespace FrontendAvalonia.ViewModels; - -public class MainScreenViewModel : IScreen -{ - public RoutingState Router { get; } = new(); -} \ No newline at end of file diff --git a/FrontendAvalonia/FrontendAvalonia/ViewModels/MainViewModel.cs b/FrontendAvalonia/FrontendAvalonia/ViewModels/MainViewModel.cs deleted file mode 100644 index 97b4e6d..0000000 --- a/FrontendAvalonia/FrontendAvalonia/ViewModels/MainViewModel.cs +++ /dev/null @@ -1,92 +0,0 @@ -using System; -using System.Collections; -using System.Collections.Generic; -using System.Reactive; -using System.Threading.Tasks; -using System.Windows.Input; -using Avalonia.Controls; -using Avalonia.Input; -using DynamicData.Binding; -using FrontendAvalonia.Models; -using FrontendAvalonia.Services.GamenightApi; -using ReactiveUI; - -namespace FrontendAvalonia.ViewModels; - -public class MainViewModel : PageViewModelBase -{ - private GamenightModel GamenightModel { get; } - - private List _MenuItems = new(); - - public List MenuItems - { - get => _MenuItems; - set => this.RaiseAndSetIfChanged(ref _MenuItems, value); - } - - public IGamenight? Gamenight { get; } - - private LoginViewModel LoginViewModel { get; } - - private GamenightsViewModel GamenightsViewModel { get; } - - public MainViewModel(IScreen screen, GamenightModel gamenightModel, IGamenight gamenight, LoginViewModel loginViewModel, GamenightsViewModel gamenightsViewModel) - :base(screen) - { - GamenightModel = gamenightModel; - MenuItems = new List(); - Gamenight = gamenight; - LoginViewModel = loginViewModel; - GamenightsViewModel = gamenightsViewModel; - - gamenightModel.WhenAnyValue(m => m.UserToken).Subscribe(CreateMenuItems); - } - - private Task NavigateToLoginPage() - { - return Task.FromResult(HostScreen.Router.Navigate.Execute(LoginViewModel)); - } - - private Task NavigateToGamenightsPage() - { - return Task.FromResult(HostScreen.Router.NavigateAndReset.Execute(GamenightsViewModel)); - } - - private void CreateMenuItems(string? userToken) - { - if (userToken != null) - { - MenuItems = new List - { - new() - { - Header = "_Logout", - Command = ReactiveCommand.Create(async () => - { - GamenightModel.UserToken = null; - await NavigateToGamenightsPage(); - }), - CommandParameter = null!, - Items = new List(), - } - }; - } - else - { - MenuItems = new List - { - new() - { - Header = "_Login", - Command = ReactiveCommand.CreateFromTask(NavigateToLoginPage), - CommandParameter = null!, - Items = new List(), - } - }; - } - } - - // The command that navigates a user back. - public ReactiveCommand GoBack => HostScreen.Router.NavigateBack; -} diff --git a/FrontendAvalonia/FrontendAvalonia/ViewModels/MenuItemViewModel.cs b/FrontendAvalonia/FrontendAvalonia/ViewModels/MenuItemViewModel.cs deleted file mode 100644 index 7ad6ec1..0000000 --- a/FrontendAvalonia/FrontendAvalonia/ViewModels/MenuItemViewModel.cs +++ /dev/null @@ -1,14 +0,0 @@ -using System.Collections.Generic; -using System.Windows.Input; -using ReactiveUI; - -namespace FrontendAvalonia.ViewModels -{ - public class MenuItemViewModel : ViewModelBase - { - public string Header { get; set; } = "Placeholder"; - public ICommand Command { get; set; } = ReactiveCommand.Create(() => { }); - public object? CommandParameter { get; set; } = null; - public IList Items { get; set; } = new List(); - } -} diff --git a/FrontendAvalonia/FrontendAvalonia/ViewModels/PageViewModelBase.cs b/FrontendAvalonia/FrontendAvalonia/ViewModels/PageViewModelBase.cs deleted file mode 100644 index 66d8bd9..0000000 --- a/FrontendAvalonia/FrontendAvalonia/ViewModels/PageViewModelBase.cs +++ /dev/null @@ -1,16 +0,0 @@ -using ReactiveUI; - -namespace FrontendAvalonia.ViewModels; - -public class PageViewModelBase : ViewModelBase, IRoutableViewModel, IActivatableViewModel -{ - public PageViewModelBase(IScreen screen) - { - UrlPathSegment = GetType().Name.Replace("ViewModel", ""); - HostScreen = screen; - } - - public string? UrlPathSegment { get; } - public IScreen HostScreen { get; } - public ViewModelActivator Activator { get; } = new(); -} \ No newline at end of file diff --git a/FrontendAvalonia/FrontendAvalonia/ViewModels/ViewModelBase.cs b/FrontendAvalonia/FrontendAvalonia/ViewModels/ViewModelBase.cs deleted file mode 100644 index 65e9afc..0000000 --- a/FrontendAvalonia/FrontendAvalonia/ViewModels/ViewModelBase.cs +++ /dev/null @@ -1,8 +0,0 @@ -using Microsoft.CodeAnalysis.CSharp.Syntax; -using ReactiveUI; - -namespace FrontendAvalonia.ViewModels; - -public class ViewModelBase : ReactiveObject -{ -} diff --git a/FrontendAvalonia/FrontendAvalonia/Views/AddGamenight.axaml b/FrontendAvalonia/FrontendAvalonia/Views/AddGamenight.axaml deleted file mode 100644 index 53bdfc8..0000000 --- a/FrontendAvalonia/FrontendAvalonia/Views/AddGamenight.axaml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - diff --git a/FrontendAvalonia/FrontendAvalonia/Views/LoginView.axaml.cs b/FrontendAvalonia/FrontendAvalonia/Views/LoginView.axaml.cs deleted file mode 100644 index c23f90f..0000000 --- a/FrontendAvalonia/FrontendAvalonia/Views/LoginView.axaml.cs +++ /dev/null @@ -1,14 +0,0 @@ -using Avalonia.ReactiveUI; -using FrontendAvalonia.ViewModels; -using ReactiveUI; - -namespace FrontendAvalonia.Views; - -public partial class LoginView : ReactiveUserControl -{ - public LoginView() - { - this.WhenActivated(disposables => { }); - InitializeComponent(); - } -} \ No newline at end of file diff --git a/FrontendAvalonia/FrontendAvalonia/Views/MainView.axaml b/FrontendAvalonia/FrontendAvalonia/Views/MainView.axaml deleted file mode 100644 index cdab6ab..0000000 --- a/FrontendAvalonia/FrontendAvalonia/Views/MainView.axaml +++ /dev/null @@ -1,47 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ); - } else { - return ( - setExpanded(true)}> - - - ); - } -} - -export default AddGameNight \ No newline at end of file diff --git a/frontend/src/components/AdminPanel.jsx b/frontend/src/components/AdminPanel.jsx deleted file mode 100644 index 2a1b50b..0000000 --- a/frontend/src/components/AdminPanel.jsx +++ /dev/null @@ -1,178 +0,0 @@ -import {useState, useEffect} from 'react'; -import Checkbox from '@mui/material/Checkbox'; -import Table from '@mui/material/Table'; -import TableBody from '@mui/material/TableBody'; -import TableCell from '@mui/material/TableCell'; -import TableContainer from '@mui/material/TableContainer'; -import TableHead from '@mui/material/TableHead'; -import TablePagination from '@mui/material/TablePagination'; -import TableRow from '@mui/material/TableRow'; -import Button from '@mui/material/Button'; -import TextField from '@mui/material/TextField'; -import IconButton from '@mui/material/IconButton'; -import DeleteIcon from '@mui/icons-material/Delete'; -import { DateTimePicker } from '@mui/x-date-pickers'; -import { AdapterDateFns } from '@mui/x-date-pickers/AdapterDateFns'; -import { LocalizationProvider } from '@mui/x-date-pickers/LocalizationProvider'; - -import moment from 'moment'; -import {get_registration_tokens, add_registration_token, delete_registration_token, unpack_api_result} from '../api/Api'; - -function AdminPanel(props) { - - const [page, setPage] = useState(0); - const [rowsPerPage, setRowsPerPage] = useState(10); - const [registrationTokens, setRegistrationTokens] = useState([]); - const [expires, setExpires] = useState(null); - const [isSingleUse, setIsSingleUse] = useState(false); - - const handleChangePage = (event, newPage) => { - setPage(newPage); - }; - - const handleChangeRowsPerPage = (event) => { - setRowsPerPage(+event.target.value); - setPage(0); - }; - - const refetchTokens = () => { - if(props.user !== null) { - unpack_api_result(get_registration_tokens(props.user.jwt), props.setFlash) - .then(result => setRegistrationTokens(result.registration_tokens)); - } - } - - const deleteToken = (id) => { - if(props.user !== null) { - unpack_api_result(delete_registration_token(props.user.jwt, id), props.setFlash) - .then(() => refetchTokens()) - } - } - - const handleAddToken = () => { - let input = { - single_use: isSingleUse, - expires: expires, - } - - if(props.user !== null) { - unpack_api_result(add_registration_token(props.user.jwt, input), props.setFlash) - .then(() => refetchTokens()) - } - } - - useEffect(() => { - refetchTokens() - }, []) - - let columns = [ - { - id: 'single_use', - label: 'Single Use', - minWidth: 30, - format: value => (value ? "Yes" : "No") - }, - { id: 'token', label: 'Token', minwidht: 300}, - { - id: 'expires', - label: 'Expires', - minwidth: 200, - format: value => (moment(value).format('LL HH:mm')) - }, - { - id: 'delete_button', - label: '', - minwidth: 20, - } - ]; - - return ( - <> - -
-
{ e.preventDefault(); }}> - }/> - - setIsSingleUse(e.target.checked)}/> - - - -
-
- - - - - - {columns.map((column) => ( - - {column.label} - - ))} - - - - {registrationTokens - .slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage) - .map((row) => { - return ( - - {columns.map((column) => { - const value = row[column.id]; - return ( - - {column.format - ? column.format(value) - : value} - - ); - })} - - { - e.stopPropagation(); - deleteToken(row.id) - }}> - - - - - ); - })} - -
-
- {registrationTokens.length > rowsPerPage && - } - - ); -} - -export default AdminPanel diff --git a/frontend/src/components/GameAdder.jsx b/frontend/src/components/GameAdder.jsx deleted file mode 100644 index 8d45dfe..0000000 --- a/frontend/src/components/GameAdder.jsx +++ /dev/null @@ -1,60 +0,0 @@ -import * as React from 'react'; -import TextField from '@mui/material/TextField'; -import Chip from '@mui/material/Chip'; -import Autocomplete from '@mui/material/Autocomplete'; - -export default function GameAdder(props) { - - const [value, setValue] = React.useState([]); - - const emptyUuid = "00000000-0000-0000-0000-000000000000"; - - return ( - option.name} - freeSolo - selectOnFocus - renderTags={(value, getTagProps) => - value.map((option, index) => ( - - )) - } - renderInput={(params) => ( - - )} - onChange={(event, newValue) => { - newValue = newValue.map(option => { - if (typeof option === 'string') { - var match = props.games.find(g => g.name.toLowerCase() === option.toLowerCase()); - if(match !== undefined) { - return match - } else { - return {id: emptyUuid, name: option}; - } - } - else { - return option; - } - }); - - newValue = newValue.filter((value, index, self) => - index === self.findIndex((t) => ( - t.id === value.id && t.name === value.name - )) - ); - setValue(newValue); - props.onChange(newValue); - }} - - /> - ); -} \ No newline at end of file diff --git a/frontend/src/components/Gamenight.jsx b/frontend/src/components/Gamenight.jsx deleted file mode 100644 index 624196e..0000000 --- a/frontend/src/components/Gamenight.jsx +++ /dev/null @@ -1,127 +0,0 @@ -import React, { useState, useEffect } from 'react'; -import List from '@mui/material/List'; -import ListItem from '@mui/material/ListItem'; -import ListItemText from '@mui/material/ListItemText'; -import ListSubheader from '@mui/material/ListSubheader'; -import ArrowBackIcon from '@mui/icons-material/ArrowBack'; -import IconButton from '@mui/material/IconButton'; -import Typography from '@mui/material/Typography'; -import Button from '@mui/material/Button'; - -import moment from 'moment'; -import {unpack_api_result, get_gamenight, patch_gamenight} from '../api/Api'; - -function Gamenight(props) { - - const [dense, setDense] = useState(true); - const [gamenight, setGamenight] = useState(null); - - const fetchGamenight = () => { - if (props.user !== null) { - unpack_api_result(get_gamenight(props.gamenightId, props.user.jwt), props.setFlash) - .then(result => setGamenight(result.gamenight)); - } - } - - useEffect(fetchGamenight, []); - - let games = gamenight?.game_list.map(g => - ( - - - - ) - ); - - const participants = gamenight?.participants.map(p => - ( - - - - ) - ); - - const Join = () => { - const input = { - action: 'AddParticipant' - }; - - unpack_api_result(patch_gamenight(gamenight.id, input, props.user.jwt), props.setFlash) - .then(() => fetchGamenight()); - }; - - const Leave = () => { - const input = { - action: 'RemoveParticipant', - }; - - unpack_api_result(patch_gamenight(gamenight.id, input, props.user.jwt), props.setFlash) - .then(() => fetchGamenight()); - }; - - let join_or_leave_button; - if(gamenight?.participants.find(p => p.id === props.user.id) === undefined) { - join_or_leave_button = ( - - ) - } else { - join_or_leave_button = ( - - ) - } - - return ( -
- props.onDismis()}> - - - - - {gamenight?.name} - - - When: {moment(gamenight?.datetime).format('LL HH:mm')} - - - - Games: - - }> - {games} - - - Participants: - - }> - {participants} - - {join_or_leave_button} -
- ) -} - -export default Gamenight diff --git a/frontend/src/components/Gamenights.jsx b/frontend/src/components/Gamenights.jsx deleted file mode 100644 index a86903c..0000000 --- a/frontend/src/components/Gamenights.jsx +++ /dev/null @@ -1,74 +0,0 @@ -import * as React from 'react'; -import List from '@mui/material/List'; -import ListItem from '@mui/material/ListItem'; -import ListItemAvatar from '@mui/material/ListItemAvatar'; -import ListItemText from '@mui/material/ListItemText'; -import Avatar from '@mui/material/Avatar'; -import IconButton from '@mui/material/IconButton'; -import GamesIcon from '@mui/icons-material/Games'; -import DeleteIcon from '@mui/icons-material/Delete'; - -import AddGameNight from './AddGameNight'; -import {delete_gamenight, unpack_api_result} from '../api/Api'; - -function Gamenights(props) { - const [dense, setDense] = React.useState(false); - - const DeleteGamenight = (game_id) => { - if (props.user !== null) { - const input = { game_id: game_id }; - unpack_api_result(delete_gamenight(input, props.user.jwt), props.setFlash) - .then(() => props.refetchGamenights()); - } - } - - let gamenights = props.gamenights.map(g => { - let secondaryAction; - if(props.user.id === g.owner_id || props.user.role === 'Admin') { - secondaryAction = ( - { - e.stopPropagation(); - DeleteGamenight(g.id) - }}> - - - ) - } - return ( - props.onSelectGamenight(g)} - secondaryAction={ - secondaryAction - }> - - - - - - - - ) - }); - - return ( - <> - - - {gamenights} - - - ); -} - -export default Gamenights diff --git a/frontend/src/components/Login.jsx b/frontend/src/components/Login.jsx deleted file mode 100644 index 2a061ed..0000000 --- a/frontend/src/components/Login.jsx +++ /dev/null @@ -1,42 +0,0 @@ -import React, { useState } from 'react'; - -function Login(props) { - const [username, setUsername] = useState(""); - const [password, setPassword] = useState(""); - - const handleUsernameChange = (event) => { - setUsername(event.target.value); - }; - - const handlePasswordChange = (event) => { - setPassword(event.target.value); - }; - - const handleLogin = (event) => { - props.onChange({ username: username, password: password }); - event.preventDefault(); - }; - - return ( -
-
-
- Login - - - - - - - -
-
-
- ); -} - -export default Login diff --git a/frontend/src/components/MenuBar.jsx b/frontend/src/components/MenuBar.jsx deleted file mode 100644 index 93258b5..0000000 --- a/frontend/src/components/MenuBar.jsx +++ /dev/null @@ -1,64 +0,0 @@ -import * as React from 'react'; -import AppBar from '@mui/material/AppBar'; -import Toolbar from '@mui/material/Toolbar'; -import Typography from '@mui/material/Typography'; -import Button from '@mui/material/Button'; -import IconButton from '@mui/material/IconButton'; -import MenuIcon from '@mui/icons-material/Menu'; - -function MenuBar(props) { - - let adminPanelButton = null; - if (props.user?.role === 'Admin') { - adminPanelButton = ( - - ); - } - - let userButton = null; - if (props.user != null) { - userButton = ( - - ); - } - - return ( - - - - - - - Gamenight! - - {userButton !== null && userButton} - {adminPanelButton !== null && adminPanelButton} - - - - ); -} - -export default MenuBar; diff --git a/frontend/src/index.css b/frontend/src/index.css deleted file mode 100644 index ec2585e..0000000 --- a/frontend/src/index.css +++ /dev/null @@ -1,13 +0,0 @@ -body { - margin: 0; - font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', - 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', - sans-serif; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} - -code { - font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', - monospace; -} diff --git a/frontend/src/index.js b/frontend/src/index.js deleted file mode 100644 index d563c0f..0000000 --- a/frontend/src/index.js +++ /dev/null @@ -1,17 +0,0 @@ -import React from 'react'; -import ReactDOM from 'react-dom/client'; -import './index.css'; -import App from './App'; -import reportWebVitals from './reportWebVitals'; - -const root = ReactDOM.createRoot(document.getElementById('root')); -root.render( - - - -); - -// If you want to start measuring performance in your app, pass a function -// to log results (for example: reportWebVitals(console.log)) -// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals -reportWebVitals(); diff --git a/frontend/src/logo.svg b/frontend/src/logo.svg deleted file mode 100644 index 9dfc1c0..0000000 --- a/frontend/src/logo.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/frontend/src/reportWebVitals.js b/frontend/src/reportWebVitals.js deleted file mode 100644 index 5253d3a..0000000 --- a/frontend/src/reportWebVitals.js +++ /dev/null @@ -1,13 +0,0 @@ -const reportWebVitals = onPerfEntry => { - if (onPerfEntry && onPerfEntry instanceof Function) { - import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => { - getCLS(onPerfEntry); - getFID(onPerfEntry); - getFCP(onPerfEntry); - getLCP(onPerfEntry); - getTTFB(onPerfEntry); - }); - } -}; - -export default reportWebVitals; diff --git a/frontend/src/setupTests.js b/frontend/src/setupTests.js deleted file mode 100644 index 8f2609b..0000000 --- a/frontend/src/setupTests.js +++ /dev/null @@ -1,5 +0,0 @@ -// jest-dom adds custom jest matchers for asserting on DOM nodes. -// allows you to do things like: -// expect(element).toHaveTextContent(/react/i) -// learn more: https://github.com/testing-library/jest-dom -import '@testing-library/jest-dom'; diff --git a/gamenight-api-client-rs/.gitignore b/gamenight-api-client-rs/.gitignore index 6aa1064..00298ec 100644 --- a/gamenight-api-client-rs/.gitignore +++ b/gamenight-api-client-rs/.gitignore @@ -1,3 +1,9 @@ /target/ +git_push.sh **/*.rs.bk Cargo.lock +docs +src +.travis.yml +.openapi-generator +.openapi-generator-ignore diff --git a/gamenight-database/migrations/2022-05-28-142526_gamenight participants/down.sql b/gamenight-database/migrations/2022-05-28-142526_gamenight participant/down.sql similarity index 100% rename from gamenight-database/migrations/2022-05-28-142526_gamenight participants/down.sql rename to gamenight-database/migrations/2022-05-28-142526_gamenight participant/down.sql diff --git a/gamenight-database/migrations/2022-05-28-142526_gamenight participants/up.sql b/gamenight-database/migrations/2022-05-28-142526_gamenight participant/up.sql similarity index 100% rename from gamenight-database/migrations/2022-05-28-142526_gamenight participants/up.sql rename to gamenight-database/migrations/2022-05-28-142526_gamenight participant/up.sql diff --git a/gamenight-database/src/gamenight_participants.rs b/gamenight-database/src/gamenight_participants.rs index e3bd08b..c878931 100644 --- a/gamenight-database/src/gamenight_participants.rs +++ b/gamenight-database/src/gamenight_participants.rs @@ -11,7 +11,7 @@ use super::DbConnection; #[diesel(belongs_to(Gamenight))] #[diesel(belongs_to(User))] #[diesel(table_name = gamenight_participant)] -pub struct GamenightParticipants { +pub struct GamenightParticipant { pub gamenight_id: Uuid, pub user_id: Uuid, } diff --git a/gamenight-database/src/schema/schema.rs b/gamenight-database/src/schema/schema.rs new file mode 100644 index 0000000..cd1f2af --- /dev/null +++ b/gamenight-database/src/schema/schema.rs @@ -0,0 +1,83 @@ +// @generated automatically by Diesel CLI. + +pub mod sql_types { + #[derive(diesel::sql_types::SqlType)] + #[diesel(postgres_type(name = "role"))] + pub struct Role; +} + +diesel::table! { + gamenight (id) { + id -> Uuid, + name -> Varchar, + datetime -> Timestamptz, + owner_id -> Uuid, + } +} + +diesel::table! { + gamenight_gamelist (gamenight_id, game_id) { + gamenight_id -> Uuid, + game_id -> Uuid, + } +} + +diesel::table! { + gamenight_participant (gamenight_id, user_id) { + gamenight_id -> Uuid, + user_id -> Uuid, + } +} + +diesel::table! { + known_games (id) { + id -> Uuid, + name -> Varchar, + } +} + +diesel::table! { + pwd (user_id) { + user_id -> Uuid, + password -> Varchar, + } +} + +diesel::table! { + registration_tokens (id) { + id -> Uuid, + #[max_length = 32] + token -> Bpchar, + single_use -> Bool, + expires -> Nullable, + } +} + +diesel::table! { + use diesel::sql_types::*; + use super::sql_types::Role; + + users (id) { + id -> Uuid, + username -> Varchar, + email -> Varchar, + role -> Role, + } +} + +diesel::joinable!(gamenight -> users (owner_id)); +diesel::joinable!(gamenight_gamelist -> gamenight (gamenight_id)); +diesel::joinable!(gamenight_gamelist -> known_games (game_id)); +diesel::joinable!(gamenight_participant -> gamenight (gamenight_id)); +diesel::joinable!(gamenight_participant -> users (user_id)); +diesel::joinable!(pwd -> users (user_id)); + +diesel::allow_tables_to_appear_in_same_query!( + gamenight, + gamenight_gamelist, + gamenight_participant, + known_games, + pwd, + registration_tokens, + users, +);