From 838b3ab450c2ec9866bd5655cb4d7a0ad58c8685 Mon Sep 17 00:00:00 2001 From: Derek Holloway Date: Mon, 12 May 2025 16:57:19 -0700 Subject: [PATCH] init commit over here --- Dockerfile | 26 ++ MistoxWebsite.sln | 37 ++ ToDo.txt | 24 ++ database/Dockerfile | 8 + database/mistox.sql | 104 +++++ docker-build-Internal-Tests.sh | 10 + docker-build.sh | 8 + docker-compose.yml | 29 ++ src/MistoxWebsite.Client/App.razor | 20 + src/MistoxWebsite.Client/App.razor.css | 2 + .../MistoxWebsite.Client.csproj | 31 ++ src/MistoxWebsite.Client/Pages/About.razor | 38 ++ .../ActivityPages/ForgotPassword.razor | 43 ++ .../Pages/Account/ActivityPages/Login.razor | 89 ++++ .../Account/ActivityPages/Register.razor | 116 ++++++ .../Account/ActivityPages/ResetPassword.razor | 57 +++ .../Account/ActivityPages/VerifyEmail.razor | 43 ++ .../Pages/Account/Manage/Account.razor | 123 ++++++ .../Pages/Account/Manage/Account.razor.css | 15 + .../Pages/Account/Manage/Manage.razor | 38 ++ .../Pages/Account/Manage/Manage.razor.css | 6 + .../Account/Manage/ProjectMistData.razor | 10 + .../Pages/Account/Manage/WebsiteData.razor | 183 +++++++++ .../Account/Manage/WebsiteData.razor.css | 115 ++++++ .../Pages/Admin/CreateProduct.razor | 74 ++++ .../Pages/Admin/EditProduct.razor | 80 ++++ src/MistoxWebsite.Client/Pages/Index.razor | 11 + .../Pages/Projects/Downloads.razor | 33 ++ .../Pages/Projects/Downloads.razor.css | 1 + .../Pages/Projects/Mist.razor | 29 ++ .../Pages/Projects/Mist.razor.css | 13 + .../Pages/Resume/Resume.razor | 283 +++++++++++++ .../Pages/Resume/Resume.razor.css | 191 +++++++++ .../Pages/Shared/Authorizing.razor | 5 + .../Pages/Shared/ExplorerChild.razor | 38 ++ .../Pages/Shared/MainLayout.razor | 19 + .../Pages/Shared/MainLayout.razor.css | 88 ++++ .../Pages/Shared/NavMenu.razor | 96 +++++ .../Pages/Shared/NavMenu.razor.css | 132 ++++++ .../Pages/Shared/NotAuthroized.razor | 13 + .../Pages/Shared/PageDoesntExist.razor | 7 + .../Pages/Shared/TitleBar.razor | 19 + .../Pages/Shared/TitleBar.razor.css | 43 ++ src/MistoxWebsite.Client/Pages/Snake.razor | 164 ++++++++ .../Pages/Store/Cart.razor | 82 ++++ .../Pages/Store/Cart.razor.css | 70 ++++ .../Pages/Store/Catalog.razor | 139 +++++++ .../Pages/Store/Catalog.razor.css | 123 ++++++ .../Pages/Store/Payment/Checkout.razor | 36 ++ .../Pages/Store/Payment/Checkout.razor.css | 7 + .../Pages/Store/Payment/Success.razor | 25 ++ .../Pages/Store/Receipt.razor | 71 ++++ src/MistoxWebsite.Client/Program.cs | 23 ++ .../Services/AuthStateProvider.cs | 49 +++ src/MistoxWebsite.Client/Services/Statics.cs | 21 + src/MistoxWebsite.Client/_Imports.razor | 26 ++ .../Controllers/AuthenticationController.cs | 387 ++++++++++++++++++ .../Controllers/PageLoad.cs | 41 ++ .../Controllers/PaymentController.cs | 165 ++++++++ .../Controllers/ProductController.cs | 261 ++++++++++++ .../MistoxWebsite.Server.csproj | 40 ++ src/MistoxWebsite.Server/Program.cs | 75 ++++ .../Properties/launchSettings.json | 19 + .../Services/DatabaseService/Account.cs | 194 +++++++++ .../DatabaseService/AccountInventory.cs | 116 ++++++ .../Services/DatabaseService/Cart.cs | 82 ++++ .../DatabaseService/DatabaseService.cs | 15 + .../Services/DatabaseService/PageLoad.cs | 122 ++++++ .../Services/DatabaseService/Product.cs | 140 +++++++ .../DatabaseService/ProjectMistData.cs | 71 ++++ .../Services/DatabaseService/Receipt.cs | 170 ++++++++ .../Services/DatabaseService/WebsiteData.cs | 115 ++++++ .../Services/EmailService/EmailService.cs | 42 ++ .../EmailService/ResetPasswordEmail.cs | 53 +++ .../Services/EmailService/VerifyEmail.cs | 54 +++ .../wwwroot/PaymentFrame.html | 179 ++++++++ src/MistoxWebsite.Server/wwwroot/Snake.html | 192 +++++++++ src/MistoxWebsite.Server/wwwroot/css/app.css | 169 ++++++++ src/MistoxWebsite.Server/wwwroot/favicon.ico | Bin 0 -> 5430 bytes src/MistoxWebsite.Server/wwwroot/icon-192.png | Bin 0 -> 2626 bytes .../wwwroot/img/MistoxLogo.png | Bin 0 -> 165427 bytes .../wwwroot/img/ResumeFace.jpg | Bin 0 -> 314885 bytes src/MistoxWebsite.Server/wwwroot/img/cart.png | Bin 0 -> 13632 bytes src/MistoxWebsite.Server/wwwroot/index.html | 46 +++ .../wwwroot/js/screenwidth.js | 6 + src/MistoxWebsite.Shared/DatabaseObjects.cs | 119 ++++++ .../MistoxWebsite.Shared.csproj | 9 + 87 files changed, 6068 insertions(+) create mode 100644 Dockerfile create mode 100644 MistoxWebsite.sln create mode 100644 ToDo.txt create mode 100644 database/Dockerfile create mode 100644 database/mistox.sql create mode 100755 docker-build-Internal-Tests.sh create mode 100755 docker-build.sh create mode 100644 docker-compose.yml create mode 100644 src/MistoxWebsite.Client/App.razor create mode 100644 src/MistoxWebsite.Client/App.razor.css create mode 100644 src/MistoxWebsite.Client/MistoxWebsite.Client.csproj create mode 100644 src/MistoxWebsite.Client/Pages/About.razor create mode 100644 src/MistoxWebsite.Client/Pages/Account/ActivityPages/ForgotPassword.razor create mode 100644 src/MistoxWebsite.Client/Pages/Account/ActivityPages/Login.razor create mode 100644 src/MistoxWebsite.Client/Pages/Account/ActivityPages/Register.razor create mode 100644 src/MistoxWebsite.Client/Pages/Account/ActivityPages/ResetPassword.razor create mode 100644 src/MistoxWebsite.Client/Pages/Account/ActivityPages/VerifyEmail.razor create mode 100644 src/MistoxWebsite.Client/Pages/Account/Manage/Account.razor create mode 100644 src/MistoxWebsite.Client/Pages/Account/Manage/Account.razor.css create mode 100644 src/MistoxWebsite.Client/Pages/Account/Manage/Manage.razor create mode 100644 src/MistoxWebsite.Client/Pages/Account/Manage/Manage.razor.css create mode 100644 src/MistoxWebsite.Client/Pages/Account/Manage/ProjectMistData.razor create mode 100644 src/MistoxWebsite.Client/Pages/Account/Manage/WebsiteData.razor create mode 100644 src/MistoxWebsite.Client/Pages/Account/Manage/WebsiteData.razor.css create mode 100644 src/MistoxWebsite.Client/Pages/Admin/CreateProduct.razor create mode 100644 src/MistoxWebsite.Client/Pages/Admin/EditProduct.razor create mode 100644 src/MistoxWebsite.Client/Pages/Index.razor create mode 100644 src/MistoxWebsite.Client/Pages/Projects/Downloads.razor create mode 100644 src/MistoxWebsite.Client/Pages/Projects/Downloads.razor.css create mode 100644 src/MistoxWebsite.Client/Pages/Projects/Mist.razor create mode 100644 src/MistoxWebsite.Client/Pages/Projects/Mist.razor.css create mode 100644 src/MistoxWebsite.Client/Pages/Resume/Resume.razor create mode 100644 src/MistoxWebsite.Client/Pages/Resume/Resume.razor.css create mode 100644 src/MistoxWebsite.Client/Pages/Shared/Authorizing.razor create mode 100644 src/MistoxWebsite.Client/Pages/Shared/ExplorerChild.razor create mode 100644 src/MistoxWebsite.Client/Pages/Shared/MainLayout.razor create mode 100644 src/MistoxWebsite.Client/Pages/Shared/MainLayout.razor.css create mode 100644 src/MistoxWebsite.Client/Pages/Shared/NavMenu.razor create mode 100644 src/MistoxWebsite.Client/Pages/Shared/NavMenu.razor.css create mode 100644 src/MistoxWebsite.Client/Pages/Shared/NotAuthroized.razor create mode 100644 src/MistoxWebsite.Client/Pages/Shared/PageDoesntExist.razor create mode 100644 src/MistoxWebsite.Client/Pages/Shared/TitleBar.razor create mode 100644 src/MistoxWebsite.Client/Pages/Shared/TitleBar.razor.css create mode 100644 src/MistoxWebsite.Client/Pages/Snake.razor create mode 100644 src/MistoxWebsite.Client/Pages/Store/Cart.razor create mode 100644 src/MistoxWebsite.Client/Pages/Store/Cart.razor.css create mode 100644 src/MistoxWebsite.Client/Pages/Store/Catalog.razor create mode 100644 src/MistoxWebsite.Client/Pages/Store/Catalog.razor.css create mode 100644 src/MistoxWebsite.Client/Pages/Store/Payment/Checkout.razor create mode 100644 src/MistoxWebsite.Client/Pages/Store/Payment/Checkout.razor.css create mode 100644 src/MistoxWebsite.Client/Pages/Store/Payment/Success.razor create mode 100644 src/MistoxWebsite.Client/Pages/Store/Receipt.razor create mode 100644 src/MistoxWebsite.Client/Program.cs create mode 100644 src/MistoxWebsite.Client/Services/AuthStateProvider.cs create mode 100644 src/MistoxWebsite.Client/Services/Statics.cs create mode 100644 src/MistoxWebsite.Client/_Imports.razor create mode 100644 src/MistoxWebsite.Server/Controllers/AuthenticationController.cs create mode 100644 src/MistoxWebsite.Server/Controllers/PageLoad.cs create mode 100644 src/MistoxWebsite.Server/Controllers/PaymentController.cs create mode 100644 src/MistoxWebsite.Server/Controllers/ProductController.cs create mode 100644 src/MistoxWebsite.Server/MistoxWebsite.Server.csproj create mode 100644 src/MistoxWebsite.Server/Program.cs create mode 100644 src/MistoxWebsite.Server/Properties/launchSettings.json create mode 100644 src/MistoxWebsite.Server/Services/DatabaseService/Account.cs create mode 100644 src/MistoxWebsite.Server/Services/DatabaseService/AccountInventory.cs create mode 100644 src/MistoxWebsite.Server/Services/DatabaseService/Cart.cs create mode 100644 src/MistoxWebsite.Server/Services/DatabaseService/DatabaseService.cs create mode 100644 src/MistoxWebsite.Server/Services/DatabaseService/PageLoad.cs create mode 100644 src/MistoxWebsite.Server/Services/DatabaseService/Product.cs create mode 100644 src/MistoxWebsite.Server/Services/DatabaseService/ProjectMistData.cs create mode 100644 src/MistoxWebsite.Server/Services/DatabaseService/Receipt.cs create mode 100644 src/MistoxWebsite.Server/Services/DatabaseService/WebsiteData.cs create mode 100644 src/MistoxWebsite.Server/Services/EmailService/EmailService.cs create mode 100644 src/MistoxWebsite.Server/Services/EmailService/ResetPasswordEmail.cs create mode 100644 src/MistoxWebsite.Server/Services/EmailService/VerifyEmail.cs create mode 100644 src/MistoxWebsite.Server/wwwroot/PaymentFrame.html create mode 100644 src/MistoxWebsite.Server/wwwroot/Snake.html create mode 100644 src/MistoxWebsite.Server/wwwroot/css/app.css create mode 100644 src/MistoxWebsite.Server/wwwroot/favicon.ico create mode 100644 src/MistoxWebsite.Server/wwwroot/icon-192.png create mode 100644 src/MistoxWebsite.Server/wwwroot/img/MistoxLogo.png create mode 100644 src/MistoxWebsite.Server/wwwroot/img/ResumeFace.jpg create mode 100644 src/MistoxWebsite.Server/wwwroot/img/cart.png create mode 100644 src/MistoxWebsite.Server/wwwroot/index.html create mode 100644 src/MistoxWebsite.Server/wwwroot/js/screenwidth.js create mode 100644 src/MistoxWebsite.Shared/DatabaseObjects.cs create mode 100644 src/MistoxWebsite.Shared/MistoxWebsite.Shared.csproj diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..8f30ba5 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,26 @@ +# Build +FROM mcr.microsoft.com/dotnet/sdk:9.0 AS build +WORKDIR /src + +# Copy all projects +COPY ["src", "."] + +# Restore the Server +RUN dotnet restore 'MistoxWebsite.Server/MistoxWebsite.Server.csproj' + +# Publish +FROM build as publish +RUN dotnet publish 'MistoxWebsite.Server/MistoxWebsite.Server.csproj' -c Release -o /app/publish + +# Run the app +FROM mcr.microsoft.com/dotnet/aspnet:9.0 +ENV ASPNETCORE_HTTP_PORTS=5001 +ENV StripeKey=null +ENV MySQLServer=null +ENV MySQLUser=null +ENV MySQLPass=null +ENV MySQLDatabase=Mistox +EXPOSE 5001 +WORKDIR /app +COPY --from=publish /app/publish . +ENTRYPOINT ["dotnet", "MistoxWebsite.Server.dll"] diff --git a/MistoxWebsite.sln b/MistoxWebsite.sln new file mode 100644 index 0000000..9ce3fc2 --- /dev/null +++ b/MistoxWebsite.sln @@ -0,0 +1,37 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.5.002.0 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MistoxWebsite.Client", "src\MistoxWebsite.Client\MistoxWebsite.Client.csproj", "{9E4D64F9-2F56-4AC5-85CE-51EFEE1513C0}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MistoxWebsite.Server", "src\MistoxWebsite.Server\MistoxWebsite.Server.csproj", "{76F2B6C1-FF9A-4BD8-AB7A-7456E8122C44}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MistoxWebsite.Shared", "src\MistoxWebsite.Shared\MistoxWebsite.Shared.csproj", "{19C67017-8C26-439B-95B3-FE346D1AC7D5}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {9E4D64F9-2F56-4AC5-85CE-51EFEE1513C0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9E4D64F9-2F56-4AC5-85CE-51EFEE1513C0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9E4D64F9-2F56-4AC5-85CE-51EFEE1513C0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9E4D64F9-2F56-4AC5-85CE-51EFEE1513C0}.Release|Any CPU.Build.0 = Release|Any CPU + {76F2B6C1-FF9A-4BD8-AB7A-7456E8122C44}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {76F2B6C1-FF9A-4BD8-AB7A-7456E8122C44}.Debug|Any CPU.Build.0 = Debug|Any CPU + {76F2B6C1-FF9A-4BD8-AB7A-7456E8122C44}.Release|Any CPU.ActiveCfg = Release|Any CPU + {76F2B6C1-FF9A-4BD8-AB7A-7456E8122C44}.Release|Any CPU.Build.0 = Release|Any CPU + {19C67017-8C26-439B-95B3-FE346D1AC7D5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {19C67017-8C26-439B-95B3-FE346D1AC7D5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {19C67017-8C26-439B-95B3-FE346D1AC7D5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {19C67017-8C26-439B-95B3-FE346D1AC7D5}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {B413876B-4048-47F1-B8B8-B974DF5E9E2A} + EndGlobalSection +EndGlobal diff --git a/ToDo.txt b/ToDo.txt new file mode 100644 index 0000000..6eda85f --- /dev/null +++ b/ToDo.txt @@ -0,0 +1,24 @@ +Fix stripe payments *Updated API* + Havent Tested + +After a new account is created notify a user that they need to verify their email before logging in + +Cleanup SQL queries + On page load for example there are 4 different queries + +AccountInventory.cs + SetInventory isnt fully implimented + +ProjectMistData.cs + Data inside the sql doesnt match what is inside the database + +account/resetpassword + make the account your resetting password for visible in ui + Passwords aren't obscured + After sucess and 3 seconds pass, change location to login frame + +ForgotPassword + No notice something is happening when button pressed + +ForgotPassword Email / Resetpassword Email + Needs styles that match the theme of the website \ No newline at end of file diff --git a/database/Dockerfile b/database/Dockerfile new file mode 100644 index 0000000..a017402 --- /dev/null +++ b/database/Dockerfile @@ -0,0 +1,8 @@ +FROM mysql + +ENV MYSQL_DATABASE=mistox +ENV MYSQL_ROOT_PASSWORD=90pa8pav89h4g08hads + +ADD mistox.sql /docker-entrypoint-initdb.d + +EXPOSE 3306 diff --git a/database/mistox.sql b/database/mistox.sql new file mode 100644 index 0000000..425f64b --- /dev/null +++ b/database/mistox.sql @@ -0,0 +1,104 @@ +CREATE DATABASE IF NOT EXISTS `mistox`; +USE `mistox`; + +CREATE TABLE IF NOT EXISTS `Account` ( + `ID` int(11) NOT NULL AUTO_INCREMENT, + `UserName` varchar(60) DEFAULT NULL, + `Email` varchar(60) DEFAULT NULL, + `EmailVerified` tinyint(4) DEFAULT NULL, + `PasswordHash` varchar(100) DEFAULT NULL, + PRIMARY KEY (`ID`) +) AUTO_INCREMENT=1; + +CREATE TABLE IF NOT EXISTS `AccountInventory` ( + `AccountID` int(11) NOT NULL, + `ProductID` int(11) NOT NULL, + `Item` varchar(45) NOT NULL, + `Quantity` int(11) DEFAULT NULL, + `Stats` varchar(45) DEFAULT NULL, + PRIMARY KEY (`AccountID`,`ProductID`,`Item`) +); + +CREATE TABLE IF NOT EXISTS `Product` ( + `ID` int(11) NOT NULL AUTO_INCREMENT, + `Name` varchar(45) DEFAULT NULL, + `Description` text DEFAULT NULL, + `Images` longtext DEFAULT NULL, + `Cost` int(11) DEFAULT NULL, + `URL` varchar(200) DEFAULT NULL, + PRIMARY KEY (`ID`), + UNIQUE KEY `ID_UNIQUE` (`ID`) +) AUTO_INCREMENT=1; + +CREATE TABLE IF NOT EXISTS `Cart` ( + `ID` int(11) NOT NULL AUTO_INCREMENT, + `AccountID` int(11) DEFAULT NULL, + `ProductID` int(11) DEFAULT NULL, + PRIMARY KEY (`ID`), + KEY `AccountID` (`AccountID`), + KEY `ProductID` (`ProductID`), + CONSTRAINT `Cart_ibfk_1` FOREIGN KEY (`AccountID`) REFERENCES `Account` (`ID`), + CONSTRAINT `Cart_ibfk_2` FOREIGN KEY (`ProductID`) REFERENCES `Product` (`ID`) +) AUTO_INCREMENT=1; + +CREATE TABLE IF NOT EXISTS `ProjectMistData` ( + `AccountID` int(11) NOT NULL, + `Credits` int(11) DEFAULT NULL, + `OddballTimer` double DEFAULT NULL, + `SessionToken` varchar(45) DEFAULT NULL, + `SessionID` int(11) DEFAULT NULL, + `Kills` int(11) DEFAULT NULL, + `Deaths` int(11) DEFAULT NULL, + PRIMARY KEY (`AccountID`) +); + +CREATE TABLE IF NOT EXISTS `Receipt` ( + `AccountID` int(11) NOT NULL, + `ProductID` int(11) NOT NULL, + `ReceiptID` varchar(45) NOT NULL, + `LineItem` int(11) NOT NULL, + `Time` datetime DEFAULT NULL, + `TaxAmount` int(11) DEFAULT NULL, + `TotalCost` int(11) DEFAULT NULL, + PRIMARY KEY (`AccountID`,`ProductID`,`ReceiptID`,`LineItem`) +); + +CREATE TABLE IF NOT EXISTS `WebsiteData` ( + `AccountID` int(11) NOT NULL, + `FailedPasswordLock` tinyint(4) DEFAULT NULL, + `PasswordAttempts` int(11) DEFAULT NULL, + `CurrentPasswordAttempts` int(11) DEFAULT NULL, + `Role` varchar(45) DEFAULT NULL, + `EmailToken` varchar(45) DEFAULT NULL, + PRIMARY KEY (`AccountID`) +); + +INSERT INTO Account ( + ID, + UserName, + Email, + EmailVerified, + PasswordHash +) VALUES ( + '1', + 'admin', + 'admin@mistox.com', + '1', + '' +); + +INSERT INTO WebsiteData ( + AccountID, + FailedPasswordLock, + PasswordAttempts, + CurrentPasswordAttempts, + Role, + EmailToken +) VALUES ( + '1', + '1', + '5', + '0', + 'Admin', + '' +); \ No newline at end of file diff --git a/docker-build-Internal-Tests.sh b/docker-build-Internal-Tests.sh new file mode 100755 index 0000000..d7592a0 --- /dev/null +++ b/docker-build-Internal-Tests.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +# Compile the source +docker build -t mistox-sql ./database +docker build -t mistox-website . + +cd ../mistoxnet-tests + +# Start the servers +docker compose up -d --force-recreate --remove-orphans \ No newline at end of file diff --git a/docker-build.sh b/docker-build.sh new file mode 100755 index 0000000..08f2c4f --- /dev/null +++ b/docker-build.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +# Compile the source +docker build -t mistox-sql ./database +docker build -t mistox-website . + +# Start the servers +docker compose up -d --force-recreate --remove-orphans \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..29bafef --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,29 @@ +services: + + mistox-server: + container_name: mistox_server + image: mistox-website:latest + restart: always + environment: + - StripeKey=${Stripe_Key} + - MySQLServer=${MySQL_Server} + - MySQLUser=${MySQL_User} + - MySQLPass=${MySQL_Pass} + - MySQLDatabase=${MySQL_Database} + - EmailServer=${Email_Server} + - EmailPort=${Email_Port} + - EmailAddress=${Email_Address} + - EmailPassword=${Email_Password} + ports: + - 5001:5001 + depends_on: + - mistox-database + + mistox-database: + container_name: mistox_database + image: mistox-sql:latest + restart: always + volumes: + - ./data:/var/lib/mysql + environment: + MYSQL_ROOT_PASSWORD: ${MySQL_Pass} \ No newline at end of file diff --git a/src/MistoxWebsite.Client/App.razor b/src/MistoxWebsite.Client/App.razor new file mode 100644 index 0000000..e7f61e6 --- /dev/null +++ b/src/MistoxWebsite.Client/App.razor @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/MistoxWebsite.Client/App.razor.css b/src/MistoxWebsite.Client/App.razor.css new file mode 100644 index 0000000..68bdb82 --- /dev/null +++ b/src/MistoxWebsite.Client/App.razor.css @@ -0,0 +1,2 @@ +/* This file is needed for compile for some reason */ +/* Dont delete this file */ \ No newline at end of file diff --git a/src/MistoxWebsite.Client/MistoxWebsite.Client.csproj b/src/MistoxWebsite.Client/MistoxWebsite.Client.csproj new file mode 100644 index 0000000..8cf112e --- /dev/null +++ b/src/MistoxWebsite.Client/MistoxWebsite.Client.csproj @@ -0,0 +1,31 @@ + + + + net9.0 + enable + enable + + + + + + + + + true + PreserveNewest + + + + + + + + + + + + + + + diff --git a/src/MistoxWebsite.Client/Pages/About.razor b/src/MistoxWebsite.Client/Pages/About.razor new file mode 100644 index 0000000..c2787af --- /dev/null +++ b/src/MistoxWebsite.Client/Pages/About.razor @@ -0,0 +1,38 @@ +@page "/About" + +About + + + +
+

Welcome to Mistox LLC. A project and hobby of Derek Holloway.

+
+

I am an indi-developer who has been making small projects since I was 13. I originally learned lua and spent 4 years mastering it. Then I moved onto C# which is my preferred language

+

My programming catalog consist of C#, Lua, SQL, C++, C, and JavaScript in the order of knowledge from best to passiable.

+

Im currently in college for computer sciences and should honestly be doing that instead of this but I find working on this website and hobby games to be way more enjoyable.

+
+

I would love to learn how to use Blender in order to make all the models for my games but with the amount of work ive already made for myself im going to hold off for now.

+

This website and everything on it are the long countless hours of my time and motivation to create something that I can be proud of and share that with the world.

+

So if you would like to support me as a small creator please feel free to leave a donation from on the store page. It would means a lot to me.

+
+

For the nerds out there, this website is a blazor webassembly app, hosted on an ubuntu webserver, with a mysql backend.

+

All the passwords are encrypted using bcrypt for your safety and all the data is only allowed through SSL.

+

After you make your account. All the data in the database is easily accessable through the account settings and

+

you can delete your account at any time. Including all your data with it so there is no risk.

+

I wont show ads and never will and I refuse to use trackers on this site.

+
+
+

If you have any questions, concerns, or would like to suggest a feature, bug-fix, or request to help. Please feel

+

free to reach out to me at derek@mistox.net

+ + + Buy Me a Coffee at ko-fi.com + + +
\ No newline at end of file diff --git a/src/MistoxWebsite.Client/Pages/Account/ActivityPages/ForgotPassword.razor b/src/MistoxWebsite.Client/Pages/Account/ActivityPages/ForgotPassword.razor new file mode 100644 index 0000000..10c3714 --- /dev/null +++ b/src/MistoxWebsite.Client/Pages/Account/ActivityPages/ForgotPassword.razor @@ -0,0 +1,43 @@ +@page "/account/forgotpassword" + +Forgot + +
+

Forgot Password

+
+ + +
+
+
+
+ +
+
+
+ +
+ +@code { + + public string Email{ get; set; } = ""; + public string Result{ get; set; } = ""; + + public async Task OnKeyDown(KeyboardEventArgs e) { + if (e.Key == "Enter") { + await TrySendCode(); + } + } + + public async Task TrySendCode() { + + HttpResponseMessage TestLogin = await Http.PostAsJsonAsync("api/account/sendresetpassword", new Account(){ Email = Email }); + Result = await TestLogin.Content.ReadAsStringAsync(); + + } + +} diff --git a/src/MistoxWebsite.Client/Pages/Account/ActivityPages/Login.razor b/src/MistoxWebsite.Client/Pages/Account/ActivityPages/Login.razor new file mode 100644 index 0000000..ffda1eb --- /dev/null +++ b/src/MistoxWebsite.Client/Pages/Account/ActivityPages/Login.razor @@ -0,0 +1,89 @@ +@page "/account/login" + +Login + +
+

Login

+
+ + +
+
+ + +
+
+
+ +
+
+
+ Stay Logged In + +
+ +
+
+ +
+ +@code { + [Parameter] + [SupplyParameterFromQuery] + public string? ReturnURL { get; set; } + string UserName { get; set; } = ""; + string Password { get; set; } = ""; + string Loading { get; set; } = ""; + bool StayLoggedIn{ get; set; } + List ErrorMsgs = new List(); + + public async Task OnKeyDown(KeyboardEventArgs e){ + if (e.Key == "Enter") { + await TryLogin(); + } + } + + public async Task TryLogin() { + Loading = "Waiting for login response from server"; + ReturnURL = string.IsNullOrEmpty(ReturnURL) ? "/" : ReturnURL; + ErrorMsgs = new List(); + + if(UserName != null ) { + if(Password != null ) { + if (Password.Length >= 6 ) { + HttpResponseMessage TestLogin = await Http.PostAsJsonAsync("api/account/login", new MistoxWebsite.Shared.Account(){ UserName = UserName, PasswordHash = Password, EmailVerified = StayLoggedIn }); + string result = await TestLogin.Content.ReadAsStringAsync(); + Account? user = JsonConvert.DeserializeObject(result); + if (user == null ) { + ErrorMsgs.Add("No response from the server"); + base.StateHasChanged(); + return; + } + if ( string.IsNullOrEmpty(user.Error) ) { + ErrorMsgs.Add("Login Success"); + Nav.NavigateTo("/", true); + } else { + ErrorMsgs.Add(user.Error); + } + Loading = ""; + } else { + ErrorMsgs.Add("Password must be at least 6 Characters long"); + } + } else { + ErrorMsgs.Add("The 'password' field is required"); + } + } else{ + ErrorMsgs.Add("The 'username' field is required"); + } + Loading = ""; + base.StateHasChanged(); + } + +} diff --git a/src/MistoxWebsite.Client/Pages/Account/ActivityPages/Register.razor b/src/MistoxWebsite.Client/Pages/Account/ActivityPages/Register.razor new file mode 100644 index 0000000..9b78446 --- /dev/null +++ b/src/MistoxWebsite.Client/Pages/Account/ActivityPages/Register.razor @@ -0,0 +1,116 @@ +@page "/account/register" + +Register + +
+

Register

+
+ + +
+
+ + +
+
+ + +
+ +
+
+
+ +
+
+
+
    +

    @Loading

    + @foreach(string msg in ErrorMsgs ) { +
  • @msg
  • + } +
+
+ +@code { + [Parameter] + [SupplyParameterFromQuery] + public string? ReturnURL { get; set; } + + string Email { get; set; } = ""; + string UserName { get; set; } = ""; + string Password { get; set; } = ""; + string Loading { get; set; } = ""; + List ErrorMsgs = new List(); + + public async Task OnKeyDown(KeyboardEventArgs e){ + if (e.Key == "Enter") { + if (string.IsNullOrEmpty(Email) || string.IsNullOrEmpty(UserName) || string.IsNullOrEmpty( Password )) { + await Task.Delay( 100 ); + } + await TryRegister(); + } + } + + public bool CheckEmail(string email ) { + int ATcount = 0; + int DOTcount = 0; + char[] cmail = email.ToArray(); + foreach(char cur in cmail ) { + if(cur == '@' ) { + ATcount += 1; + }else if(cur == '.' ) { + DOTcount += 1; + } + } + if (ATcount == 1 && DOTcount >= 1 ) { + return true; + } + return false; + } + + public async Task TryRegister() { + Loading = "Waiting for a response from the server"; + ReturnURL = string.IsNullOrEmpty(ReturnURL) ? "/" : ReturnURL; + + ErrorMsgs = new List(); + + if (Email != null){ + if( CheckEmail( Email ) ) { + if(UserName != null ) { + if(Password != null ) { + if (Password.Length >= 6 ) { + HttpResponseMessage TestRegister = await Http.PostAsJsonAsync("api/account/register", new Account(){ + UserName = UserName, + Email = Email, + PasswordHash = Password, + EmailVerified = false, + }); + Account? user = await TestRegister.Content.ReadFromJsonAsync(); + if ( string.IsNullOrEmpty(user?.Error) ) { + ErrorMsgs.Add("Register Success"); + Nav.NavigateTo("/", true); + } else { + ErrorMsgs.Add( user.Error ); + } + Loading = ""; + }else{ + ErrorMsgs.Add("Password must be at least 6 Characters long"); + } + }else{ + ErrorMsgs.Add("The 'password' field is required"); + } + }else{ + ErrorMsgs.Add("The 'username' field is required"); + } + }else{ + ErrorMsgs.Add("Please check your email address"); + } + }else{ + ErrorMsgs.Add("The 'email' field is required"); + } + Loading = ""; + base.StateHasChanged(); + } + +} diff --git a/src/MistoxWebsite.Client/Pages/Account/ActivityPages/ResetPassword.razor b/src/MistoxWebsite.Client/Pages/Account/ActivityPages/ResetPassword.razor new file mode 100644 index 0000000..a33c272 --- /dev/null +++ b/src/MistoxWebsite.Client/Pages/Account/ActivityPages/ResetPassword.razor @@ -0,0 +1,57 @@ +@page "/account/resetpassword" + +Reset Password + +
+

Reset Password

+
+ + +
+
+ + +
+
+
+
+ +
+
+
+
    + @if (!string.IsNullOrEmpty(Result)){ +
  • @Result
  • + } +
+
+ +@code { + + [Parameter] + [SupplyParameterFromQuery] + public string UserName { get; set; } = ""; + + [Parameter] + [SupplyParameterFromQuery] + public string ResetPwd { get; set; } = ""; + + public string NewPassword{ get; set; } = ""; + public string RepeatPassword{ get; set; } = ""; + + public string Result{ get; set; } = ""; + + public async Task OnKeyDown(KeyboardEventArgs e ) { + if (e.Key == "Enter") { + await TryChange(); + } + } + + protected async Task TryChange() { + + HttpResponseMessage TestLogin = await Http.PostAsJsonAsync("api/account/resetpassword", new Account(){ UserName = UserName, PasswordHash = NewPassword, Error = ResetPwd }); + string result = await TestLogin.Content.ReadAsStringAsync(); + Result = result == "true" ? "Password changed successfully" : "Something is wrong"; + } + +} diff --git a/src/MistoxWebsite.Client/Pages/Account/ActivityPages/VerifyEmail.razor b/src/MistoxWebsite.Client/Pages/Account/ActivityPages/VerifyEmail.razor new file mode 100644 index 0000000..4011561 --- /dev/null +++ b/src/MistoxWebsite.Client/Pages/Account/ActivityPages/VerifyEmail.razor @@ -0,0 +1,43 @@ +@page "/account/verifyemail" + +Verifying Email + +
+

@Result

+
+
+
+ +
+
+
+
+ +@code { + + [Parameter] + [SupplyParameterFromQuery] + public string Guid { get; set; } = ""; + + [Parameter] + [SupplyParameterFromQuery] + public string UserName{ get; set; } = ""; + + public string Result{ get; set; } = ""; + + protected override async Task OnInitializedAsync() { + HttpResponseMessage Query = await Http.PostAsJsonAsync("api/account/verifyemail", new Account(){ UserName = UserName, PasswordHash = Guid }); + bool Answer = await Query.Content.ReadFromJsonAsync(); + if (Answer == true ) { + Result = "Verified Email Successfully"; + } else { + Result = "Email was not able to be verified please resend email"; + } + base.StateHasChanged(); + } + + public void ReturnToLogin(){ + this.Nav.NavigateTo("/account/login"); + } + +} diff --git a/src/MistoxWebsite.Client/Pages/Account/Manage/Account.razor b/src/MistoxWebsite.Client/Pages/Account/Manage/Account.razor new file mode 100644 index 0000000..8f2c0ee --- /dev/null +++ b/src/MistoxWebsite.Client/Pages/Account/Manage/Account.razor @@ -0,0 +1,123 @@ + +
+
+ @if(context.User.FindFirst("EmailVerified")?.Value == "True" ) { +

Email Is Verified Successfully

+ } else { + + } +
+

@EmailSentResult

+
+ +
+
+

Reset Your Password

+
+ + + + +

@PasswordErrorText

+
+ +
+
+

Login Counter

+
+

This will lock the account after the specified number of failed logins

+

You will have to reset the password using your email aftwards

+ @if( _account != null && _account.EmailVerified && FailedLoginToggle ) { +

Failed login attempts

+ } else if (_account != null && !_account.EmailVerified) { +

This feature cannot be enabled until you verify your email

+ } +

Enabled

+ +

@LoginCounterResult

+
+ +
+ +@code { + + public MistoxWebsite.Shared.Account? _account = null; + + public int MaxFailedLogin = 0; + public bool FailedLoginToggle = false; + public string LoginCounterResult = ""; + + public async Task SubmitLoginLock() { + if (_account != null ) { + _account.SiteData.FailedPasswordLock = FailedLoginToggle; + _account.SiteData.PasswordAttempts = MaxFailedLogin; + _account.PasswordHash = ""; + HttpResponseMessage SendVerifyEmail = await Http.PostAsJsonAsync("api/account/toggleAccountLock", _account); + LoginCounterResult = await SendVerifyEmail.Content.ReadAsStringAsync(); + } + } + + protected override async Task OnInitializedAsync() { + HttpResponseMessage x = await Http.PostAsync("api/account/get", new StringContent("")); + string body = await x.Content.ReadAsStringAsync(); + _account = JsonConvert.DeserializeObject(body); + if (_account != null){ + FailedLoginToggle = _account.SiteData.FailedPasswordLock; + MaxFailedLogin = _account.SiteData.PasswordAttempts; + } + } + + /* Verify Email Code */ + + public string EmailSentResult = ""; + + public async Task SendVerifyEmail() { + if (_account != null){ + HttpResponseMessage SendVerifyEmail = await Http.PostAsJsonAsync("api/account/sendverifyemail", new MistoxWebsite.Shared.Account(){ UserName = _account.UserName }); + bool result = await SendVerifyEmail.Content.ReadFromJsonAsync(); + if (result == true ) { + EmailSentResult = "Email Sent"; + } else { + EmailSentResult = "Problem Sending Email"; + } + } + } + + /* New Password Code */ + + public string CurPass { get; set; } = ""; + public string NewPass1 { get; set; } = ""; + public string NewPass2 { get; set; } = ""; + public string PasswordErrorText { get; set; } = ""; + + protected async Task TestNewPass() { + if ( string.IsNullOrEmpty(CurPass) ) { + PasswordErrorText = "The Current Password Is Required"; + return; + } + if ( string.IsNullOrEmpty(NewPass1) ) { + PasswordErrorText = "The New Password Is Required"; + return; + } + if ( string.IsNullOrEmpty(NewPass2) ) { + PasswordErrorText = "The New Repeated Password Is Required"; + return; + } + if (NewPass1 != NewPass2 ) { + PasswordErrorText = "The New Passwords Dont Match"; + return; + } + if (_account != null){ + HttpResponseMessage TryChangePassword = await Http.PostAsJsonAsync("api/account/changepassword", new MistoxWebsite.Shared.Account(){ UserName = _account.UserName, PasswordHash = CurPass, Error = NewPass1 }); + bool resultText = await TryChangePassword.Content.ReadFromJsonAsync(); + if (resultText == true ) { + PasswordErrorText = "Password changed successfully"; + } else { + PasswordErrorText = "Current password is wrong"; + } + } + + + } + +} diff --git a/src/MistoxWebsite.Client/Pages/Account/Manage/Account.razor.css b/src/MistoxWebsite.Client/Pages/Account/Manage/Account.razor.css new file mode 100644 index 0000000..db5ba43 --- /dev/null +++ b/src/MistoxWebsite.Client/Pages/Account/Manage/Account.razor.css @@ -0,0 +1,15 @@ +.subject-frame{ + background-color: rgba(255,255,255,.1); + border-radius: 4px; + padding: 5px; + margin-bottom: 1.4rem; +} + +.title-frame{ + +} + +.title-frame h1 input{ + padding-left: 1.4rem; + padding-top: 0.4rem; +} \ No newline at end of file diff --git a/src/MistoxWebsite.Client/Pages/Account/Manage/Manage.razor b/src/MistoxWebsite.Client/Pages/Account/Manage/Manage.razor new file mode 100644 index 0000000..b55c601 --- /dev/null +++ b/src/MistoxWebsite.Client/Pages/Account/Manage/Manage.razor @@ -0,0 +1,38 @@ +@page "/account/manage" +@attribute [Authorize] + +@using MistoxWebsite.Client.Pages.Account.Manage + +Manage + + + +
+ @if (Visible == ShowingFrame.Account) { + + } else if (Visible == ShowingFrame.Data) { + + } +
+ + +@code { + TitleBarDiv[] tbd = new TitleBarDiv[2]; + + protected override void OnInitialized() { + + tbd[0] = new TitleBarDiv{ Name = "Data" }; + tbd[0].onClicked += ( object? o, EventArgs e ) => { Visible = ShowingFrame.Data; base.StateHasChanged(); }; + + tbd[1] = new TitleBarDiv{ Name = "Account" }; + tbd[1].onClicked += ( object? o, EventArgs e ) => { Visible = ShowingFrame.Account; base.StateHasChanged(); }; + + } + + public ShowingFrame Visible = ShowingFrame.Account; + public enum ShowingFrame { + Account, + Data, + } + +} diff --git a/src/MistoxWebsite.Client/Pages/Account/Manage/Manage.razor.css b/src/MistoxWebsite.Client/Pages/Account/Manage/Manage.razor.css new file mode 100644 index 0000000..4574756 --- /dev/null +++ b/src/MistoxWebsite.Client/Pages/Account/Manage/Manage.razor.css @@ -0,0 +1,6 @@ +body { +} + +.lower-frame{ + padding: 1.4rem; +} \ No newline at end of file diff --git a/src/MistoxWebsite.Client/Pages/Account/Manage/ProjectMistData.razor b/src/MistoxWebsite.Client/Pages/Account/Manage/ProjectMistData.razor new file mode 100644 index 0000000..a194195 --- /dev/null +++ b/src/MistoxWebsite.Client/Pages/Account/Manage/ProjectMistData.razor @@ -0,0 +1,10 @@ + +
+

MistDataJSON

+ +
+
+ +@code { + +} diff --git a/src/MistoxWebsite.Client/Pages/Account/Manage/WebsiteData.razor b/src/MistoxWebsite.Client/Pages/Account/Manage/WebsiteData.razor new file mode 100644 index 0000000..310cbfe --- /dev/null +++ b/src/MistoxWebsite.Client/Pages/Account/Manage/WebsiteData.razor @@ -0,0 +1,183 @@ + + @if (showDeleteConfirm){ +
+
+

Are you sure?

+

There is no way to recover your account when its deleted. All your purchases and stats will be lost forever.

+

Password

+ +
+ + +
+

@ErrorPlaceholder

+ } +
+

Website Data

+ We dont keep what we collect on you private. Have a look for yourself what is on the server. +
+ +
+
+

User Data

+ @foreach(KeyValuePare cur in UserData ) { +
+
+

@cur.Key

+
+
+

@cur.Value

+
+
+ } +
+
+ +
+
+

Site Data

+ @foreach( KeyValuePare cur in SiteData ) { +
+
+

@cur.Key

+
+
+

@cur.Value

+
+
+ } +
+
+ +
+
+

Purchases

+ @foreach( Receipt cur in Statics.Owned ) { +
+
+
+

Receipt ID

+
+
+

@cur.ReceiptID

+
+
+
+
+

Game

+
+
+

@ProductName( cur.ProductID )

+
+
+
+
+

Time

+
+
+

@cur.Time

+
+
+
+ } +
+
+ +
+ +
+
+
+ +@code { + + bool showDeleteConfirm = false; + string Password = ""; + string ErrorPlaceholder = ""; + + class KeyValuePare { + public string Key { get; set; } = ""; + public string Value { get; set; } = ""; + } + + string ProductName(int ProductID ) { + foreach(Product cur in Statics.Products ) { + if( cur.ID == ProductID ) { + return cur.Name + " -> ( ID : " + ProductID + " )"; + } + } + return "Unknown Product -> ( ID : " + ProductID + " )"; + } + + void showDeleteAccount() { + showDeleteConfirm = true; + } + + void cancelDeleteAccount() { + showDeleteConfirm = false; + Password = ""; + } + + async Task confirmDeleteAccount() { + HttpResponseMessage Delete = await Http.PostAsJsonAsync( "api/account/delete", new MistoxWebsite.Shared.Account(){ + ID = Statics.User.ID, + UserName = Statics.User.Email, + PasswordHash = Password + }); + string result = await Delete.Content.ReadAsStringAsync(); + bool status = result == "true" ? true : false; + if (status){ + await Http.PostAsync("api/account/logout", new StringContent("")); + Nav.NavigateTo("/", true); + } + ErrorPlaceholder = status.ToString(); + } + + List UserData = new List(); + List SiteData = new List(); + protected override void OnInitialized() { + + UserData.Add(new KeyValuePare { + Key = "ID", + Value = Statics.User.ID.ToString() + } ); + UserData.Add( new KeyValuePare { + Key = "UserName", + Value = Statics.User.UserName + } ); + UserData.Add( new KeyValuePare { + Key = "Email", + Value = Statics.User.Email + } ); + UserData.Add( new KeyValuePare { + Key = "EmailVerified", + Value = Statics.User.EmailVerified ? "true" : "false" + } ); + UserData.Add( new KeyValuePare { + Key = "PasswordHash", + Value = Statics.User.PasswordHash + } ); + SiteData.Add( new KeyValuePare { + Key = "FailedPasswordLockEnabled", + Value = Statics.User.SiteData.FailedPasswordLock ? "true" : "false" + } ); + SiteData.Add(new KeyValuePare { + Key = "MaxPasswordAttempts", + Value = Statics.User.SiteData.PasswordAttempts.ToString() + } ); + SiteData.Add( new KeyValuePare { + Key = "CurrentPasswordAttempts", + Value = Statics.User.SiteData.CurrentPasswordAttempts.ToString() + } ); + SiteData.Add( new KeyValuePare { + Key = "Role", + Value = Statics.User.SiteData.Role + } ); + SiteData.Add( new KeyValuePare { + Key = "EmailToken", + Value = Statics.User.SiteData.EmailToken + } ); + + } + +} diff --git a/src/MistoxWebsite.Client/Pages/Account/Manage/WebsiteData.razor.css b/src/MistoxWebsite.Client/Pages/Account/Manage/WebsiteData.razor.css new file mode 100644 index 0000000..15ddd41 --- /dev/null +++ b/src/MistoxWebsite.Client/Pages/Account/Manage/WebsiteData.razor.css @@ -0,0 +1,115 @@ +.data-table { + column-count: 1; + background-color: rgba(255,255,255,.1); + margin-bottom: 1.4rem; + border-radius: 5px; +} + +.padder{ + padding: 1rem; +} + +.data{ + float: left; + width: 100%; + border-bottom: solid 1px #808080; +} + +.data:last-child{ + border: none; +} + +.data-left { + float: left; + width: 50%; +} + +.data-right { + float: right; + width: 50%; +} + +.data-right h2 { + font-size: 14px; + word-wrap: break-word; +} + +.data-left h1 { + font-size: 14px; +} + +.Confirm-Frame{ + position: absolute; + width: 400px; + height: 200px; + background-color: #202020; + left: calc( 50% - 200px ); + top: calc( 50% - 100px ); + border-radius: 5px; + border-color: red; + border-width: 2px; + border-style: double; +} + +.Blackout-Frame { + position: absolute; + width: 100%; + height: 100%; + background-color: #00000088; + top: 0px; + left: 0px; +} + +.Confirm-Title { + width: 100%; + text-align: center; + margin: 10px 0; +} + +.Confirm-Content { + width: 100%; + text-align: center; + font-size: 15px; + margin-top: 0; +} + +.Confirm-Password { + margin: 0 5%; + float: left; + height: 24px; +} + +.Confirm-Input { + width: 62%; + float: left; +} + +.Confirm-Padding { + height: 18px; + width: 80px; + float: left; +} + +.delete-button { + color: green; + padding: 5px 15px; + background-color: #fff; + border: none; + margin: 10px; + border-radius: 4px; +} + +.delete-button :hvoer { + background-color: #aaa; + transition-duration: 1s; +} + +.Delete-Error { + position: absolute; + font-size: 20px; + left: calc(50% - 200px); + top: calc(50% + 100px); + width: 400px; + text-align: center; + color: red; +} \ No newline at end of file diff --git a/src/MistoxWebsite.Client/Pages/Admin/CreateProduct.razor b/src/MistoxWebsite.Client/Pages/Admin/CreateProduct.razor new file mode 100644 index 0000000..6e36a50 --- /dev/null +++ b/src/MistoxWebsite.Client/Pages/Admin/CreateProduct.razor @@ -0,0 +1,74 @@ +@page "/admin/product/create" +@attribute [Authorize(Roles = "Admin")] + +

CreateProduct

+ +
+
+ + +
+
+ + +
+
+ + @foreach(string img in obj.Images ) { +
+ + +
+ } + +
+
+ + +
+
+ + +
+ +
+ +
+ @if( !string.IsNullOrEmpty( Result ) ) { +

Results : @Result

+ } +
+ +@code { + + public string Result = ""; + public Product obj = new Product(); + + async void OnFileUpload(InputFileChangeEventArgs e ) { + List files = e.GetMultipleFiles( 10 ).ToList(); + foreach(IBrowserFile cur in files){ + // Open Network Stream and read to memory + Stream ns = cur.OpenReadStream(maxAllowedSize:500000000); // 500 Mb + MemoryStream ms = new MemoryStream(); + await ns.CopyToAsync( ms ); + byte[] data = ms.ToArray(); + + string base64Image = "data:" + cur.ContentType + ";base64, "; + base64Image += Convert.ToBase64String( data ); + + obj.Images.Add( base64Image ); + StateHasChanged(); + }; + } + + public async Task Submit() { + HttpResponseMessage response = await Http.PostAsJsonAsync( "api/product/create", obj ); + Result = await response.Content.ReadAsStringAsync(); + } + + public void RemoveImage(int index) { + Console.WriteLine( index ); + obj.Images.RemoveAt( index ); + } + +} \ No newline at end of file diff --git a/src/MistoxWebsite.Client/Pages/Admin/EditProduct.razor b/src/MistoxWebsite.Client/Pages/Admin/EditProduct.razor new file mode 100644 index 0000000..e154bf5 --- /dev/null +++ b/src/MistoxWebsite.Client/Pages/Admin/EditProduct.razor @@ -0,0 +1,80 @@ +@page "/admin/product/edit" +@attribute [Authorize(Roles = "Admin")] + +

EditProduct

+ +@if( product != null ) { +
+ Name + +
+
+ Description + +
+
+ Cost + +
+
+ PurchaseURL + +
+
+ @foreach( string img in product.Images ) { +
+ not found + +
+ } + +
+
+ +
+
+ @Result +
+}else{ +

Product Doesnt Exist

+} + +@code { + + [Parameter] + [SupplyParameterFromQuery] + public int ProductID { get; set; } + + Product? product = null; + + string Result = ""; + + protected override async Task OnInitializedAsync() { + HttpResponseMessage response = await Http.PostAsJsonAsync( "api/product/get", new Product(){ ID = ProductID } ); + string Result = await response.Content.ReadAsStringAsync(); + product = JsonConvert.DeserializeObject( Result ); + } + + async void OnFileUpload(InputFileChangeEventArgs e ) { + List files = e.GetMultipleFiles( 10 ).ToList(); + foreach(IBrowserFile cur in files){ + // Open Network Stream and read to memory + Stream ns = cur.OpenReadStream(maxAllowedSize:500000000); // 500 Mb + MemoryStream ms = new MemoryStream(); + await ns.CopyToAsync( ms ); + byte[] data = ms.ToArray(); + + string base64Image = "data:" + cur.ContentType + ";base64, "; + base64Image += Convert.ToBase64String( data ); + + product?.Images.Add( base64Image ); + StateHasChanged(); + }; + } + + protected async void onSubmit() { + HttpResponseMessage TestLogin = await Http.PostAsJsonAsync("api/product/update", product); + Result = await TestLogin.Content.ReadAsStringAsync(); + } + +} diff --git a/src/MistoxWebsite.Client/Pages/Index.razor b/src/MistoxWebsite.Client/Pages/Index.razor new file mode 100644 index 0000000..8d9bfbf --- /dev/null +++ b/src/MistoxWebsite.Client/Pages/Index.razor @@ -0,0 +1,11 @@ +@page "/" + +Mistox + +
+ +
+ +@code{ + +} \ No newline at end of file diff --git a/src/MistoxWebsite.Client/Pages/Projects/Downloads.razor b/src/MistoxWebsite.Client/Pages/Projects/Downloads.razor new file mode 100644 index 0000000..b5322a1 --- /dev/null +++ b/src/MistoxWebsite.Client/Pages/Projects/Downloads.razor @@ -0,0 +1,33 @@ +@page "/project/downloads" +@attribute [Authorize] + + + +
+ +
+ @if (output != null ) { + + } +
+ + @ErrorTxt +
+ +@code{ + + public string ErrorTxt = ""; + public DirObj? output = null; + + protected override async void OnInitialized() { + try { + byte[] resultBody = await (await Http.PostAsync( "api/product/showdownloads", new StringContent("") )).Content.ReadAsByteArrayAsync(); + string JsonData = Encoding.UTF8.GetString(resultBody); + output = JsonConvert.DeserializeObject( JsonData ); + base.StateHasChanged(); + } catch( Exception e ) { + ErrorTxt = "Error : " + e.ToString(); + } + } + +} \ No newline at end of file diff --git a/src/MistoxWebsite.Client/Pages/Projects/Downloads.razor.css b/src/MistoxWebsite.Client/Pages/Projects/Downloads.razor.css new file mode 100644 index 0000000..5f28270 --- /dev/null +++ b/src/MistoxWebsite.Client/Pages/Projects/Downloads.razor.css @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/MistoxWebsite.Client/Pages/Projects/Mist.razor b/src/MistoxWebsite.Client/Pages/Projects/Mist.razor new file mode 100644 index 0000000..03c9ae3 --- /dev/null +++ b/src/MistoxWebsite.Client/Pages/Projects/Mist.razor @@ -0,0 +1,29 @@ +@page "/project/mist" + +Project-Mist + + + +
+

What is the game

+

Project-Mist is a survival game. Kind of like a battle royal in a sense but, think of it backwards. And no I know what your thinking. Its not the first person to die wins. No instead its a never ending survival game where you can free roam and build structures. The catch is, the person who has the highest stats [i.e A combination of kills, survival time] has a marker placed on their forhead.

+

How will the game play

+

When you join the game you will be able to customize your character. There you can set a default loadout for your player. This will be the spawn weapon and gear. After that you will drop into the map with other players to fend for your life. The kill-leader will be marked loosely on the mini-map. You can choose to go after the kill leader or you can choose to loot first. The choice is yours. But be aware that if you survive long enough you will become the new kill leader.

+

Current Idea Board *SUBJECT TO CHANGE*

+

Survival Game
look at item to pick up 'e' for third person and click for third [No nearby]
normal weapons with bullet drop bullet travel time
snipers but rare [Maybe special]

+

Abilities selectable at spawn
a max 20 credit slider where you can spend them on traits
Stamina -> run for longer distances
Strength -> carry more weight
Vitality -> Have more base health
Stealth -> Approximate location on map is bigger

+

More weight slows player some
Backpacks -> Add slots but not weight

+

Oddball style game
Map that shows the relitive area of the top player

+

spawn with classes
2 mags
no attachments
unlock guns with experience

+

no health regen
final hit headshots = 20 credits
final hit bodyshots = 10 credits

+

classes require credits to spawn with better stuff
inventory and credits are transferrable between servers and sessions
combat loggging - if leave in combat start from scratch
one dynamicly roaming entity of the night ( Impossible to kill, when near heart starts pumping and vinegrette )
goes after people possible to get away
Dyanmic day and night cycle
Dynamic weather ( rain, fog, thunder, lightning )
floods that cause roaring rivers to fill that cannot be swam
Fires that char trees(no leaves), regrows in 3ish days
Master leaderboard in the main menu of top players per rank
Ranked lobby ( Disabled until player base )
small towns around a main centralized area( ie city or temple )
large servers
random spawned skin boxes that require credits to open
purchasable skins
bullet penatration on certain materials
bullet reflection on certain materials
No kill leader until you get at least 2 kills minimum

+

Tournament mode
all players spawn at the same time
hold oddball for 30mins total

+

server quits introducing people into game after 5 hrs. (last man standing mode)
last person in server wins
on death quit to new server
everyone becomes oddball
less players alive equal less oddball area

+ +
\ No newline at end of file diff --git a/src/MistoxWebsite.Client/Pages/Projects/Mist.razor.css b/src/MistoxWebsite.Client/Pages/Projects/Mist.razor.css new file mode 100644 index 0000000..2eba7d8 --- /dev/null +++ b/src/MistoxWebsite.Client/Pages/Projects/Mist.razor.css @@ -0,0 +1,13 @@ +.Big-Div { + position: relative; + left: calc(50% - 400px); + max-width: 800px; +} + +@media (max-width: 1150px) { + .Big-Div { + position: relative; + left: calc(50% - 200px); + max-width: 400px; + } +} \ No newline at end of file diff --git a/src/MistoxWebsite.Client/Pages/Resume/Resume.razor b/src/MistoxWebsite.Client/Pages/Resume/Resume.razor new file mode 100644 index 0000000..041867e --- /dev/null +++ b/src/MistoxWebsite.Client/Pages/Resume/Resume.razor @@ -0,0 +1,283 @@ +@page "/resume/derek" + +
+
+
+ +
+
+

Derek Holloway

+

Owner and sole developer

+
+
+

derek@mistox.net

+
+
+
+
+ +
+
+

Work Experience

+ +
+
+
+

NAVWAR Assistant Contract Tech. Rep.

+

Redhorse corp. - San Diego, CA

+

888-445-8010

+

February 2022 - Today

+ +
+
+
+
+
    +
  • The first line of support for end users
  • +
  • Fix or escalate issues as required to the correct authority for resolution
  • +
  • The ACTR performs routine office IT functions managing mechanical and printer supplies
  • +
  • Assisting with connectivity to and troubleshooting networked systems and Video Teleconferences
  • +
  • This includes setting up new accounts
  • +
  • Managing users accesses
  • +
  • Uses the building badging system to grant access to appropriate personnel Assist with transition to Office 365 and Navy Flank Speed as required.
  • +
  • Leading role on Junior level tasks/projects
  • +
  • Supports the customer performing moderately complex tasks on a routine basis.
  • +
    +
  • Project manager for NAVWAR tech refresh
  • +
  • Replacing 4010+ computers within a 1 year time-frame
  • +
  • Manage warranties with HP Federal
  • +
  • Coordinating orders and returns for old leased hardware
  • +
+
+
+
+ +
+
+
+

NMCI Field Service Technitian

+

Super Systems Inc - San Diego, CA

+

757-399-3000 - info@supersystemsinc.com

+

June 2021 - Feburary 2022

+
+

Ohm Systems, Inc - San Diego, CA

+

215-675-2766 - info@ohmsysinc.com

+

February 2021 - June 2021

+ +
+
+
+
+
    +
  • Performed layer 1 network troubleshooting; windows netsh firewalls, 802.1x Authentication issues, and cable and port issues.
  • +
  • Performed hardware troubleshooting and replacements; replacing laptop motherboards, displays, cpus, ram, and peripherals.
  • +
  • Performed software troubleshooting using event viewer, task manager, and command prompt. By uninstalling and reinstalling or reconfiguring.
  • +
  • Worked with network printers, voip's, and video telecommunication devices.
  • +
  • Worked face to face with customers, managing my time between calls and work orders.
  • +
+
+
+
+ +
+
+
+

NMCI Help Desk Technitian

+

Apex Systems - Coronado, CA

+

619-757-1646

+

September 2019 - September 2020

+ +
+
+
+
+
    +
  • Performed remote troubleshooting: windows cmd, winrs, rdc, winrs. Fixing software issues
  • +
  • Performed administrative Tasks: create active directory accounts and verifying identity to unlock accounts.
  • +
  • Walked users through diagnosing network issues over the phone or escalated issue to field services
  • +
  • Fixed users email issues; server mappings, proxy email addresses, shared emails, and outlook related issues.
  • +
  • Moved users profiles from one domain to another and moved users files along with it.
  • +
  • Fixed account related issues; id to user mismatch and wrong display name.
  • +
+
+
+
+ +
+
+
+

Warehouse receiver

+

Ababa Bolt - El Cajon, CA

+

619-440-1781

+

May 2019 - August 2019

+ +
+
+
+
+
    +
  • Verified that all parts came in off the packing slip
  • +
  • Rejected parts that were damaged and sent back to manufacturer
  • +
  • Sort and add parts into the tracking system
  • +
  • Put parts away in appropriate areas
  • +
+
+
+
+ +
+
+
+

Warehouse packer

+

Ababa Bolt - El Cajon, CA

+

619-440-1781

+

October 2017 - September 2018

+ +
+
+
+
+
    +
  • Find which parts need more stock on shelves
  • +
  • Split out parts by count or weight
  • +
  • Verified and marked appropriate compliance such as RoHS
  • +
  • Operated forklifts and scissor lifts
  • +
+
+
+
+ +
+
+
+

Motor Vehicle Trasport Operator

+

California Army National Guard

+

760-607-8574

+

September 2018 - Today

+

Rank/Grade - Specialist / E-4

+ +
+
+
+
+
    +
  • 88M - Motor Transport Operator
  • +
  • Neccesarry to hold secret clearence and keep all cyber security certifications up to date.
  • +
  • June 2020 - Protected and defended the Los Alamitos police department and Six Flags Magic Mountain during the rios cause by BLM movement that caused rioting in the streets.
  • +
  • September 2020 - Worked with Cal-Fire in Chico, CA and Alderpoint, CA to cut fire lines to prevent the spread of fires during the August Fire Complex fires.
  • +
+
+
+
+
+
+
+ +
+
+
+

Development

+
    +
  • C#
  • +
  • Mono
  • +
  • ASP.NET
  • +
  • ASP Core
  • +
  • Blazor Web Assembly
  • +
  • Windows Forms Apps
  • +
  • C++
  • +
  • Arm Embedded
  • +
  • Raspberry Pi
  • +
  • Database
  • +
  • MySql
  • +
  • MsSql
  • +
  • LINQ
  • +
  • Game Engines
  • +
  • Godot
  • +
  • Unity 3D
  • +
  • Solar 2D
  • +
  • Web Development
  • +
  • Front End
  • +
  • Back End
  • +
  • Interfaces
  • +
  • Square Payment API
  • +
  • Rest Clients
  • +
+
+
+
+ LUADNS-DDNS : https://github.com/reverseslayer/LUADNS-DDNS
+ This is a service that I made for luadns.com. This allows free ddns by simply changing the dns name servers to luadns nameservers and running this program as a service. This was made for linux but shoud easily run on windows.

+
+
+ Mistox-Server : https://github.com/reverseslayer/MistoxServer
+ This is a UDP Hole Punched server; that allows clients to direct connect over the wan without opening ports. It works by having a dedicated TCP server that routes the UDP connections directly to each client. Based on this Idea map. +
+
+ Mistox.net : https://mistox.net
+ Mistox.net is all done by me. The DNS is hosted by domains.google.com and pushed through luadns.com name server so that I can run LUA-DDNS a service I made to reach other places that behind ddns. The webservers are hosted by vultr.com and the entire stack is built on asp.net. The payment services are run through stripe-payments. I built this as a side project but its slowly becoming more and more something that I would like to be able to share things that I make; paid or free. +
+
+
+
+
+ + +@code { + string ContentStyle1 = ""; + string ContentStyle2 = ""; + string ContentStyle3 = ""; + string ContentStyle4 = ""; + string ContentStyle5 = ""; + string ContentStyle6 = ""; + string ContentStyle7 = ""; + + void MouseEnter( int frameNumber ) { + if (frameNumber == 1){ + ContentStyle1 = "right: 0px;"; + base.StateHasChanged(); + }else if (frameNumber == 2){ + ContentStyle2 = "right: 0px;"; + base.StateHasChanged(); + }else if (frameNumber == 3){ + ContentStyle3 = "right: 0px;"; + base.StateHasChanged(); + }else if (frameNumber == 4){ + ContentStyle4 = "right: 0px;"; + base.StateHasChanged(); + }else if (frameNumber == 5){ + ContentStyle5 = "right: 0px;"; + base.StateHasChanged(); + }else if (frameNumber == 6){ + ContentStyle6 = "right: 0px;"; + base.StateHasChanged(); + }else if (frameNumber == 7){ + ContentStyle7 = "right: 0px;"; + base.StateHasChanged(); + } + } + + void MouseLeave( int frameNumber ){ + if (frameNumber == 1){ + ContentStyle1 = "right: -700px;"; + base.StateHasChanged(); + }else if (frameNumber == 2){ + ContentStyle2 = "right: -700px;"; + base.StateHasChanged(); + }else if (frameNumber == 3){ + ContentStyle3 = "right: -700px;"; + base.StateHasChanged(); + }else if (frameNumber == 4){ + ContentStyle4 = "right: -700px;"; + base.StateHasChanged(); + }else if (frameNumber == 5){ + ContentStyle5 = "right: -700px;"; + base.StateHasChanged(); + }else if (frameNumber == 6){ + ContentStyle6 = "right: -700px;"; + base.StateHasChanged(); + }else if (frameNumber == 7){ + ContentStyle7 = "right: -700px;"; + base.StateHasChanged(); + } + } +} \ No newline at end of file diff --git a/src/MistoxWebsite.Client/Pages/Resume/Resume.razor.css b/src/MistoxWebsite.Client/Pages/Resume/Resume.razor.css new file mode 100644 index 0000000..998210f --- /dev/null +++ b/src/MistoxWebsite.Client/Pages/Resume/Resume.razor.css @@ -0,0 +1,191 @@ +* { + --popout-shadow-color-left: #8c8c8c; + --popout-shadow-color-bottom: #595959; + --popout-background-color: #004262; + --frame-background-color: #005662; + --frame-title-color: #ffffff; + --job-title-color: #f35100; + --job-sub-color: #c85c00; + --text-color: #dddddd; + --link-color: #4cff00; + --link-visited-color: #73ac5b; + --skills-bg-color: #c85c00; + --skills-text-color: #000; + --skills-text-shadow-color: #f35100; + --skills-prime-background-color: #972500; + --skills-prime-text-color: #fff; +} + +body { + position: relative; +} + +h1 { + color: var(--frame-title-color); +} + +span { + color: var(--text-color); +} + +.PopOutFrame { + position: relative; + background-color: white; + width: 100%; + max-width: 1080px; + margin: 15px auto 0 auto; + content: ""; +} + + .PopOutFrame::before { + position: absolute; + width: 6px; + left: -6px; + margin-top: 6px; + background: var(--popout-shadow-color-left); + content: ""; + display: block; + transform: skew(0deg, -61deg); + height: 100%; + } + +.PopOutHr { + width: 100%; + float: left; +} + + .PopOutHr::after { + position: absolute; + width: 100%; + margin-top: 0px; + bottom: -11px; + left: -3px; + background: var(--popout-shadow-color-bottom); + content: ""; + display: block; + transform: skew(-31deg, 0deg); + height: 11px; + } + +.Content{ + position: relative; + padding: 15px; + overflow: hidden; + background-color: var(--popout-background-color); +} + +.ImgFrame { + float: left; +} + +.Picture{ + width: 140px; + height: 140px; +} + +.NameFrame { + float: left; + width: calc(100% - 510px); + margin-left: 20px; +} + +.ContactFrame { + float: left; + width: 300px; + height: 140px; +} + +.ContactFrame h1{ + font-size: 30px; +} + +.SkillsContent { + position: relative; + float: left; + height: 100%; + width: 60%; + transition-duration: 2s; + right: -700px; +} + +.SkillsContent :link { + color: var(--link-color); +} + +.SkillsContent :visited{ + color: var(--link-visited-color) !important; +} + +.paddedcell { + padding: 10px 5px; + padding-bottom: 0; + margin-bottom: 5px; +} + +.colored { + background-color: var(--frame-background-color); +} + +.paddedcell br{ + display: block; + margin: 10px 0; + content: ""; +} + +.Skills { + float: left; + height: 100%; + width: 40%; + transition-duration: 2s; +} + +.Skills h1{ + margin: 5px; +} + +.Skills ul{ + font-size: 14px; + list-style: none; + margin: 0; + padding: 0 5px; +} + + .Skills li { + float: left; + padding: 4px 6px; + margin: 0 4px 4px 0; + background-color: var(--skills-bg-color); + text-shadow: 0 1px 1px var(--skills-text-shadow-color); + color: var(--skills-text-color); + } + +.LIPrime{ + text-shadow: none; + background-color: var(--skills-prime-background-color) !important; + color: var(--skills-prime-text-color) !important; + clear: left; +} + +.capsule { + margin-top: 15px; + overflow: hidden; + border: solid var(--frame-background-color); + border-radius: 5px; +} + +.jobTitle { + margin: 0; + color: var(--job-title-color); +} + +.jobSub { + margin: 0; + color: var(--job-sub-color); + font-size: 15px; +} + +.textSection { + margin-top: 15px; + background-color: var(--frame-background-color); + border-radius: 5px; +} \ No newline at end of file diff --git a/src/MistoxWebsite.Client/Pages/Shared/Authorizing.razor b/src/MistoxWebsite.Client/Pages/Shared/Authorizing.razor new file mode 100644 index 0000000..b7ed9d0 --- /dev/null +++ b/src/MistoxWebsite.Client/Pages/Shared/Authorizing.razor @@ -0,0 +1,5 @@ +Checking Session + +@code { + +} diff --git a/src/MistoxWebsite.Client/Pages/Shared/ExplorerChild.razor b/src/MistoxWebsite.Client/Pages/Shared/ExplorerChild.razor new file mode 100644 index 0000000..25e016d --- /dev/null +++ b/src/MistoxWebsite.Client/Pages/Shared/ExplorerChild.razor @@ -0,0 +1,38 @@ + + + + +@code{ + [Parameter] + public string Title{ get; set; } = ""; + [Parameter] + public DirObj[]? Children{ get; set; } + [Parameter] + public string PartialPath{ get; set; } = ""; + + public string collapseStyle = "none"; + + void OpenCollapseable() { + if (collapseStyle == "block") { + collapseStyle = "none"; + } else { + collapseStyle = "block"; + } + } + + void Download(string Path) { + Nav.NavigateTo( "api/product/download?Product=" + PartialPath + Path, true ); + } +} \ No newline at end of file diff --git a/src/MistoxWebsite.Client/Pages/Shared/MainLayout.razor b/src/MistoxWebsite.Client/Pages/Shared/MainLayout.razor new file mode 100644 index 0000000..272c6ae --- /dev/null +++ b/src/MistoxWebsite.Client/Pages/Shared/MainLayout.razor @@ -0,0 +1,19 @@ +@inherits LayoutComponentBase + +
+ + +
+
+ @Body +
+
+
+ +@code{ + + + +} \ No newline at end of file diff --git a/src/MistoxWebsite.Client/Pages/Shared/MainLayout.razor.css b/src/MistoxWebsite.Client/Pages/Shared/MainLayout.razor.css new file mode 100644 index 0000000..c29890a --- /dev/null +++ b/src/MistoxWebsite.Client/Pages/Shared/MainLayout.razor.css @@ -0,0 +1,88 @@ +article{ + padding: 0 !important; +} + +.page { + position: relative; + display: flex; + flex-direction: column; + background-color: var(--Mistox-Black); +} + +body{ + background-color: var(--Mistox-Black); +} + +main { + flex: 1; + background-color: var(--Mistox-Black); + color: var(--Mistox-White); +} + +.sidebar { + border-right: var(--Mistox-Background) 2px solid; +} + +.top-row { + background-color: #f7f7f7; + border-bottom: 1px solid #d6d5d5; + justify-content: flex-end; + height: 45px; + display: flex; + align-items: center; +} + + .top-row ::deep a, .top-row ::deep .btn-link { + white-space: nowrap; + margin-left: 1.5rem; + text-decoration: none; + } + + .top-row ::deep a:hover, .top-row ::deep .btn-link:hover { + text-decoration: underline; + } + + .top-row ::deep a:first-child { + overflow: hidden; + text-overflow: ellipsis; + } + +@media (max-width: 640.98px) { + .top-row:not(.auth) { + display: none; + } + + .top-row.auth { + justify-content: space-between; + } + + .top-row ::deep a, .top-row ::deep .btn-link { + margin-left: 0; + } +} + +@media (min-width: 641px) { + .page { + flex-direction: row; + } + + .sidebar { + width: 250px; + height: 100vh; + position: sticky; + top: 0; + min-width: 250px; + } + + .top-row { + position: sticky; + top: 0; + z-index: 1; + } + + .top-row.auth ::deep a:first-child { + flex: 1; + text-align: right; + width: 0; + } +} diff --git a/src/MistoxWebsite.Client/Pages/Shared/NavMenu.razor b/src/MistoxWebsite.Client/Pages/Shared/NavMenu.razor new file mode 100644 index 0000000..53c4b27 --- /dev/null +++ b/src/MistoxWebsite.Client/Pages/Shared/NavMenu.razor @@ -0,0 +1,96 @@ +
+
+ + + +
+ +
+ +
+ + +
+ +
+
+ +@code { + private bool collapseNavMenu = true; + + private string? NavMenuCssClass => collapseNavMenu ? "collapse" : null; + private string? MainHeight => collapseNavMenu ? "calc(100vh - 56px)" : "calc(100vh - 279.2px)"; + + private void ToggleNavMenu(){ + collapseNavMenu = !collapseNavMenu; + } + + private void ManageProf() { + Nav.NavigateTo("/account/manage"); + } + + async void ClearSession() { + await Http.PostAsync("api/account/logout", new StringContent("")); + Nav.NavigateTo("/", true); + } + + void NavToLogin() { + Nav.NavigateTo("/account/login"); + } + + void NavToRegister() { + Nav.NavigateTo("/account/register"); + } +} diff --git a/src/MistoxWebsite.Client/Pages/Shared/NavMenu.razor.css b/src/MistoxWebsite.Client/Pages/Shared/NavMenu.razor.css new file mode 100644 index 0000000..dc8dfe9 --- /dev/null +++ b/src/MistoxWebsite.Client/Pages/Shared/NavMenu.razor.css @@ -0,0 +1,132 @@ +.navbar-toggler { + background-color: var(--Mistox-Dark); + color: var(--Mistox-White); + width: 100%; + height: 40px; + border: none; + font-size: 20px; + transition-duration: 0.5s; +} + + .navbar-toggler:hover { + background-color: #410a04; + } + +.top-row { + background-color: var(--Mistox-Offset); + height: 200px; +} + +.bottom-row { + height: calc(100% - 200px); + background: linear-gradient(0deg, var(--Mistox-Dark), var(--Mistox-Offset) ); +} + +.navbar-brand img { + width: 200px; + height: 200px; + padding: 0 25px; +} + +.oi { + width: 2rem; + font-size: 1.1rem; + color: var(--Mistox-White); +} + +.nav-item { + font-size: 0.9rem; + padding-bottom: 0.5rem; + text-decoration: none; +} + + .nav-item:first-of-type { + padding-top: 1rem; + } + + .nav-item:last-of-type { + padding-bottom: 1rem; + } + + .nav-item ::deep a { + color: var(--Mistox-White); + border-radius: 4px; + height: 3rem; + display: flex; + align-items: center; + line-height: 3rem; + transition-duration: 0.5s; + text-decoration: none; + padding-left: 20px; + } + +.nav-item ::deep a.active { + background-color: rgba(255,255,255,0.25); + color: var(--Mistox-White); +} + +.nav-item ::deep a:hover { + background-color: rgba(255,255,255,0.1); + color: var(--Mistox-White); +} + +.nav-login { + position: relative; + bottom: 10px; + left: 10px; + width: calc(100% - 20px); + padding-top: 10px; +} + +.collapse { + display: none; +} + +.nav-login-button { + width: calc(50% - 2.5px); + background-color: transparent; + border-radius: 5px; + border-color: transparent; + color: var(--Mistox-White); + transition-duration: 0.5s; + padding: 5px 0; +} + + .nav-login-button:hover { + background-color: #FFFFFF50; + } + +@media (min-width: 641px) { + .navbar-toggler { + display: none; + } + + .collapse { + /* Never collapse the sidebar for wide screens */ + display: block !important; + } + + .nav-login { + position: absolute; + } + +} + +@media (max-width: 640px){ + + .navbar-brand img { + position: relative !important; + padding-left: calc(50% - 80px) !important; + height: 160px; + width: 160px; + } + + .top-gradient { + background: linear-gradient(0deg, var(--Mistox-Dark), var(--Mistox-Offset) ); + } + + .bottom-row { + background: var(--Mistox-Medium); + } + +} \ No newline at end of file diff --git a/src/MistoxWebsite.Client/Pages/Shared/NotAuthroized.razor b/src/MistoxWebsite.Client/Pages/Shared/NotAuthroized.razor new file mode 100644 index 0000000..a9a554b --- /dev/null +++ b/src/MistoxWebsite.Client/Pages/Shared/NotAuthroized.razor @@ -0,0 +1,13 @@ +@if(Statics.User.ID != -1 ) { + + + +} + +@code { + protected override void OnInitialized() { + if (Statics.User.ID == -1 ) { + Nav.NavigateTo( "/account/login?ReturnURL=Null" ); + } + } +} diff --git a/src/MistoxWebsite.Client/Pages/Shared/PageDoesntExist.razor b/src/MistoxWebsite.Client/Pages/Shared/PageDoesntExist.razor new file mode 100644 index 0000000..950d25a --- /dev/null +++ b/src/MistoxWebsite.Client/Pages/Shared/PageDoesntExist.razor @@ -0,0 +1,7 @@ + Not found + +

Nothing at this page

+ +@code { + +} diff --git a/src/MistoxWebsite.Client/Pages/Shared/TitleBar.razor b/src/MistoxWebsite.Client/Pages/Shared/TitleBar.razor new file mode 100644 index 0000000..7205852 --- /dev/null +++ b/src/MistoxWebsite.Client/Pages/Shared/TitleBar.razor @@ -0,0 +1,19 @@ +
+
+

@Title

+
+ @foreach(TitleBarDiv cur in ButtonList ) { + + } +
+ +@code { + [Parameter] + public string Title { get; set; } = string.Empty; + + [Parameter] + public TitleBarDiv[] ButtonList { get; set; } = {}; +} \ No newline at end of file diff --git a/src/MistoxWebsite.Client/Pages/Shared/TitleBar.razor.css b/src/MistoxWebsite.Client/Pages/Shared/TitleBar.razor.css new file mode 100644 index 0000000..5f5eeed --- /dev/null +++ b/src/MistoxWebsite.Client/Pages/Shared/TitleBar.razor.css @@ -0,0 +1,43 @@ +.title-div { + width: 100%; + height: 45px; + background-color: #16212c; + font-size: 15px; +} + + .title-div div { + float: left; + } + + .title-div h1 { + font-size: 30px; + padding: 5px; + padding-left: 1rem; + margin: 0; + } + + .title-div img{ + height: 20px; + } + + .title-div span { + position: relative; + top: calc(50% - 15px); + } + + .title-div button { + padding: 5px; + margin: 5px; + margin-right: 10px; + float: right; + width: 120px; + border: none; + background-color: #16212c; + color: #d7d7d7; + border-radius: 4px; + transition-duration: 0.5s; + } + + .title-div button:hover { + background-color: rgba(255,255,255,0.2); + } diff --git a/src/MistoxWebsite.Client/Pages/Snake.razor b/src/MistoxWebsite.Client/Pages/Snake.razor new file mode 100644 index 0000000..17338bc --- /dev/null +++ b/src/MistoxWebsite.Client/Pages/Snake.razor @@ -0,0 +1,164 @@ +@page "/snake" + +
+

Score : 0

+
+ + + @foreach(SnakePart part in SnakeParts ) { +
+ } +
+ + +
+ +
+

LEADERBOARD

+
+
+
+

Designed by Derek in California

+
+ + + +@code { + + struct SnakePart { + public int X{ get; set; } + public int Y{ get; set; } + public int Hue{ get; set; } + + public string getX() { + return X * 10 + "px"; + } + public string getY() { + return Y * 10 + "px"; + } + } + enum Direction { + Up, + Down, + Left, + Right + } + + List SnakeParts = new List(){ + new SnakePart{ X = 5, Y = 10 }, // Tail + new SnakePart{ X = 6, Y = 10 }, + new SnakePart{ X = 7, Y = 10 }, + new SnakePart{ X = 8, Y = 10 } // Head + }; + int Score = 0; + bool Paused = false; + Direction SnakeDirection = Direction.Right; + int FrameRate = 1000 / 10; + int HueRate = 5; + + SnakePart Collectable = new SnakePart{ X = 15, Y = 15 }; + + + void OnKeyDown(KeyboardEventArgs e) { + Console.WriteLine(e.Key); + if (e.Key.ToLower() == "w" ) { + SnakeDirection = Direction.Up; + }else if (e.Key.ToLower() == "a" ) { + SnakeDirection = Direction.Left; + }else if (e.Key.ToLower() == "s" ) { + SnakeDirection = Direction.Down; + }else if (e.Key.ToLower() == "d" ) { + SnakeDirection = Direction.Right; + } + } + + bool CheckSelfHit() { + foreach(SnakePart cur in SnakeParts ) { + if (SnakeParts[SnakeParts.Count-1].X == cur.X ) { + if (SnakeParts[SnakeParts.Count-1].Y == cur.Y ) { + return false; + } + } + } + return true; + } + + bool CheckBounds() { + if (SnakeParts[SnakeParts.Count-1].X > 0 && SnakeParts[SnakeParts.Count-1].X < 50 ) { + if (SnakeParts[SnakeParts.Count-1].Y > 0 && SnakeParts[SnakeParts.Count-1].Y < 50 ) { + return true; + } + } + return false; + } + + bool CheckCollectibleHit() { // return true if hit + if (SnakeParts[SnakeParts.Count-1].X == Collectable.X ) { + if (SnakeParts[SnakeParts.Count-1].Y == Collectable.Y ) { + return true; + } + } + return false; + } + + void ResetCollectable() { + Collectable.X = new Random().Next(1, 40); + Collectable.Y = new Random().Next(1, 40); + } + + void Die() { + + } + + void Update() { + // Get Next Position + if( SnakeDirection == Direction.Up ) { + SnakeParts.Add( new SnakePart { + X = SnakeParts[SnakeParts.Count-1].X, + Y = SnakeParts[SnakeParts.Count-1].Y - 1, + Hue = SnakeParts[SnakeParts.Count-1].Hue + HueRate + }); + }else if (SnakeDirection == Direction.Right ) { + SnakeParts.Add( new SnakePart { + X = SnakeParts[SnakeParts.Count-1].X + 1, + Y = SnakeParts[SnakeParts.Count-1].Y, + Hue = SnakeParts[SnakeParts.Count-1].Hue + HueRate + }); + }else if (SnakeDirection == Direction.Down ) { + SnakeParts.Add( new SnakePart { + X = SnakeParts[SnakeParts.Count-1].X, + Y = SnakeParts[SnakeParts.Count-1].Y + 1, + Hue = SnakeParts[SnakeParts.Count-1].Hue + HueRate + }); + }else if (SnakeDirection == Direction.Left ) { + SnakeParts.Add( new SnakePart { + X = SnakeParts[SnakeParts.Count-1].X - 1, + Y = SnakeParts[SnakeParts.Count-1].Y, + Hue = SnakeParts[SnakeParts.Count-1].Hue + HueRate + }); + } + if (CheckSelfHit() && CheckBounds() ) { + if( CheckCollectibleHit() ) { + Score += 1; + ResetCollectable(); + } else { + SnakeParts.RemoveAt( 0 ); + } + } else { + Die(); + } + StateHasChanged(); + } + + protected override void OnInitialized() { + ResetCollectable(); + var timer = new System.Threading.Timer((e) => { + if (!Paused){ + Update(); + } + }, null, 0, FrameRate ); + } + +} diff --git a/src/MistoxWebsite.Client/Pages/Store/Cart.razor b/src/MistoxWebsite.Client/Pages/Store/Cart.razor new file mode 100644 index 0000000..3bbeee8 --- /dev/null +++ b/src/MistoxWebsite.Client/Pages/Store/Cart.razor @@ -0,0 +1,82 @@ +@page "/store/cart" +@attribute [Authorize] + +

Cart

+ +
+ @foreach( MistoxWebsite.Shared.Cart obj in Statics.Carts ) { +
+

@getItem(obj.ProductID)?.Name

+ @foreach( string cur in getItem( obj.ProductID )?.Images ) { + Not found + } +

$@((Convert.ToSingle( getItem( obj.ProductID )?.Cost ) / 100f).ToString( "0.00" )) USD

+ +
+ } +
+ +
+ @if( Statics.Carts.Count > 0 ) { +

Total : $@total.ToString( "0.00" )

+ + } else { +

The cart is empty

+ } +
+ +@code { + + [Parameter] public Func? ShouldReRender { get; set; } + [Parameter] public Catalog? parent { get; set; } = null; + + float total = 0; + + Product? getItem(int productID ) { + foreach(Product cur in Statics.Products ) { + if (cur.ID == productID ) { + return cur; + } + } + return null; + } + + protected override void OnInitialized() { + total = 0; + foreach( MistoxWebsite.Shared.Cart obj in Statics.Carts ) { + foreach( Product item in Statics.Products ) { + if( obj.ProductID == item.ID ) { + total = total + (item.Cost / 100f); + break; + } + } + } + base.StateHasChanged(); + } + + public void RecalcTotal() { + OnInitialized(); + } + + public async void removeFromCart(int ID) { + for(int i=0; i<=Statics.Carts.Count; i++ ) { + if(ID == Statics.Carts[i].ProductID ) { + await Http.PostAsJsonAsync( "api/cart/remove", Statics.Carts [i] ); + Statics.Carts.RemoveAt(i); + total = 0; + OnInitialized(); + break; + } + } + if (parent != null ) { + parent?.Refresh(); + } else { + base.StateHasChanged(); + } + } + + public void Chekout() { + Nav.NavigateTo("/store/payment/checkout"); + } + +} \ No newline at end of file diff --git a/src/MistoxWebsite.Client/Pages/Store/Cart.razor.css b/src/MistoxWebsite.Client/Pages/Store/Cart.razor.css new file mode 100644 index 0000000..11380e4 --- /dev/null +++ b/src/MistoxWebsite.Client/Pages/Store/Cart.razor.css @@ -0,0 +1,70 @@ +.Spacer{ + padding: 10px; +} + +.cart-title{ + width: 100%; + text-align: center; +} + +.cart-item { + background-color: #222; + border: 1px solid #f00; + border-radius: 4px; +} + +.cart-item h1 { + text-align: center; + padding-top: 5px; +} + +.cart-item img { + width: calc(100% - 10px); + margin: 5px; +} + +.cart-item h2 { + float: left; + width: 50%; + text-align: center; +} + +.cart-item button{ + width: calc( 50% - 40px); + height: 28px; + margin: 20px; + background-color: #ff0000; + border: none; + border-radius: 4px; + transition-duration: 0.5s; +} + + .cart-item button:hover { + background-color: #500; + color: #fff; + } + +.cart-total{ + width: 100%; +} + +.cart-total h3 { + width: 100%; + text-align: center; +} + +.cart-total button { + width: 200px; + height: 50px; + margin-left: calc( 50% - 100px ); + margin-bottom: 30px; + background-color: lawngreen; + border: none; + border-radius: 4px; + transition-duration: 0.5s; +} + + .cart-total button:hover { + background-color: #040; + color: #fff; + } \ No newline at end of file diff --git a/src/MistoxWebsite.Client/Pages/Store/Catalog.razor b/src/MistoxWebsite.Client/Pages/Store/Catalog.razor new file mode 100644 index 0000000..e267e36 --- /dev/null +++ b/src/MistoxWebsite.Client/Pages/Store/Catalog.razor @@ -0,0 +1,139 @@ +@page "/store/catalog" +@attribute [Authorize] + +Catalog + + + +
+@foreach(Product obj in Statics.Products ) { +
+
+ @if( obj.Images.Count > 1 ) { + + } + @if( obj.Images.Count > 0 ) { + Not found + } + @if( obj.Images.Count > 1 ) { + + } +
+

@obj.Name

+

@obj.Description

+

$@((Convert.ToSingle(obj.Cost)/100f).ToString("0.00"))

+ @if ( isOwned(obj.ID) ) { + + } else { + @if( isInCart( obj.ID ) ) { + + } else { + + } + } + + + +
+} + + + +
+ +
+ +
+ +@code { + Cart? thisCart; + bool CartOpen = false; + string? CartCssClass => CartOpen ? "cartopen" : "cartclosed"; + + TitleBarDiv[] tbd = new TitleBarDiv[2]; + protected override void OnInitialized() { + tbd [0] = new TitleBarDiv { Name = "Cart", Image="/img/cart.png" }; + tbd [0].onClicked += async ( object? o, EventArgs e ) => { + V2 dim = await JS.InvokeAsync("getWindowSize"); + Console.WriteLine("Screen width : " + dim.width); + if (dim.width <= 640 ) { + Nav.NavigateTo( "/store/cart" ); + } + CartOpen = !CartOpen; + base.StateHasChanged(); + }; + + tbd[1] = new TitleBarDiv { Name = "Downloads" }; + tbd[1].onClicked += (object? o, EventArgs e) => { + Nav.NavigateTo("/project/downloads"); + }; + } + + public void Download() { + Nav.NavigateTo( "/project/downloads" ); + } + + public void Refresh() { + base.StateHasChanged(); + } + + public void Previous( Product obj ) { + obj.CurShowingIMG--; + if (obj.CurShowingIMG < 0 ) { + obj.CurShowingIMG = obj.Images.Count - 1; + } + } + + public void Next( Product obj ) { + obj.CurShowingIMG++; + if (obj.CurShowingIMG > obj.Images.Count - 1 ) { + obj.CurShowingIMG = 0; + } + } + + public bool isOwned(int ID ) { + if(Statics.Owned.Count > 0 ) { + foreach( MistoxWebsite.Shared.Receipt cur in Statics.Owned ) { + if( cur.ProductID == ID ) { + return true; + } + } + } + return false; + } + + public bool isInCart(int id) { + foreach( MistoxWebsite.Shared.Cart cur in Statics.Carts ) { + if (cur.ProductID == id ) { + return true; + } + } + return false; + } + + public async void onAddToCart( int ID ) { + MistoxWebsite.Shared.Cart item = new MistoxWebsite.Shared.Cart { + ProductID = ID, + AccountID = Statics.User.ID + }; + await Http.PostAsJsonAsync( "api/cart/add", item ); + Statics.Carts.Add(item); + base.StateHasChanged(); + thisCart?.RecalcTotal(); + } + + void gotoNew() { + Nav.NavigateTo( "/admin/product/create" ); + } + + void gotoEdit(int objId ) { + Nav.NavigateTo( "/admin/product/edit?ProductID=" + objId ); + } + + class V2 { + public int width{ get; set; } + public int height{ get; set; } + } +} diff --git a/src/MistoxWebsite.Client/Pages/Store/Catalog.razor.css b/src/MistoxWebsite.Client/Pages/Store/Catalog.razor.css new file mode 100644 index 0000000..40214e7 --- /dev/null +++ b/src/MistoxWebsite.Client/Pages/Store/Catalog.razor.css @@ -0,0 +1,123 @@ +.gameCard { + position: relative; + background-color: var(--Secondary-Button-Color); + float: left; + box-sizing: border-box; + margin: 0; + padding: 0; + width: 100%; + border-radius: 10px; + break-inside: avoid; + margin-bottom: 2rem; +} + +.gameCard-Name { + width: 100%; + text-align: left; + font-size: 25px; + padding: 5px 0 0 5px; + background-color: rgba(0,0,0,.1); +} + +.gameCard-Grid { + column-count: 4; + column-gap: 2rem; + padding-top: 20px; + width: calc(100% - 40px); + margin-left: 20px; +} + +@media (max-width: 1400px) { + .gameCard-Grid { + column-count: 3; + padding-top: 20px; + width: calc(100% - 40px); + margin-left: 20px; + } +} + +@media (max-width: 1100px) { + .gameCard-Grid { + column-count: 2; + padding-top: 20px; + width: calc(100% - 40px); + margin-left: 20px; + } +} + +@media (max-width: 900px) { + .gameCard-Grid { + column-count: 1; + padding-top: 20px; + width: calc(100% - 40px); + margin-left: 20px; + } +} + +.gameCard-Img { + width: 100%; + border-radius: 10px 10px 0 0; +} + +.gameCard-Next, +.gameCard-Prev { + background-color: transparent; + color: #fff; + padding: 16px; + margin-top: -22px; + font-size: 18px; + font-weight: bold; + border: none; + transition: background-color 0.6s ease; +} + + .gameCard-Next:hover, + .gameCard-Prev:hover { + background-color: rgba(0, 0, 0, 0.5); + } + +.gameCard-Prev { + position: absolute; + top: 50%; +} + +.gameCard-Next { + position: absolute; + top: 50%; + right: 0; +} + +.gameCard-Desc { + font-size: 13px; + margin: 5px; + color: #ccc; +} + +.gameCard-Price { + width: calc(50% - 10px); + float: left; + margin: 5px; + text-align: center; + margin-bottom: 10px; +} + +.gameCard-Button { + width: 40%; + margin: 5px 5%; + height: 38.4px; +} + +.cartopen { + position: absolute; + background: #2c2946AA; + right: 10px; + top: 55px; + width: 400px; + border-radius: 5px; + backdrop-filter: blur(3px); + border: 1px solid #00f; +} + +.cartclosed { + display: none; +} \ No newline at end of file diff --git a/src/MistoxWebsite.Client/Pages/Store/Payment/Checkout.razor b/src/MistoxWebsite.Client/Pages/Store/Payment/Checkout.razor new file mode 100644 index 0000000..2252358 --- /dev/null +++ b/src/MistoxWebsite.Client/Pages/Store/Payment/Checkout.razor @@ -0,0 +1,36 @@ +@page "/store/payment/checkout" +@attribute [Authorize] + +@if( loaded ) { + +} + +@code { + public string PaymentIFrame { get; set; } = ""; + public bool loaded = false; + + protected override async Task OnInitializedAsync() { + if (Statics.Carts.Count == 0 ) { + Nav.NavigateTo("/store/cart"); + } + AuthenticationState user = await Auth.GetAuthenticationStateAsync(); + string email = string.Empty; + foreach(Claim cur in user.User.Claims ) { + if (cur.Type == ClaimTypes.Email ) { + email = cur.Value; + break; + } + } + string buildingURL = "https://mistox.net/PaymentFrame.html?userID=" + email; + PaymentIFrame = buildingURL; + loaded = true; + await base.OnInitializedAsync(); + } + + protected override async void OnAfterRender( bool firstRender ) { + if( firstRender ) { + await JS.InvokeVoidAsync( "PaymentLoaded" ); + } + base.OnAfterRender( firstRender ); + } +} diff --git a/src/MistoxWebsite.Client/Pages/Store/Payment/Checkout.razor.css b/src/MistoxWebsite.Client/Pages/Store/Payment/Checkout.razor.css new file mode 100644 index 0000000..01e9258 --- /dev/null +++ b/src/MistoxWebsite.Client/Pages/Store/Payment/Checkout.razor.css @@ -0,0 +1,7 @@ +.PaymentFrame{ + position: relative; + left: 50px; + width: calc(100% - 100px); + margin-top: 50px; + background-color: #808080; +} \ No newline at end of file diff --git a/src/MistoxWebsite.Client/Pages/Store/Payment/Success.razor b/src/MistoxWebsite.Client/Pages/Store/Payment/Success.razor new file mode 100644 index 0000000..9191a90 --- /dev/null +++ b/src/MistoxWebsite.Client/Pages/Store/Payment/Success.razor @@ -0,0 +1,25 @@ +@page "/store/payment/success" + +

Payment Success

+ +@code { + + [Parameter] + [SupplyParameterFromQuery] + public string? ReceiptID { get; set; } + /* + protected override async Task OnInitializedAsync() { + + string resultBody = await (await Http.PostAsync( "/api/stripe/getreceipt", new StringContent(ReceiptID) )).Content.ReadAsStringAsync(); + Receipt receipt = JsonConvert.DeserializeObject( resultBody ); + + if (receipt.Payment.Status == "succeeded" ) { + + // Add the product passed to the database + + } + + Console.WriteLine( "test" ); + } + */ +} diff --git a/src/MistoxWebsite.Client/Pages/Store/Receipt.razor b/src/MistoxWebsite.Client/Pages/Store/Receipt.razor new file mode 100644 index 0000000..8d71b8a --- /dev/null +++ b/src/MistoxWebsite.Client/Pages/Store/Receipt.razor @@ -0,0 +1,71 @@ +@page "/store/receipt" + +

Receipt

+ +
+
+

Mistox

+

https://mistox.net

+

For Support or questions please email

+

derek@mistox.net

+
+
+
+

Payment Method: @PayMethod

+

Card Used: @Last4

+
+
+
+

@ItemTitle:

$@ItemCost

+
+

Subtotal:

$@ItemCost

+

Amount Charged:

$@ItemCost

+
+
+
+

Receipt ID: @ReceiptID

+

Purchase Time: @PurchaseDateTime

+

Customer: @CustomerID

+
+
+
+

Thank you

+
+
+ + + +@code { + [Parameter] + [SupplyParameterFromQuery] + public string ReceiptID { get; set; } = ""; + + public string PurchaseDateTime{ get; set; } = ""; + public string CustomerID { get; set; } = ""; + public string ItemTitle { get; set; } = ""; + public string ItemCost { get; set; } = ""; + public string PayMethod { get; set; } = ""; + public string Last4 { get; set; } = ""; + + protected override void OnInitialized() { + /* + string resultBody = await (await Http.PostAsync( "/api/stripe/getreceipt", new StringContent(ReceiptID) )).Content.ReadAsStringAsync(); + ReceiptResponse receipt = JsonConvert.DeserializeObject( resultBody ); + if (receipt != null ) { + if( receipt.Succeeded == "succeeded" ) { + PurchaseDateTime = receipt.PurchaseDateTime; + CustomerID = receipt.CustomerID; + ItemTitle = receipt.ItemTitle; + ItemCost = receipt.ItemCost; + PayMethod = receipt.PayMethod; + Last4 = receipt.Last4; + } else { + Nav.NavigateTo( "/" ); + } + } else { + Nav.NavigateTo( "/?ReceiptNotFound" ); + } + */ + } + +} diff --git a/src/MistoxWebsite.Client/Program.cs b/src/MistoxWebsite.Client/Program.cs new file mode 100644 index 0000000..b40b5b7 --- /dev/null +++ b/src/MistoxWebsite.Client/Program.cs @@ -0,0 +1,23 @@ +using MistoxWebsite.Client; +using Microsoft.AspNetCore.Components.Web; +using Microsoft.AspNetCore.Components.WebAssembly.Hosting; +using Microsoft.AspNetCore.Components.Authorization; +using MistoxWebsite.Client.AuthState; + +var builder = WebAssemblyHostBuilder.CreateDefault(args); +builder.RootComponents.Add( "#app" ); +builder.RootComponents.Add( "head::after" ); + +builder.Services.AddScoped( + sp => new HttpClient { + BaseAddress = new Uri( + builder.HostEnvironment.BaseAddress + ) + } +); + +builder.Services.AddOptions(); +builder.Services.AddAuthorizationCore(); +builder.Services.AddScoped(); + +await builder.Build().RunAsync(); \ No newline at end of file diff --git a/src/MistoxWebsite.Client/Services/AuthStateProvider.cs b/src/MistoxWebsite.Client/Services/AuthStateProvider.cs new file mode 100644 index 0000000..9b9df50 --- /dev/null +++ b/src/MistoxWebsite.Client/Services/AuthStateProvider.cs @@ -0,0 +1,49 @@ +using System.Security.Claims; +using Microsoft.AspNetCore.Components.Authorization; +using MistoxWebsite.Shared; +using Newtonsoft.Json; + +namespace MistoxWebsite.Client.AuthState { + public class AuthStateProvider : AuthenticationStateProvider { + + private readonly HttpClient _httpClient; + + public AuthStateProvider( HttpClient httpClient ) { + _httpClient = httpClient; + } + + // Called initially on website load + public override async Task GetAuthenticationStateAsync() { + + HttpResponseMessage test = await _httpClient.PostAsync("api/pageload", new StringContent("") ); + if( test.IsSuccessStatusCode ) { + string outtest = await test.Content.ReadAsStringAsync(); + PageLoadObject? t = JsonConvert.DeserializeObject(outtest); + if( t != null && t.products != null && t.receipts != null && t.user != null && t.Cart != null && t.claims != null ) { + Statics.Statics.Products = t.products; + Statics.Statics.Owned = t.receipts; + Statics.Statics.User = t.user; + Statics.Statics.Carts = t.Cart; + + List claims = new List() { + new Claim(ClaimTypes.Name, t.claims.UserName), + new Claim(ClaimTypes.Email, t.claims.Email), + new Claim("emailverified", t.claims.EmailVerified), + new Claim(ClaimTypes.Role, t.claims.Role), + new Claim("LockAccount", t.claims.FailedPasswordLock), + }; + AuthenticationState temp1 = + new AuthenticationState( + new ClaimsPrincipal( + new ClaimsIdentity(claims, "serverAuth" + ) + ) + ); + return temp1; + } + } + AuthenticationState temp2 = new AuthenticationState(new ClaimsPrincipal(new ClaimsIdentity())); + return temp2; + } + } +} diff --git a/src/MistoxWebsite.Client/Services/Statics.cs b/src/MistoxWebsite.Client/Services/Statics.cs new file mode 100644 index 0000000..83c873c --- /dev/null +++ b/src/MistoxWebsite.Client/Services/Statics.cs @@ -0,0 +1,21 @@ +using MistoxWebsite.Shared; + +namespace MistoxWebsite.Client.Statics { + public class Statics { + public static Account User = new Account(){ ID=-1 }; + public static List Products = new List(); + public static List Owned = new List(); + public static List Carts = new List(); + } + + public class TitleBarDiv { + public string Name { get; set; } = string.Empty; + public string Image { get; set; } = string.Empty; + public event EventHandler? onClicked = null; + + public void invokeClicked() { + onClicked?.Invoke( new object(), new EventArgs() ); + } + } + +} \ No newline at end of file diff --git a/src/MistoxWebsite.Client/_Imports.razor b/src/MistoxWebsite.Client/_Imports.razor new file mode 100644 index 0000000..a5712ea --- /dev/null +++ b/src/MistoxWebsite.Client/_Imports.razor @@ -0,0 +1,26 @@ +@using System.Net.Http +@using System.Net.Http.Json +@using Microsoft.AspNetCore.Components.Forms +@using Microsoft.AspNetCore.Components.Routing +@using Microsoft.AspNetCore.Components.Web +@using Microsoft.AspNetCore.Components.Web.Virtualization +@using Microsoft.AspNetCore.Components.WebAssembly.Http +@using Microsoft.JSInterop +@using MistoxWebsite.Client + +@using Microsoft.AspNetCore.Authorization +@using Microsoft.AspNetCore.Components.Authorization +@using System.Security.Claims +@using MistoxWebsite.Client.AuthState +@using MistoxWebsite.Client.Statics +@using System.Security.Cryptography +@using System.Text +@using MistoxWebsite.Shared +@using Newtonsoft.Json + +@using MistoxWebsite.Client.Pages.Shared + +@inject IJSRuntime JS +@inject NavigationManager Nav +@inject HttpClient Http +@inject AuthenticationStateProvider Auth \ No newline at end of file diff --git a/src/MistoxWebsite.Server/Controllers/AuthenticationController.cs b/src/MistoxWebsite.Server/Controllers/AuthenticationController.cs new file mode 100644 index 0000000..407c8d4 --- /dev/null +++ b/src/MistoxWebsite.Server/Controllers/AuthenticationController.cs @@ -0,0 +1,387 @@ +using Microsoft.AspNetCore.Authentication; +using Microsoft.AspNetCore.Mvc; +using MistoxWebsite.Shared; +using System.Security.Claims; +using MistoxWebsite.Server.Services; +using MistoxWebsite.Server.Services.DatabaseService; +using Microsoft.AspNetCore.Authentication.Cookies; + +namespace MistoxWebsite.Server.Controllers { + [ApiController] + public class AuthenticationController : ControllerBase { + + DatabaseService _accountContext; + EmailService _emailContext; + + public AuthenticationController( DatabaseService DatabaseContext, EmailService emailContext ) { + _accountContext = DatabaseContext; + _emailContext = emailContext; + } + + // In Account -> References UserName / PasswordHash + // Out Account + [Route( "api/account/login" )] + [HttpPost] + public async Task> Login( [FromBody] Account request ) { + try { + Account? test = await _accountContext.GetAccount(request.UserName.ToLower()); + if( test != null ) { + if( test.EmailVerified == true ) { + if( test.SiteData.FailedPasswordLock ) { + if( test.SiteData.CurrentPasswordAttempts >= test.SiteData.PasswordAttempts ) { + return new Account() { Error = "Too many failed password attempts. Please reset your password" }; + } + } + if( BCrypt.Net.BCrypt.Verify( request.PasswordHash, test.PasswordHash ) ) { + test.SiteData.CurrentPasswordAttempts = 0; + await _accountContext.SetAccount( test ); + + AccountClaims aClaims = await getClaims(test.ID); + List claims = new List() { + new Claim(ClaimTypes.Name, aClaims.UserName), + new Claim(ClaimTypes.Email, aClaims.Email), + new Claim("emailverified", aClaims.EmailVerified), + new Claim(ClaimTypes.Role, aClaims.Role), + new Claim("LockAccount", aClaims.FailedPasswordLock), + new Claim("ID", test.ID.ToString()) + }; + + await HttpContext.SignInAsync( + CookieAuthenticationDefaults.AuthenticationScheme, + new ClaimsPrincipal( new ClaimsIdentity( claims, "serverAuth" ) ), + new AuthenticationProperties { + AllowRefresh = true, + IssuedUtc = DateTime.UtcNow, + ExpiresUtc = DateTime.UtcNow.AddDays( 32 ), + IsPersistent = true, + } + ); + return test; + } else { + test.SiteData.CurrentPasswordAttempts += 1; + await _accountContext.SetAccount( test ); + return new Account() { Error = "Wrong password" }; + } + }else{ + await SendVerify(test); + return new Account() { Error = "A new verify email has been sent. \n Note only 1 email send every 5 mintes" }; + } + } + return new Account() { Error = "User doesn't exist" }; + } catch( Exception ex ) { + return new Account() { Error = ex.Message }; + } + } + + // In Account -> References UserName / PasswordHash + // Out Account + [Route( "api/account/session" )] + [HttpPost] + public async Task> LoginSession( [FromBody] Account request ) { + try { + Account? test = await _accountContext.GetAccount(request.UserName.ToLower()); + if( test != null ) { + if( request.PasswordHash == test.PasswordHash ) { + return test; + } else { + test.SiteData.CurrentPasswordAttempts += 1; + await _accountContext.SetAccount( test ); + return new Account() { Error = "Wrong password" }; + } + } + return new Account() { Error = "User doesn't exist" }; + } catch( Exception ex ) { + return new Account() { Error = ex.Message }; + } + } + + // In Account + // Out List + [Route( "api/account/claims" )] + [HttpPost] + public async Task> Claims( [FromBody] Account Account ) { + AccountClaims claims = await getClaims(Account.ID); + return claims; + } + + async Task getClaims( int AccountID ) { + try { + Account? test = await _accountContext.GetAccountByID(AccountID); + if( test != null ) { + AccountClaims aClaims = new AccountClaims() { + UserName = test.UserName, + Email = test.Email, + Role = test.SiteData.Role + }; + aClaims.EmailVerified = test.EmailVerified ? "1" : "0"; + aClaims.FailedPasswordLock = test.SiteData.FailedPasswordLock ? "1" : "0"; + return aClaims; + } + return new AccountClaims(); + } catch { + return new AccountClaims(); + } + } + + + // In Account -> Full account + // Out Account + [Route( "api/account/register" )] + [HttpPost] + public async Task> Register( [FromBody] Account request ) { + try { + if( await _accountContext.GetAccount( request.UserName.ToLower() ) == null ) { + if( await _accountContext.GetAccount( request.Email.ToLower() ) == null ) { + Account? created = new Account(){ + UserName = request.UserName.ToLower(), + Email = request.Email.ToLower(), + EmailVerified = false, + PasswordHash = BCrypt.Net.BCrypt.HashPassword(request.PasswordHash), + }; + await _accountContext.NewAccount( created ); + created = await _accountContext.GetAccount( request.Email.ToLower() ); + if( created != null ) { + AccountClaims aClaims = await getClaims(created.ID); + List claims = new List() { + new Claim(ClaimTypes.Name, aClaims.UserName), + new Claim(ClaimTypes.Email, aClaims.Email), + new Claim("emailverified", aClaims.EmailVerified), + new Claim(ClaimTypes.Role, aClaims.Role), + new Claim("LockAccount", aClaims.FailedPasswordLock) + }; + + await SendVerify(created); + return created; + } + return new Account() { Error = "Unknown Error" }; + } else { + return new Account() { Error = "Email is already in use" }; + } + } else { + return new Account() { Error = "UserName is taken" }; + } + } catch( Exception ex ) { + Console.WriteLine("Error: " + ex.Message); + return new Account() { Error = ex.Message }; + } + + } + + // In Account -> References UserName / PasswordHash( Current Password ) / Error( New Password ) + // Out Bool + [Route( "api/account/changepassword" )] + [HttpPost] + public async Task> ChangePassword( [FromBody] Account request ) { + try { + Account? test = await _accountContext.GetAccount(request.UserName.ToLower()); + if( test != null ) { + if( BCrypt.Net.BCrypt.Verify( request.PasswordHash, test.PasswordHash ) ) { + test.PasswordHash = BCrypt.Net.BCrypt.HashPassword( request.Error ); + test.SiteData.CurrentPasswordAttempts = 0; + await _accountContext.SetAccount( test ); + return true; + } + } + return false; + } catch { + return false; + } + } + + // In Account -> References UserName / SiteData FailedPasswordLock / SiteData.PasswordAttempts + // Out Error String + [Route( "api/account/toggleAccountLock" )] + [HttpPost] + public async Task> ToggleAccountLock( [FromBody] Account request ) { + try { + Account? test = await _accountContext.GetAccount(request.UserName); + if( test != null ) { + test.SiteData.FailedPasswordLock = request.SiteData.FailedPasswordLock; + test.SiteData.CurrentPasswordAttempts = 0; + test.SiteData.PasswordAttempts = request.SiteData.PasswordAttempts; + await _accountContext.SetAccount( test ); + return "Account Lock Status Updated"; + } + return "Unknown Error Occurred"; + } catch( Exception ex ) { + return ex.Message; + } + } + + // Out Account -> only if logged in + [Route( "api/account/get" )] + [HttpPost] + public async Task> Get() { + try { + if( User.Identity != null && User.Identity.IsAuthenticated ) { + string? email = User.FindFirstValue(ClaimTypes.Email); + if( !string.IsNullOrEmpty( email ) ) { + Account? test = await _accountContext.GetAccount(email); + if( test != null ) { + return test; + } + } + } + return Ok(); + } catch { + return Ok(); + } + } + + // In Null + // Out Null + [Route( "api/account/logout" )] + [HttpPost] + public async Task Logout() { + await HttpContext.SignOutAsync(); + } + + string Substitue( string message, string subString, string Replacement ) { + for( int i = 0; i < (message.Length - subString.Length); i++ ) { + if( message.Substring( i, subString.Length ) == subString ) { + string before = message.Substring( 0, i ); + string after = message.Substring(i + subString.Length ); + return before + Replacement + after; + } + } + return message; + } + + + + // In Account -> References UserName + // Out Success bool + [Route( "api/account/sendverifyemail" )] + [HttpPost] + public async Task> SendVerify( [FromBody] Account request ) { + try { + string key = "v" + request.UserName; + // Stop from sending multiple emails quickly + if ( _emailContext._SentEmails.ContainsKey(key) ){ + DateTime PreviousSentTime = _emailContext._SentEmails.GetValueOrDefault(key); + if (PreviousSentTime.AddMinutes(5) > DateTime.Now){ + return "Cannot sent another verify email until 5 minutes has elapsed "; + }else{ + _emailContext._SentEmails.Remove(key); + } + } + Account? test = await _accountContext.GetAccount(request.UserName.ToLower()); + if( test != null ) { + test.SiteData.EmailToken = Guid.NewGuid().ToString(); + await _accountContext.SetAccount( test ); + + string EmailContents = EmailService.VerifyEmailEmail; + EmailContents = Substitue( EmailContents, "@UserName", request.UserName ); + EmailContents = Substitue( EmailContents, "@UserName", request.UserName ); + EmailContents = Substitue( EmailContents, "@VerifyPassword", test.SiteData.EmailToken ); + + string result = _emailContext.Send( test.Email, EmailService.VerifyEmailSubject, EmailContents ); + _emailContext._SentEmails.Add(key, DateTime.Now); + return result; + } + return "Account not found"; + } catch (Exception) { + return "The connection couldn't be established to the email server"; + } + } + + // In Account -> References UserName / Password( EmailToken ) + // Out Success bool + [Route( "api/account/verifyemail" )] + [HttpPost] + public async Task> VerifyEmail( [FromBody] Account request ) { + try { + Account? test = await _accountContext.GetAccount(request.UserName.ToLower()); + if( test != null ) { + if( test.SiteData.EmailToken == request.PasswordHash ) { + test.SiteData.EmailToken = ""; + test.EmailVerified = true; + await _accountContext.SetAccount( test ); + return true; + } + } + return false; + } catch { + return false; + } + } + + // In Account -> References Email + // Out Success bool + [Route( "api/account/sendresetpassword" )] + [HttpPost] + public async Task> ResetPassword( [FromBody] Account request ) { + try { + string key = "p" + request.UserName; + // Stop from sending multiple emails quickly + if ( _emailContext._SentEmails.ContainsKey(key) ){ + DateTime PreviousSentTime = _emailContext._SentEmails.GetValueOrDefault(key); + if (PreviousSentTime.AddMinutes(5) > DateTime.Now){ + return "Cannot sent another reset requests until 5 minutes has elapsed"; + }else{ + _emailContext._SentEmails.Remove(key); + } + } + Account? test = await _accountContext.GetAccount(request.Email.ToLower()); + if( test != null ) { + test.SiteData.EmailToken = Guid.NewGuid().ToString(); + await _accountContext.SetAccount( test ); + + string EmailContents = EmailService.ResetPasswordEmail; + EmailContents = Substitue( EmailContents, "@UserName", test.UserName ); + EmailContents = Substitue( EmailContents, "@UserName", test.UserName ); + EmailContents = Substitue( EmailContents, "@ResetPassWord", test.SiteData.EmailToken ); + + string result = _emailContext.Send( test.Email, EmailService.VerifyEmailSubject, EmailContents ); + _emailContext._SentEmails.Add(key, DateTime.Now); + return result; + } + return "Account Not Found"; + } catch (Exception) { + return "The connection couldn't be established to the email server"; + } + + } + + // In Account -> References UserName / Password( NewPassword ) / Error( EmailToken ) + // Out Success bool + [Route( "api/account/resetpassword" )] + [HttpPost] + public async Task> ResetPwdVerify( [FromBody] Account request ) { + try { + Account? test = await _accountContext.GetAccount(request.UserName.ToLower()); + if( test != null && !string.IsNullOrEmpty(test.SiteData.EmailToken) ) { + if( test.SiteData.EmailToken == request.Error ) { + test.SiteData.CurrentPasswordAttempts = 0; + test.PasswordHash = BCrypt.Net.BCrypt.HashPassword( request.PasswordHash ); + await _accountContext.SetAccount( test ); + return true; + } + } + return false; + } catch { + return false; + } + } + + // In Account -> References UserName / Password( Password ) ) + // Out Success bool + [Route( "api/account/delete" )] + [HttpPost] + public async Task> delete( [FromBody] Account request ) { + try { + Account? test = await _accountContext.GetAccount(request.UserName.ToLower()); + if( test != null ) { + if( BCrypt.Net.BCrypt.Verify( request.PasswordHash, test.PasswordHash ) ) { + await _accountContext.DeleteAccount( test ); + return true; + } + } + return false; + } catch { + return false; + } + } + + } +} diff --git a/src/MistoxWebsite.Server/Controllers/PageLoad.cs b/src/MistoxWebsite.Server/Controllers/PageLoad.cs new file mode 100644 index 0000000..16b081a --- /dev/null +++ b/src/MistoxWebsite.Server/Controllers/PageLoad.cs @@ -0,0 +1,41 @@ +using MistoxWebsite.Server.Services.DatabaseService; +using System.Security.Claims; +using MistoxWebsite.Shared; +using Microsoft.AspNetCore.Mvc; + +namespace MistoxWebsite.Server.Controllers { + [ApiController] + public class PageLoad : ControllerBase { + + DatabaseService _databaseService; + + public PageLoad( DatabaseService context ) { + _databaseService = context; + } + + [Route( "api/pageload" )] + [HttpPost] + public async Task> onPageLoad() { + try { + if( User.Identity != null && User.Identity.IsAuthenticated ) { + string? id = User.FindFirstValue( "ID" ); + if( !string.IsNullOrEmpty( id ) ) { + PageLoadObject test = await _databaseService.getPageLoadObject(int.Parse(id)); + if (test.user != null){ + test.Cart = await _databaseService.GetCart( test.user ); + if( test != null ) { + return test; + } + } + } + } + return NotFound(); + } catch (Exception e) { + Console.WriteLine(e.ToString()); + return NotFound(); + } + } + + } + +} \ No newline at end of file diff --git a/src/MistoxWebsite.Server/Controllers/PaymentController.cs b/src/MistoxWebsite.Server/Controllers/PaymentController.cs new file mode 100644 index 0000000..df87f62 --- /dev/null +++ b/src/MistoxWebsite.Server/Controllers/PaymentController.cs @@ -0,0 +1,165 @@ +using Microsoft.AspNetCore.Cors; +using Microsoft.AspNetCore.Mvc; +using MistoxWebsite.Server.Services.DatabaseService; +using MistoxWebsite.Shared; +using Newtonsoft.Json; +using Stripe; +using Stripe.Climate; +using Stripe.Tax; + +namespace MistoxWebsite.Server.Controllers { + [ApiController] + public class PaymentController : ControllerBase { + + DatabaseService _databaseService; + + public PaymentController( DatabaseService databaseService ) { + _databaseService = databaseService; + } + + // Charges + [Route( "api/getCheckoutToken" )] + [HttpPost] + public async Task GetPaymentKey( [FromQuery] string userID ) { + + // Stored Variables + string OrderNumber = Guid.NewGuid().ToString().Substring(0,10); + int subtotal = 0; + + // Get the user purchasing the items + string UserID = ""; + Shared.Account? acc = await _databaseService.GetAccount(userID); + if( acc != null ) { + UserID = acc.ID.ToString(); + List cart = await _databaseService.GetCart( acc ); + + // build Recipt and calculate Tax + var options = new CalculationCreateOptions{ + Currency = "usd", + CustomerDetails = new CalculationCustomerDetailsOptions{ + AddressSource = "billing", + }, + Expand = new List(){ "line_items" }, + LineItems = new List() + }; + + List prods = new List(); + + // Add items to receipt + foreach( Cart items in cart ) { + Shared.Product? product = await _databaseService.GetProduct( items.ProductID ); + if (product != null){ + prods.Add(product.ID); + if( product != null ) { + subtotal += product.Cost; + options.LineItems.Add( new CalculationLineItemOptions { + Amount = product.Cost, + TaxCode = "txcd_10201000", // Tax code for downloadable digital games + Quantity = 1, + Reference = product.Name, + TaxBehavior = "exclusive" + } ); + } + } + + } + + var service = new CalculationService(); + Calculation result = service.Create( options ); + + string csv = ""; + foreach (int cur in prods ) { + csv = csv + cur + ","; + } + + // Crate Payment Intent + PaymentIntentCreateOptions paymentIntent = new PaymentIntentCreateOptions(){ + Amount = result.AmountTotal, + Currency = "usd", + Metadata = new Dictionary { + { "ordernumber", OrderNumber }, + { "user", UserID }, + { "products", csv }, + { "subtotal", subtotal.ToString() }, + { "total", result.AmountTotal.ToString() } + }, + StatementDescriptor = "Mistox.Net #" + OrderNumber + }; + + PaymentIntentService intentService = new PaymentIntentService(); + PaymentIntent x = await intentService.CreateAsync( paymentIntent ); + return x.ClientSecret; + } + return "0"; + } + + [Route( "/api/payment/response" )] + [HttpPost] + public async Task paymentWebhook() { + try { + const string endpointSecret = "whsec_HCO7uv2BPIPmUPOiSg9tfwLZul8usCGG"; + string body = await new StreamReader(Request.Body).ReadToEndAsync(); + Event e = EventUtility.ConstructEvent( body, Request.Headers["Stripe-Signature"], endpointSecret ); + if( e.Type == "payment_intent.succeeded" ) { + + // Extract Data from payment confirm + PaymentIntent intent = (PaymentIntent)e.Data.Object; + string orderNumber = ""; + int userID = 0; + List productIDs = new List(); + int subtotal = 0; + int total = 0; + + KeyValuePair[] y = intent.Metadata.ToArray(); + foreach( KeyValuePair cur in y ) { + string val = cur.Key; + if( val == "ordernumber" ) { + orderNumber = cur.Value; + } else if( val == "user" ) { + userID = int.Parse( cur.Value ); + } else if( val == "products" ) { + string[] products = cur.Value.Split(','); + foreach( string product in products ) { + if ( !string.IsNullOrEmpty(product) ) { + productIDs.Add( Convert.ToInt32( product ) ); + } + } + } else if( val == "subtotal" ) { + subtotal = int.Parse( cur.Value ); + } else if( val == "total" ) { + total = int.Parse( cur.Value ); + } + } + + // Clear the cart + Shared.Account account = new Shared.Account{ + ID = userID + }; + await _databaseService.ClearCart( account ); + + // Add data to misox receipt + for( int i = 0; i < productIDs.Count; i++ ) { + int product = productIDs[i]; + await _databaseService.NewReceipt( new Receipt { + AccountID = userID, + ProductID = product, + ReceiptID = orderNumber, + Time = DateTime.Now, + TaxAmount = total - subtotal, + TotalCost = total, + LineItem = i + } ); + } + } else { + Console.WriteLine( "Unhandled event type: {0}", e.Type ); + } + return Ok(); + } catch( Exception ex ) { + return Content(ex.ToString()); + } + } + + } + +} + diff --git a/src/MistoxWebsite.Server/Controllers/ProductController.cs b/src/MistoxWebsite.Server/Controllers/ProductController.cs new file mode 100644 index 0000000..ff4d27a --- /dev/null +++ b/src/MistoxWebsite.Server/Controllers/ProductController.cs @@ -0,0 +1,261 @@ +using Microsoft.AspNetCore.Mvc; +using MistoxWebsite.Server.Services.DatabaseService; +using MistoxWebsite.Shared; +using Newtonsoft.Json; +using System.Security.Claims; +using System.Text; + +namespace MistoxWebsite.Server.Controllers { + [ApiController] + public class ProductController : ControllerBase { + + DatabaseService _databaseService; + + public static List CatalogItems = new List(); + + public ProductController( DatabaseService databaseService ) { + _databaseService = databaseService; + } + + [Route( "api/cart/get" )] + [HttpPost] + public async Task> GetCart( [FromBody] Account acc ) { + try { + List cart = await _databaseService.GetCart( acc ); + return cart; + } catch { + return new List(); + } + } + + [Route( "api/cart/add" )] + [HttpPost] + public async Task AddCart( [FromBody] Cart cart ) { + try { + await _databaseService.AddToCart( cart ); + }catch { + + } + } + + [Route( "api/cart/remove" )] + [HttpPost] + public async Task RemoveCart( [FromBody] Cart cart ) { + try { + await _databaseService.RemoveFromCart( cart ); + } catch { + + } + } + + [Route( "api/cart/clear" )] + [HttpPost] + public async Task ClearCart( [FromBody] Account acc ) { + try { + await _databaseService.ClearCart( acc ); + } catch { + + } + } + + [Route( "api/product/create" )] + [HttpPost] + public async Task> CreateProduct( [FromBody] Product obj ) { + try { + await _databaseService.NewProduct( obj ); + await UpdateStore(); + return "Success"; + } catch { + return "Failed"; + } + } + + [Route( "api/product/update" )] + [HttpPost] + public async Task> UpdateProduct( [FromBody] Product obj ) { + try { + await _databaseService.UpdateProduct( obj ); + await UpdateStore(); + return "Success"; + } catch { + return "Failed"; + } + } + + [Route( "api/product/get" )] + [HttpPost] + public ActionResult GetProduct( [FromBody] Product product ) { + try { + foreach( Product? prod in CatalogItems ) { + if( product.ID == prod.ID ) { + return prod; + } + } + product.ID = -1; + return product; + } catch { + return new Product(); + } + } + + [Route( "api/product/getall" )] + [HttpPost] + public ActionResult> GetAllProducts() { + try { + return CatalogItems; + } catch { + return new List(); + } + } + + [Route( "api/product/getowned" )] + [HttpPost] + public async Task>> GetOwnedProduct() { + try { + if( User.Identity != null && User.Identity.IsAuthenticated ) { + string? email = User.FindFirstValue(ClaimTypes.Email); + if( !string.IsNullOrEmpty( email ) ) { + Account? test = await _databaseService.GetAccount(email); + if( test != null ) { + List returned = await _databaseService.GetAllReceipts(test); + return returned; + } + } + } + return new List(); + } catch { + return new List(); + } + } + + DirObj RecursiveBuild( DirObj DirObj, string workingPath, List purchased ) { + + string[] files = Directory.GetFiles(workingPath); + string[] directories = Directory.GetDirectories(workingPath); + + List building = new List(); + + // Get File Names + Parallel.For( 0, files.Length, ( i ) => { + string fileName = files[i].Substring(workingPath.Length, files[i].Length - (workingPath.Length)); + building.Add( new DirObj { + Type = FileType.File, + Path = fileName + }); + } ); + + // Get Path Names + Parallel.For( 0, directories.Length, ( i ) => { + foreach( ReceiptProduct cur in purchased ) { + string dirName = directories[i].Substring(workingPath.Length, directories[i].Length - (workingPath.Length)); + if( contains( dirName, cur.product.URL ) ) { + DirObj dir = new DirObj { + Type = FileType.Directory, + Path = dirName, + }; + building.Add( dir ); + RecursiveBuild( dir, directories [i], purchased ); + } + } + } ); + + DirObj.Children = building.ToArray(); + + return DirObj; + } + + string _FolderRoot = "/home/downloads/"; + + [Route( "api/product/showdownloads" )] + [HttpPost] + public async Task ShowDownloads() { + try { + if( User.Identity != null && User.Identity.IsAuthenticated ) { + + List userClaims = User.Claims.ToList(); + int UserID = -1; + foreach( Claim claim in userClaims ) { + if( claim.Type == "ID" ) { + UserID = Convert.ToInt32( claim.Value ); + break; + } + } + + List purchased = await _databaseService.GetAllReceiptsJoinedToProduct( new Account{ ID = UserID } ); + + byte[] datapacket = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(RecursiveBuild(new DirObj { + Path = @"\", + Type = FileType.Directory, + }, _FolderRoot, purchased))); + + return new FileContentResult( datapacket, "text/html" ); + } + return Unauthorized(); + } catch { + return NotFound(); + } + } + + bool contains( string outer, string inner ) { + if ( outer.Length >= inner.Length ) { + for ( int i=0; i Download( [FromQuery] string Product ) { + try { + if( User.Identity != null && User.Identity.IsAuthenticated ) { + string? email = User.FindFirstValue(ClaimTypes.Email); + if( !string.IsNullOrEmpty( email ) ) { + Account? user = await _databaseService.GetAccount(email); + if (user != null){ + List? games = await _databaseService.GetAllProducts(); + foreach( Product product in games ) { + if ( contains( Product, product.URL ) ) { + Receipt? receipt = await _databaseService.GetReceipt(user, product); + if( receipt != null ) { + FileStream fileStream = new FileStream(_FolderRoot + Product, FileMode.Open, FileAccess.Read); + return new FileStreamResult( fileStream, "application/octet-stream" ) { + FileDownloadName = fileStream.Name + }; + } + break; + } + } + } + } + return Unauthorized(); + } + return Unauthorized(); + } catch { + return NotFound(); + } + } + + [Route( "api/product/hotreload" )] + [HttpPost] // Not implimented in admin panel + public async Task UpdateStore() { + await HotReload( _databaseService ); + } + + public static async Task HotReload( DatabaseService ds ) { + CatalogItems = new List(); + try { + CatalogItems = await ds.GetAllProducts(); + } catch { + CatalogItems.Add( new Product() { ID = 0, Name = "offline prod1", Cost = 100, Description = "offline desc" } ); + CatalogItems.Add( new Product() { ID = 1, Name = "offline prod2", Cost = 100, Description = "offline desc" } ); + CatalogItems.Add( new Product() { ID = 2, Name = "offline prod3", Cost = 100, Description = "offline desc" } ); + }; + } + + } + +} diff --git a/src/MistoxWebsite.Server/MistoxWebsite.Server.csproj b/src/MistoxWebsite.Server/MistoxWebsite.Server.csproj new file mode 100644 index 0000000..2466e20 --- /dev/null +++ b/src/MistoxWebsite.Server/MistoxWebsite.Server.csproj @@ -0,0 +1,40 @@ + + + + net9.0 + enable + enable + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/MistoxWebsite.Server/Program.cs b/src/MistoxWebsite.Server/Program.cs new file mode 100644 index 0000000..39e2edc --- /dev/null +++ b/src/MistoxWebsite.Server/Program.cs @@ -0,0 +1,75 @@ +using Microsoft.AspNetCore.Authentication.Cookies; +using MistoxWebsite.Server.Controllers; +using MistoxWebsite.Server.Services; +using MistoxWebsite.Server.Services.DatabaseService; +using Stripe; + +var builder = WebApplication.CreateBuilder(args); + +// Disable null warnings becuse string.IsNullOrEmpty checks for NULL or Empty +#pragma warning disable CS8600 +#pragma warning disable CS8604 + +// Database Service +string? _dbserver = Environment.GetEnvironmentVariable("MySQLServer"); +string dbserver = !string.IsNullOrEmpty(_dbserver) ? _dbserver : "localhost"; +string? _dbuser = Environment.GetEnvironmentVariable("MySQLUser"); +string dbUser = !string.IsNullOrEmpty(_dbuser) ? _dbuser : "root"; +string? _dbdatabase = Environment.GetEnvironmentVariable("MySQLDatabase"); +string dbdatabase = !string.IsNullOrEmpty(_dbdatabase) ? _dbdatabase : "mistox"; +string? _dbpass = Environment.GetEnvironmentVariable("MySQLPass"); +string dbPass = !string.IsNullOrEmpty(_dbpass) ? _dbpass : "oasv34$8gpv023dd"; +string connStr = "server=" + dbserver + ";user=" + dbUser + ";database=" + dbdatabase + ";password=" + dbPass + ";port=3306;"; +DatabaseService databaseService = new DatabaseService( connectionString: connStr ); +await ProductController.HotReload( databaseService ); +builder.Services.Add( new ServiceDescriptor( typeof( DatabaseService ), databaseService ) ); + +// Email Service +string? _eServer = Environment.GetEnvironmentVariable("EmailServer"); +string EmailServer = !string.IsNullOrEmpty(_eServer) ? _eServer : "gmail.com"; +string? _ePort = Environment.GetEnvironmentVariable("EmailPort"); +int EmailPort = !string.IsNullOrEmpty(_ePort) ? Convert.ToInt32(_ePort) : 587; +string? _eAddress = Environment.GetEnvironmentVariable("EmailAddress"); +string EmailAddress = !string.IsNullOrEmpty(_eAddress) ? _eAddress : "no-reply@mistox.com"; +string? _ePassword = Environment.GetEnvironmentVariable("EmailPassword"); +string EmailPassword = !string.IsNullOrEmpty(_ePassword) ? _ePassword : ""; +EmailService Emailservice = new EmailService( EmailServer, EmailPort, EmailAddress, EmailPassword ); +builder.Services.Add( new ServiceDescriptor( typeof( EmailService ), Emailservice )); + +// Payment Service +string? StripeKey = Environment.GetEnvironmentVariable("StripeKey"); +StripeConfiguration.ApiKey = StripeKey; + +// Authentication Service +builder.Services.AddAuthentication( options => { + options.DefaultScheme = CookieAuthenticationDefaults.AuthenticationScheme; +} ).AddCookie(); + +builder.Services.AddCors( o => o.AddDefaultPolicy( builder => { + builder.AllowAnyOrigin().AllowAnyMethod().AllowAnyHeader(); +} ) ); + +// Pages Service +builder.Services.AddControllers(); +builder.Services.AddRazorPages(); + +var app = builder.Build(); + +// Configure the HTTP request pipeline. +if( app.Environment.IsDevelopment() ) { + app.UseWebAssemblyDebugging(); +} else { + app.UseHsts(); +} + +app.UseBlazorFrameworkFiles(); +app.UseStaticFiles(); + +app.UseCors(); + +app.UseAuthentication(); +app.MapControllers(); + +app.MapFallbackToFile("index.html"); + +app.Run(); diff --git a/src/MistoxWebsite.Server/Properties/launchSettings.json b/src/MistoxWebsite.Server/Properties/launchSettings.json new file mode 100644 index 0000000..258652b --- /dev/null +++ b/src/MistoxWebsite.Server/Properties/launchSettings.json @@ -0,0 +1,19 @@ +{ + "profiles": { + "IIS Express": { + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + }, + "applicationUrl": "http://localhost:6003", + "sslPort": 6003 + }, + "ProjectName": { + "commandName": "Project", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + }, + "applicationUrl": "http://localhost:6003", + "sslPort": 6003 + } + } +} \ No newline at end of file diff --git a/src/MistoxWebsite.Server/Services/DatabaseService/Account.cs b/src/MistoxWebsite.Server/Services/DatabaseService/Account.cs new file mode 100644 index 0000000..9d0854e --- /dev/null +++ b/src/MistoxWebsite.Server/Services/DatabaseService/Account.cs @@ -0,0 +1,194 @@ +using MistoxWebsite.Shared; +using MySql.Data.MySqlClient; +using System.Data; +using System.Data.Common; + +namespace MistoxWebsite.Server.Services.DatabaseService { + public partial class DatabaseService { + + public async Task GetAccount( string UserNameOrEmail ) { + Account? account = null; + using( MySqlConnection connection = GetConnection() ) { + connection.Open(); + string command = @" + SELECT * + FROM Account + Left Join WebsiteData + On Account.ID = WebsiteData.AccountID + WHERE UserName = @UorE OR Email = @UorE; + "; + + MySqlCommand cmd = new MySqlCommand(command, connection); + cmd.Parameters.AddWithValue("@UorE", UserNameOrEmail); + + using( DbDataReader reader = await cmd.ExecuteReaderAsync() ) { + while( await reader.ReadAsync() ) { + if( reader == null ) { + break; + } + + int _id = reader.GetInt32("ID"); + string _username = reader.GetString("UserName"); + string _email = reader.GetString("Email"); + bool _emailVerified = reader.GetBoolean("EmailVerified"); + string _passwordhash = reader.GetString("PasswordHash"); + + bool _failedpasswordlock = reader.GetBoolean( "FailedPasswordLock" ); + int _passwordattempts = reader.GetInt32( "PasswordAttempts" ); + int _curpasswordattempts = reader.GetInt32( "CurrentPasswordAttempts" ); + string _role = reader.GetString( "Role" ); + string _emailtoken = reader.GetString( "EmailToken" ); + + account = new Account() { + ID = _id, + UserName = _username, + Email = _email, + EmailVerified = _emailVerified, + PasswordHash = _passwordhash, + SiteData = new WebSiteData() { + AccountID = _id, + CurrentPasswordAttempts = _curpasswordattempts, + PasswordAttempts = _passwordattempts, + EmailToken = _emailtoken, + FailedPasswordLock = _failedpasswordlock, + Role = _role, + } + }; + } + } + } + return account; + } + + public async Task GetAccountByID( int ID ) { + Account? account = null; + using( MySqlConnection connection = GetConnection() ) { + connection.Open(); + string command = @" + SELECT * + FROM Account + Left Join WebsiteData + On Account.ID = WebsiteData.AccountID + WHERE ID = @ID; + "; + + MySqlCommand cmd = new MySqlCommand(command, connection); + cmd.Parameters.AddWithValue("@ID", ID); + + using( DbDataReader reader = await cmd.ExecuteReaderAsync() ) { + while( await reader.ReadAsync() ) { + if( reader == null ) { + break; + } + int _id = reader.GetInt32("ID"); + string _username = reader.GetString("UserName"); + string _email = reader.GetString("Email"); + bool _emailVerified = reader.GetBoolean("EmailVerified"); + string _passwordhash = reader.GetString("PasswordHash"); + + bool _failedpasswordlock = reader.GetBoolean( "FailedPasswordLock" ); + int _passwordattempts = reader.GetInt32( "PasswordAttempts" ); + int _curpasswordattempts = reader.GetInt32( "CurrentPasswordAttempts" ); + string _role = reader.GetString( "Role" ); + string _emailtoken = reader.GetString( "EmailToken" ); + + account = new Account() { + ID = _id, + UserName = _username, + Email = _email, + EmailVerified = _emailVerified, + PasswordHash = _passwordhash, + SiteData = new WebSiteData() { + AccountID = _id, + CurrentPasswordAttempts = _passwordattempts, + PasswordAttempts = _passwordattempts, + EmailToken = _emailtoken, + FailedPasswordLock = _failedpasswordlock, + Role = _role, + } + }; + } + } + } + return account; + } + + public async Task SetAccount( Account Update ) { + using( MySqlConnection connection = GetConnection() ) { + connection.Open(); + string command = @" + UPDATE Account SET + UserName = @UserName, + Email = @Email, + EmailVerified = @EmailVerified, + PasswordHash = @PasswordHash + WHERE ID = @ID; + "; + + MySqlCommand cmd = new MySqlCommand(command, connection); + cmd.Parameters.AddWithValue("@UserName", Update.UserName); + cmd.Parameters.AddWithValue("@Email", Update.Email); + cmd.Parameters.AddWithValue("@EmailVerified", Update.EmailVerified); + cmd.Parameters.AddWithValue("@PasswordHash", Update.PasswordHash); + cmd.Parameters.AddWithValue("@ID", Update.ID); + + await cmd.ExecuteNonQueryAsync(); + await UpdateWebsiteData( Update, Update.SiteData ); + } + } + + public async Task NewAccount( Account Profile ) { + using( MySqlConnection connection = GetConnection() ) { + connection.Open(); + + int EmailVer = Profile.EmailVerified ? 1 : 0; + string command = @" + INSERT INTO Account + (UserName,Email,EmailVerified,PasswordHash) + VALUES + (@UserName,@Email,@EmailVerified,@PasswordHash); + + SELECT ID FROM Account + WHERE UserName = @UserName; + "; + + MySqlCommand cmd = new MySqlCommand( command , connection); + cmd.Parameters.AddWithValue("@UserName", Profile.UserName); + cmd.Parameters.AddWithValue("@Email", Profile.Email); + cmd.Parameters.AddWithValue("@EmailVerified", Profile.EmailVerified); + cmd.Parameters.AddWithValue("@PasswordHash", Profile.PasswordHash); + + using( DbDataReader reader = await cmd.ExecuteReaderAsync() ) { + while( await reader.ReadAsync() ) { + if( reader == null ) { + break; + } + int _id = reader.GetInt32("ID"); + Profile.ID = _id; + } + } + await NewWebsiteData( Profile, Profile.SiteData ); + } + } + + public async Task DeleteAccount( Account Profile ) { + using( MySqlConnection connection = GetConnection() ) { + MySqlCommand cmd; + connection.Open(); + + string command = @" + DELETE FROM Account WHERE ID = @ID; + DELETE FROM AccountInventory WHERE AccountID = @ID; + DELETE FROM ProjectMistData WHERE AccountID = @ID; + DELETE FROM Cart WHERE AccountID = @ID; + DELETE FROM WebsiteData WHERE AccountID = @ID; + "; + cmd = new MySqlCommand( command, connection ); + cmd.Parameters.AddWithValue("@ID", Profile.ID); + + await cmd.ExecuteNonQueryAsync(); + } + } + + } +} diff --git a/src/MistoxWebsite.Server/Services/DatabaseService/AccountInventory.cs b/src/MistoxWebsite.Server/Services/DatabaseService/AccountInventory.cs new file mode 100644 index 0000000..43c57af --- /dev/null +++ b/src/MistoxWebsite.Server/Services/DatabaseService/AccountInventory.cs @@ -0,0 +1,116 @@ +using MistoxWebsite.Shared; +using MySql.Data.MySqlClient; +using System.Data; +using System.Data.Common; + +// Account inventory needs to know whether there is already an object with the specified PK before making a new item +// If item exists already update the one that already exists + +namespace MistoxWebsite.Server.Services.DatabaseService { + public partial class DatabaseService { + + public async Task> GetInventory( Account account, Product product ) { + List list = new List(); + using( MySqlConnection connection = GetConnection() ) { + connection.Open(); + string command = @" + SELECT * FROM AccountInventory + WHERE AccountID = @AccountID AND ProductID = @ProductID; + "; + + MySqlCommand cmd = new MySqlCommand(command, connection); + cmd.Parameters.AddWithValue("@AccountID", account.ID); + cmd.Parameters.AddWithValue("@ProductID", product.ID); + + using( DbDataReader reader = await cmd.ExecuteReaderAsync() ) { + while( await reader.ReadAsync() ) { + if( reader == null ) { + break; + } + + string _item = reader.GetString("Item"); + int _quantity = reader.GetInt32("Quantity"); + string _stats = reader.GetString("Stats"); + + list.Add( new UserInventory() { + Item = _item, + Quantity = _quantity, + Stats = _stats + } ); + } + } + } + return list; + } + + async Task UpdateInventory( MySqlConnection connection, AccountInventory item ) { + string command = @" + UPDATE AccountInventory + SET AccountID = @AccountID, + ProductID = @ProductID, + Item = @Item, + Quantity = @Quantity, + Stats = @Stats + WHERE (AccountID = @AccountID AND ProductID = @ProductID AND Item = @Item); + "; + + MySqlCommand cmd = new MySqlCommand(command, connection); + cmd.Parameters.AddWithValue("@AccountID", item.AccountID); + cmd.Parameters.AddWithValue("@ProductID", item.ProductID); + cmd.Parameters.AddWithValue("@Item", item.Item); + cmd.Parameters.AddWithValue("@Quantity", item.Quantity); + cmd.Parameters.AddWithValue("@Stats", item.Stats); + + await cmd.ExecuteNonQueryAsync(); + } + + async Task NewInventory( MySqlConnection connection, AccountInventory item ) { + string command = @" + INSERT INTO AccountInventory (AccountID, ProductID, Item, Quantity, Stats) + VALUES + (@AccountID, @ProductID, @Item, @Quantity, @Stats); + "; + + MySqlCommand cmd = new MySqlCommand( command , connection); + cmd.Parameters.AddWithValue("@AccountID", item.AccountID); + cmd.Parameters.AddWithValue("@ProductID", item.ProductID); + cmd.Parameters.AddWithValue("@Item", item.Item); + cmd.Parameters.AddWithValue("@Quantity", item.Quantity); + cmd.Parameters.AddWithValue("@Stats", item.Stats); + + await cmd.ExecuteNonQueryAsync(); + } + + // Test to see if reader read does what its supposed to + // Not fully implimented + public async Task SetInventory( Account account, Product game, List Item ) { + using( MySqlConnection connection = GetConnection() ) { + connection.Open(); + foreach( UserInventory item in Item ) { + bool exists = false; + MySqlCommand cmd = new MySqlCommand("SELECT * FROM AccountInventory WHERE AccountID = '" + account.ID + "' AND ProductID = '" + game.ID + "' AND Item = '" + item.Item.ToLower() + "'", connection); + using( DbDataReader reader = await cmd.ExecuteReaderAsync() ) { + exists = reader.HasRows; + } + if( exists ) { + await UpdateInventory( connection, new AccountInventory() { + AccountID = account.ID, + ProductID = game.ID, + Item = item.Item, + Quantity = item.Quantity, + Stats = item.Stats + } ); + } else { + await NewInventory( connection, new AccountInventory() { + AccountID = account.ID, + ProductID = game.ID, + Item = item.Item, + Quantity = item.Quantity, + Stats = item.Stats + } ); + } + } + } + } + } +} \ No newline at end of file diff --git a/src/MistoxWebsite.Server/Services/DatabaseService/Cart.cs b/src/MistoxWebsite.Server/Services/DatabaseService/Cart.cs new file mode 100644 index 0000000..e932436 --- /dev/null +++ b/src/MistoxWebsite.Server/Services/DatabaseService/Cart.cs @@ -0,0 +1,82 @@ +using MistoxWebsite.Shared; +using MySql.Data.MySqlClient; +using System.Data; +using System.Data.Common; + +namespace MistoxWebsite.Server.Services.DatabaseService { + public partial class DatabaseService { + + public async Task> GetCart( Account account ) { + List list = new List(); + using( MySqlConnection connection = GetConnection() ) { + connection.Open(); + string command = @" + SELECT * FROM Cart + WHERE AccountID = @AccountID; + "; + + MySqlCommand cmd = new MySqlCommand(command, connection); + cmd.Parameters.AddWithValue("@AccountID", account.ID); + + using( DbDataReader reader = await cmd.ExecuteReaderAsync() ) { + while( await reader.ReadAsync() ) { + if( reader == null ) { + break; + } + int _id = reader.GetInt32("ID"); + int _accountid = reader.GetInt32("AccountID"); + int _productid = reader.GetInt32("ProductID"); + list.Add( new Cart() { + ID = _id, + AccountID = _accountid, + ProductID = _productid + } ); + } + } + } + return list; + } + + public async Task AddToCart( Cart item ) { + using( MySqlConnection connection = GetConnection() ) { + connection.Open(); + string command = @" + INSERT INTO Cart + (AccountID, ProductID) + VALUES + (@AccountID, @ProductID); + "; + + MySqlCommand cmd = new MySqlCommand( command , connection); + cmd.Parameters.AddWithValue("@AccountID", item.AccountID); + cmd.Parameters.AddWithValue("@ProductID", item.ProductID); + + await cmd.ExecuteNonQueryAsync(); + } + } + + public async Task RemoveFromCart( Cart item ) { + using( MySqlConnection connection = GetConnection() ) { + connection.Open(); + string command = "DELETE FROM Cart WHERE AccountID=" + item.AccountID + " AND ProductID=" + item.ProductID + ";"; + MySqlCommand cmd = new MySqlCommand( command , connection); + await cmd.ExecuteNonQueryAsync(); + } + } + + public async Task ClearCart( Account account ) { + using( MySqlConnection connection = GetConnection() ) { + connection.Open(); + string command = @" + DELETE FROM Cart + WHERE AccountID = @AccountID; + "; + + MySqlCommand cmd = new MySqlCommand( command , connection); + cmd.Parameters.AddWithValue("@AccountID", account.ID); + + await cmd.ExecuteNonQueryAsync(); + } + } + } +} \ No newline at end of file diff --git a/src/MistoxWebsite.Server/Services/DatabaseService/DatabaseService.cs b/src/MistoxWebsite.Server/Services/DatabaseService/DatabaseService.cs new file mode 100644 index 0000000..4168370 --- /dev/null +++ b/src/MistoxWebsite.Server/Services/DatabaseService/DatabaseService.cs @@ -0,0 +1,15 @@ +using MySql.Data.MySqlClient; + +namespace MistoxWebsite.Server.Services.DatabaseService { + public partial class DatabaseService { + public string ConnectionString { + get; set; + } + public DatabaseService( string connectionString ) { + ConnectionString = connectionString; + } + MySqlConnection GetConnection() { + return new MySqlConnection( ConnectionString ); + } + } +} \ No newline at end of file diff --git a/src/MistoxWebsite.Server/Services/DatabaseService/PageLoad.cs b/src/MistoxWebsite.Server/Services/DatabaseService/PageLoad.cs new file mode 100644 index 0000000..d7c1d06 --- /dev/null +++ b/src/MistoxWebsite.Server/Services/DatabaseService/PageLoad.cs @@ -0,0 +1,122 @@ +using MistoxWebsite.Shared; +using MySql.Data.MySqlClient; +using System.Data; +using System.Data.Common; + +namespace MistoxWebsite.Server.Services.DatabaseService { + public partial class DatabaseService { + + public async Task getPageLoadObject( int AccountID ) { + PageLoadObject account = new PageLoadObject(); + using( MySqlConnection connection = GetConnection() ) { + connection.Open(); + string command = @" + SELECT * FROM Account + INNER JOIN WebsiteData + ON Account.ID = WebsiteData.AccountID + WHERE ID = @AccountID + "; + + MySqlCommand cmd = new MySqlCommand(command, connection); + cmd.Parameters.AddWithValue("@AccountID", AccountID); + + using( DbDataReader reader = await cmd.ExecuteReaderAsync() ) { + while( await reader.ReadAsync() ) { + if( reader == null ) { + break; + } + int _id = reader.GetInt32(0); + string _username = reader.GetString(1); + string _email = reader.GetString(2); + bool _emailVerified = reader.GetBoolean(3); + string _passwordhash = reader.GetString(4); + bool _failedPasswordLock = reader.GetBoolean(6); + int _passwordAttempts = reader.GetInt32(7); + int _currentPasswordAttempts = reader.GetInt32(8); + string _role = reader.GetString(9); + string _emailToken = reader.GetString(10); + + account.claims = new AccountClaims() { + Email = _email, + EmailVerified = _emailVerified.ToString(), + FailedPasswordLock = _failedPasswordLock.ToString(), + Role = _role, + UserName = _username, + }; + + account.user = new Account() { + ID = _id, + UserName = _username, + Email = _email, + EmailVerified = _emailVerified, + PasswordHash = _passwordhash, + SiteData = new WebSiteData() { + AccountID = _id, + CurrentPasswordAttempts = _currentPasswordAttempts, + PasswordAttempts = _passwordAttempts, + EmailToken = _emailToken, + FailedPasswordLock = _failedPasswordLock, + Role = _role, + } + + }; + } + } + + account.products = new List(); + account.receipts = new List(); + + command = @" + SELECT * FROM Product + LEFT JOIN Receipt + ON ID = Receipt.ProductID + WHERE AccountID is Null or AccountID = @AccountID; + "; + + MySqlCommand cmd2 = new MySqlCommand(command, connection); + cmd2.Parameters.AddWithValue("@AccountID", AccountID); + + using( DbDataReader reader = await cmd2.ExecuteReaderAsync() ) { + while( await reader.ReadAsync() ) { + if( reader == null ) { + break; + } + + int _productID = !await reader.IsDBNullAsync(0) ? reader.GetInt32(0) : -1; + string _gameName = !await reader.IsDBNullAsync(1) ? reader.GetString(1) : ""; + string _gameDesc = !await reader.IsDBNullAsync(2) ? reader.GetString(2) : ""; + string _gameImg = !await reader.IsDBNullAsync(3) ? reader.GetString(3) : ""; + int _gameCost = !await reader.IsDBNullAsync(4) ? reader.GetInt32(4) : 37707; + string _gameURL = !await reader.IsDBNullAsync(5) ? reader.IsDBNull(5) ? "" : reader.GetString(5) : "Something not common"; + int _receiptAccountID = !await reader.IsDBNullAsync(6) ? reader.IsDBNull(6) ? -1 : reader.GetInt32(6) : -1; + string _receiptID = !await reader.IsDBNullAsync(8) ? reader.IsDBNull(8) ? "" : reader.GetString(8) : ""; + DateTime _receiptTime = !await reader.IsDBNullAsync(10) ? reader.GetDateTime(10) : DateTime.Now; + + string[] _imageList = _gameImg.Split('|', StringSplitOptions.RemoveEmptyEntries); + + account.products.Add( new Product { + ID = _productID, + Cost = _gameCost, + Description = _gameDesc, + Name = _gameName, + URL = _gameURL, + Images = _imageList.ToList() + } ); + + if( _receiptAccountID != -1 ) { + account.receipts.Add( new Receipt { + AccountID = _receiptAccountID, + ProductID = _productID, + ReceiptID = _receiptID, + Time = _receiptTime + } ); + } + + } + } + } + return account; + } + + } +} diff --git a/src/MistoxWebsite.Server/Services/DatabaseService/Product.cs b/src/MistoxWebsite.Server/Services/DatabaseService/Product.cs new file mode 100644 index 0000000..ce5d357 --- /dev/null +++ b/src/MistoxWebsite.Server/Services/DatabaseService/Product.cs @@ -0,0 +1,140 @@ +using MistoxWebsite.Shared; +using MySql.Data.MySqlClient; +using System.Data; +using System.Data.Common; + +namespace MistoxWebsite.Server.Services.DatabaseService { + public partial class DatabaseService { + + public async Task GetProduct( int ID ) { + Product? items = null; + using( MySqlConnection connection = GetConnection() ) { + connection.Open(); + string command = @" + SELECT * FROM Product + WHERE ID = @ID; + "; + + MySqlCommand cmd = new MySqlCommand(command, connection); + cmd.Parameters.AddWithValue("@ID", ID); + + using( DbDataReader reader = await cmd.ExecuteReaderAsync() ) { + while( await reader.ReadAsync() ) { + if( reader == null ) { + break; + } + int _id = reader.GetInt32("ID"); + string _name = reader.GetString("Name"); + string _description = reader.GetString("Description"); + string _images = reader.GetString("Images"); + int _cost = reader.GetInt32("Cost"); + string _url = reader.GetString("URL"); + + string[] _imageList = _images.Split('|', StringSplitOptions.RemoveEmptyEntries); + + items = new Product() { + ID = _id, + Name = _name, + Description = _description, + Cost = _cost, + Images = _imageList.ToList(), + URL = _url + }; + } + } + } + return items; + } + + public async Task> GetAllProducts() { + List items = new List(); + using( MySqlConnection connection = GetConnection() ) { + connection.Open(); + MySqlCommand cmd = new MySqlCommand("SELECT * FROM Product", connection); + using( DbDataReader reader = await cmd.ExecuteReaderAsync() ) { + while( await reader.ReadAsync() ) { + if( reader == null ) { + break; + } + int _id = reader.GetInt32("ID"); + string _name = reader.GetString("Name"); + string _description = reader.GetString("Description"); + string _images = reader.GetString("Images"); + int _cost = reader.GetInt32("Cost"); + string _url = reader.GetString("URL"); + + string[] _imageList = _images.Split('|', StringSplitOptions.RemoveEmptyEntries); + + items.Add( new Product() { + ID = _id, + Name = _name, + Description = _description, + Cost = _cost, + Images = _imageList.ToList(), + URL = _url + } ); + } + } + } + return items; + } + + public async Task NewProduct( Product Item ) { + using( MySqlConnection connection = GetConnection() ) { + connection.Open(); + + string buildingImages = ""; + foreach( string cur in Item.Images ) { + buildingImages = buildingImages + "|" + cur; + } + + string command = @" + INSERT INTO Product + (Name, Description, Images, Cost, URL) + VALUES + (@Name, @Description, @Images, @Cost, @URL); + "; + + MySqlCommand cmd = new MySqlCommand( command , connection); + cmd.Parameters.AddWithValue("@Name", Item.Name); + cmd.Parameters.AddWithValue("@Description", Item.Description); + cmd.Parameters.AddWithValue("@Images", buildingImages); + cmd.Parameters.AddWithValue("@Cost", Item.Cost); + cmd.Parameters.AddWithValue("@URL", Item.URL); + + await cmd.ExecuteNonQueryAsync(); + } + } + + public async Task UpdateProduct( Product Item ) { + using( MySqlConnection connection = GetConnection() ) { + connection.Open(); + + string buildingImages = ""; + foreach( string cur in Item.Images ) { + buildingImages = buildingImages + "|" + cur; + } + + string command = @"UPDATE Product SET + Name = @Name, + Description = @Description, + Images = @Images, + Cost = @Cost, + URL = @URL + WHERE ID = @ID; + "; + + MySqlCommand cmd = new MySqlCommand(command, connection); + cmd.Parameters.AddWithValue("@Name", Item.Name); + cmd.Parameters.AddWithValue("@Description", Item.Description); + cmd.Parameters.AddWithValue("@Images", Item.Images); + cmd.Parameters.AddWithValue("@Cost", Item.Cost); + cmd.Parameters.AddWithValue("@URL", Item.URL); + cmd.Parameters.AddWithValue("@ID", Item.ID); + + await cmd.ExecuteNonQueryAsync(); + } + } + + } +} diff --git a/src/MistoxWebsite.Server/Services/DatabaseService/ProjectMistData.cs b/src/MistoxWebsite.Server/Services/DatabaseService/ProjectMistData.cs new file mode 100644 index 0000000..c33ec0a --- /dev/null +++ b/src/MistoxWebsite.Server/Services/DatabaseService/ProjectMistData.cs @@ -0,0 +1,71 @@ +using MistoxWebsite.Shared; +using MySql.Data.MySqlClient; +using System.Data; +using System.Data.Common; + +namespace MistoxWebsite.Server.Services.DatabaseService { + public partial class DatabaseService { + + public async Task GetProjectMistData( int ID ) { + ProjectMistData? items = null; + using( MySqlConnection connection = GetConnection() ) { + connection.Open(); + string command = @" + SELECT * FROM ProjectMistData + WHERE AccountID = @AccountID; + "; + + MySqlCommand cmd = new MySqlCommand(command, connection); + cmd.Parameters.AddWithValue("@AccountID", ID); + + using( DbDataReader reader = await cmd.ExecuteReaderAsync() ) { + while( await reader.ReadAsync() ) { + if( reader == null ) { + break; + } + int _id = reader.GetInt32("AccountID"); + + items = new ProjectMistData() { + AccountID = _id, + }; + } + } + } + return items; + } + + public async Task NewProjectMistData( ProjectMistData data ) { + using( MySqlConnection connection = GetConnection() ) { + connection.Open(); + string command = @" + INSERT INTO ProjectMistData + (AccountID) + VALUES + (@AccountID); + "; + + MySqlCommand cmd = new MySqlCommand( command , connection); + cmd.Parameters.AddWithValue("@AccountID", data.AccountID); + + await cmd.ExecuteNonQueryAsync(); + } + } + + public async Task UpdateProjectMistData( ProjectMistData data ) { + using( MySqlConnection connection = GetConnection() ) { + connection.Open(); + string command = @" + UPDATE ProjectMistData SET + AccountID = @AccountID + WHERE AccountID = @AccountID; + "; + + MySqlCommand cmd = new MySqlCommand(command, connection); + cmd.Parameters.AddWithValue("@AccountID", data.AccountID); + + await cmd.ExecuteReaderAsync(); + } + } + + } +} diff --git a/src/MistoxWebsite.Server/Services/DatabaseService/Receipt.cs b/src/MistoxWebsite.Server/Services/DatabaseService/Receipt.cs new file mode 100644 index 0000000..af4186f --- /dev/null +++ b/src/MistoxWebsite.Server/Services/DatabaseService/Receipt.cs @@ -0,0 +1,170 @@ +using MistoxWebsite.Shared; +using MySql.Data.MySqlClient; +using System.Data; +using System.Data.Common; + +namespace MistoxWebsite.Server.Services.DatabaseService { + public partial class DatabaseService { + + public async Task> GetAllReceipts( Account account ) { + List receipts = new List (); + using( MySqlConnection connection = GetConnection() ) { + connection.Open(); + string command = @" + SELECT * FROM Receipt + WHERE AccountID = @AccountID; + "; + + MySqlCommand cmd = new MySqlCommand(command, connection); + cmd.Parameters.AddWithValue("@AccountID", account.ID); + + using( DbDataReader reader = await cmd.ExecuteReaderAsync() ) { + while( await reader.ReadAsync() ) { + if( reader == null ) { + break; + } + int _accountid = reader.GetInt32("AccountID"); + int _gameid = reader.GetInt32("ProductID"); + string _receiptid = reader.GetString("ReceiptID"); + int _lineitem = reader.GetInt32("LineItem"); + DateTime _receiptdate = reader.GetDateTime("Time"); + int _taxamount = reader.GetInt32("TaxAmount"); + int _totalcost = reader.GetInt32("TotalCost"); + + receipts.Add( new Receipt() { + AccountID = _accountid, + ProductID = _gameid, + ReceiptID = _receiptid, + Time = _receiptdate, + TotalCost = _totalcost, + TaxAmount = _taxamount, + LineItem = _lineitem + } ); + } + } + } + return receipts; + } + + public async Task> GetAllReceiptsJoinedToProduct( Account account ) { + List join = new List (); + using( MySqlConnection connection = GetConnection() ) { + connection.Open(); + string command = @" + SELECT * FROM Receipt + LEFT JOIN Product + ON Receipt.ProductID = Product.ID + WHERE AccountID = @AccountID + "; + + MySqlCommand cmd = new MySqlCommand(command, connection); + cmd.Parameters.AddWithValue("@AccountID", account.ID); + + using( DbDataReader reader = await cmd.ExecuteReaderAsync() ) { + while( await reader.ReadAsync() ) { + if( reader == null ) { + break; + } + int _accountid = !reader.IsDBNull( "AccountID" ) ? reader.GetInt32("AccountID") : -1; + int _gameid = !reader.IsDBNull( "ProductID" ) ? reader.GetInt32("ProductID") : 0; + string _receiptid = !reader.IsDBNull( "ReceiptID" ) ? reader.GetString("ReceiptID") : ""; + int _lineitem = !reader.IsDBNull( "LineItem" ) ? reader.GetInt32("LineItem") : 0; + DateTime _receiptdate = !reader.IsDBNull( "Time" ) ? reader.GetDateTime("Time") : DateTime.Now; + int _taxamount = !reader.IsDBNull( "TaxAmount" ) ? reader.GetInt32("TaxAmount") : 0; + int _totalcost = !reader.IsDBNull( "TotalCost" ) ? reader.GetInt32("TotalCost") : 0; + int _id = !reader.IsDBNull( "ID" ) ? reader.GetInt32("ID") : 0; + string _name = !reader.IsDBNull( "Name" ) ? reader.GetString("Name") : ""; + string _desc = !reader.IsDBNull( "Description" ) ? reader.GetString("Description") : ""; + int _cost = !reader.IsDBNull( "Cost" ) ? reader.GetInt32("Cost") : 0; + string _url = !reader.IsDBNull( "URL" ) ? reader.GetString("URL") : "Something Random That Wont Ever Be In A URL"; + + join.Add( new ReceiptProduct() { + receipt = new Receipt { + AccountID = _accountid, + ProductID = _gameid, + ReceiptID = _receiptid, + Time = _receiptdate, + TotalCost = _totalcost, + TaxAmount = _taxamount, + LineItem = _lineitem + }, + product = new Product() { + ID = _id, + Cost = _cost, + Description = _desc, + Name = _name, + URL = _url + } + } ); + } + } + } + return join; + } + + public async Task GetReceipt( Account account, Product game ) { + Receipt? receipt = null; + using( MySqlConnection connection = GetConnection() ) { + connection.Open(); + string command = @" + SELECT * FROMReceipt + WHERE AccountID = @AccountID AND ProductID = @ProductID; + "; + + MySqlCommand cmd = new MySqlCommand(command, connection); + cmd.Parameters.AddWithValue("@AccountID", account.ID); + cmd.Parameters.AddWithValue("@ProductID", game.ID); + + using( DbDataReader reader = await cmd.ExecuteReaderAsync() ) { + while( await reader.ReadAsync() ) { + if( reader == null ) { + break; + } + int _accountid = reader.GetInt32("AccountID"); + int _gameid = reader.GetInt32("ProductID"); + string _receiptid = reader.GetString("ReceiptID"); + int _lineitem = reader.GetInt32("LineItem"); + DateTime _receiptdate = reader.GetDateTime("Time"); + int _taxamount = reader.GetInt32("TaxAmount"); + int _totalcost = reader.GetInt32("TotalCost"); + + receipt = new Receipt() { + AccountID = _accountid, + ProductID = _gameid, + ReceiptID = _receiptid, + Time = _receiptdate, + TotalCost = _totalcost, + TaxAmount = _taxamount, + LineItem = _lineitem + }; + } + } + } + return receipt; + } + + public async Task NewReceipt( Receipt receipt ) { + using( MySqlConnection connection = GetConnection() ) { + connection.Open(); + string command = @" + INSERT INTO Receipt + (AccountID, ProductID, ReceiptID, LineItem, TaxAmount, TotalCost, Time) + VALUES + (@AccountID, @ProductID, @ReceiptID, @LineItem, @TaxAmount, @TotalCost, @Time) + "; + + MySqlCommand cmd = new MySqlCommand( command , connection); + cmd.Parameters.AddWithValue("@AccountID", receipt.AccountID); + cmd.Parameters.AddWithValue("@ProductID", receipt.ProductID); + cmd.Parameters.AddWithValue("@ReceiptID", receipt.ReceiptID); + cmd.Parameters.AddWithValue("@LineItem", receipt.LineItem); + cmd.Parameters.AddWithValue("@TaxAmount", receipt.TaxAmount); + cmd.Parameters.AddWithValue("@TotalCost", receipt.TotalCost); + cmd.Parameters.AddWithValue("@Time", receipt.Time); // Just incase i need this in the future | receipt.Time.ToString( "yyyy-MM-dd hh:mm:ss" ) + + await cmd.ExecuteNonQueryAsync(); + } + } + + } +} diff --git a/src/MistoxWebsite.Server/Services/DatabaseService/WebsiteData.cs b/src/MistoxWebsite.Server/Services/DatabaseService/WebsiteData.cs new file mode 100644 index 0000000..5911559 --- /dev/null +++ b/src/MistoxWebsite.Server/Services/DatabaseService/WebsiteData.cs @@ -0,0 +1,115 @@ +using MistoxWebsite.Shared; +using MySql.Data.MySqlClient; +using System.Data; +using System.Data.Common; + +namespace MistoxWebsite.Server.Services.DatabaseService { + public partial class DatabaseService { + + public async Task GetWebsiteData( Account account ) { + WebSiteData? webSiteData = null; + using( MySqlConnection connection = GetConnection() ) { + connection.Open(); + string command = @" + SELECT * FROM WebsiteData + WHERE AccountID = @AccountID; + "; + + MySqlCommand cmd = new MySqlCommand(command, connection); + cmd.Parameters.AddWithValue("@AccountID", account.ID); + + using( DbDataReader reader = await cmd.ExecuteReaderAsync() ) { + while( await reader.ReadAsync() ) { + if( reader == null ) { + break; + } + + int _id = 0; + bool _failedpasswordlock = false; + int _passwordattempts = 5; + int _curpasswordattempts = 0; + string _role = ""; + string _emailtoken = ""; + + if( !reader.IsDBNull( "AccountID" ) ) { + _id = reader.GetInt32( "AccountID" ); + } + if( !reader.IsDBNull( "FailedPasswordLock" ) ) { + _failedpasswordlock = reader.GetBoolean( "FailedPasswordLock" ); + } + if( !reader.IsDBNull( "PasswordAttempts" ) ) { + _passwordattempts = reader.GetInt32( "PasswordAttempts" ); + } + if( !reader.IsDBNull( "CurrentPasswordAttempts" ) ) { + _curpasswordattempts = reader.GetInt32( "CurrentPasswordAttempts" ); + } + if( !reader.IsDBNull( "Role" ) ) { + _role = reader.GetString( "Role" ); + } + if( !reader.IsDBNull( "EmailToken" ) ) { + _emailtoken = reader.GetString( "EmailToken" ); + } + + webSiteData = new WebSiteData() { + AccountID = _id, + FailedPasswordLock = _failedpasswordlock, + CurrentPasswordAttempts = _curpasswordattempts, + PasswordAttempts = _passwordattempts, + EmailToken = _emailtoken, + Role = _role, + }; + } + } + } + return webSiteData; + } + + public async Task NewWebsiteData( Account account, WebSiteData data ) { + using( MySqlConnection connection = GetConnection() ) { + connection.Open(); + string command = @" + INSERT INTO WebsiteData + (AccountID, FailedPasswordLock, PasswordAttempts, CurrentPasswordAttempts, Role, EmailToken) + VALUES + (@AccountID, @FailedPasswordLock, @PasswordAttempts, @CurrentPasswordAttempts, @Role, @EmailToken); + "; + + MySqlCommand cmd = new MySqlCommand( command , connection); + cmd.Parameters.AddWithValue("@AccountID", account.ID); + cmd.Parameters.AddWithValue("@FailedPasswordLock", data.FailedPasswordLock); + cmd.Parameters.AddWithValue("@PasswordAttempts", data.PasswordAttempts); + cmd.Parameters.AddWithValue("@CurrentPasswordAttempts", data.CurrentPasswordAttempts); + cmd.Parameters.AddWithValue("@Role", data.Role); + cmd.Parameters.AddWithValue("@EmailToken", data.EmailToken); + + await cmd.ExecuteNonQueryAsync(); + } + } + + public async Task UpdateWebsiteData( Account account, WebSiteData data ) { + using( MySqlConnection connection = GetConnection() ) { + connection.Open(); + string command = @" + UPDATE WebsiteData SET + FailedPasswordLock = @FailedPasswordLock, + PasswordAttempts = @PasswordAttempts, + CurrentPasswordAttempts = @CurrentPasswordAttempts, + Role = @Role, + EmailToken = @EmailToken + WHERE AccountID = @AccountID; + "; + + MySqlCommand cmd = new MySqlCommand(command, connection); + cmd.Parameters.AddWithValue("@AccountID", account.ID); + cmd.Parameters.AddWithValue("@FailedPasswordLock", data.FailedPasswordLock); + cmd.Parameters.AddWithValue("@PasswordAttempts", data.PasswordAttempts); + cmd.Parameters.AddWithValue("@CurrentPasswordAttempts", data.CurrentPasswordAttempts); + cmd.Parameters.AddWithValue("@Role", data.Role); + cmd.Parameters.AddWithValue("@EmailToken", data.EmailToken); + + await cmd.ExecuteNonQueryAsync(); + } + } + + } +} diff --git a/src/MistoxWebsite.Server/Services/EmailService/EmailService.cs b/src/MistoxWebsite.Server/Services/EmailService/EmailService.cs new file mode 100644 index 0000000..7cc0a86 --- /dev/null +++ b/src/MistoxWebsite.Server/Services/EmailService/EmailService.cs @@ -0,0 +1,42 @@ +using System.Net.Mail; + +namespace MistoxWebsite.Server.Services { + public partial class EmailService { + + public Dictionary _SentEmails = new Dictionary(); + + public string EmailServer = ""; + public string EmailAddress = ""; + public string EmailPassword = ""; + public int EmailPort; + + public EmailService( string _EmailServer, int _EmailPort, string _EmailAddress, string _EmailPassword ) { + EmailServer = _EmailServer; + EmailPort = _EmailPort; + EmailAddress = _EmailAddress; + EmailPassword = _EmailPassword; + } + + public string Send( string Destination, string Subject, string Body ) { + using (SmtpClient client = new SmtpClient( EmailServer, EmailPort )){ + client.EnableSsl = true; + client.Credentials = new System.Net.NetworkCredential( EmailAddress, EmailPassword ); + + try { + MailMessage msg = new MailMessage(){ + IsBodyHtml = true, + Subject = Subject, + Body = Body + }; + msg.From = new MailAddress( EmailAddress, "no-reply" ); + msg.To.Add( new MailAddress( Destination ) ); + client.Send( msg ); + return "Success"; + } catch( Exception e ) { + return "An Error Has Occurred Sending Email : " + e.ToString(); + } + } + } + + } +} \ No newline at end of file diff --git a/src/MistoxWebsite.Server/Services/EmailService/ResetPasswordEmail.cs b/src/MistoxWebsite.Server/Services/EmailService/ResetPasswordEmail.cs new file mode 100644 index 0000000..8d075bc --- /dev/null +++ b/src/MistoxWebsite.Server/Services/EmailService/ResetPasswordEmail.cs @@ -0,0 +1,53 @@ +using System.Net.Mail; + +namespace MistoxWebsite.Server.Services { + public partial class EmailService { + +// @UserName +// @ResetPassWord +// https://mistox.com/account/resetpassword?UserName=@UserName&ResetPwd=@ResetPassWord + + public static string ResetPasswordSubject = "Password Reset Request"; + public static string ResetPasswordEmail = @" + + + + + + Password Reset + + + + + + +
+ + + + + + + + + + +
+

Password Reset Request

+
+

Hi @UserName,

+

We received a request to reset your password. You can reset your password by clicking the button below:

+

+ Reset Password +

+

If you didn't request a password reset, you can safely ignore this email.

+

Best regards

+
+

If you have any questions, feel free to contact support.

+
+
+ +"; + + } +} \ No newline at end of file diff --git a/src/MistoxWebsite.Server/Services/EmailService/VerifyEmail.cs b/src/MistoxWebsite.Server/Services/EmailService/VerifyEmail.cs new file mode 100644 index 0000000..a22b4a6 --- /dev/null +++ b/src/MistoxWebsite.Server/Services/EmailService/VerifyEmail.cs @@ -0,0 +1,54 @@ +using System.Net.Mail; + +namespace MistoxWebsite.Server.Services { + public partial class EmailService { + +// @UserName +// @VerifyPassword +// https://mistox.com/api/account/verifyemail?UserName=@UserName&Guid=@VerifyPassword + + public static string VerifyEmailSubject = "Verify Your Email Address"; + public static string VerifyEmailEmail = @" + + + + + + Verify Your Email + + + + + + +
+ + + + + + + + + + +
+

Verify Email Request

+
+

Hi @UserName,

+

Thank you for making an account with us:

+

In order to start using your account we need to verify your email address by clicking the link below:

+

+ Verify Email +

+

If you didn't create an account please ignore this email.

+

Best regards

+
+

If you have any questions, feel free to contact support.

+
+
+ +"; + + } +} \ No newline at end of file diff --git a/src/MistoxWebsite.Server/wwwroot/PaymentFrame.html b/src/MistoxWebsite.Server/wwwroot/PaymentFrame.html new file mode 100644 index 0000000..1b53f63 --- /dev/null +++ b/src/MistoxWebsite.Server/wwwroot/PaymentFrame.html @@ -0,0 +1,179 @@ + + + + + Stripe-Payments + + + + + +
+ +
+ +
+ + +
+ + + + \ No newline at end of file diff --git a/src/MistoxWebsite.Server/wwwroot/Snake.html b/src/MistoxWebsite.Server/wwwroot/Snake.html new file mode 100644 index 0000000..f3eac73 --- /dev/null +++ b/src/MistoxWebsite.Server/wwwroot/Snake.html @@ -0,0 +1,192 @@ + + + HTML_Snake + + + +

Score : 0

+
+ +
+ +
+

LEADERBOARD

+
+
+
+

Designed by Derek in California

+ + \ No newline at end of file diff --git a/src/MistoxWebsite.Server/wwwroot/css/app.css b/src/MistoxWebsite.Server/wwwroot/css/app.css new file mode 100644 index 0000000..9978cd3 --- /dev/null +++ b/src/MistoxWebsite.Server/wwwroot/css/app.css @@ -0,0 +1,169 @@ +:root { + --Mistox-Dark: #2C0703; + --Mistox-Medium: #890620; + --Mistox-Light: #B6465F; + --Mistox-Bright: #FC440F; + --Mistox-Offset: #443B75; + --Mistox-Background: #320000; + --Mistox-White: #FFF; + --Mistox-Black: #000; +} + +html, body { + font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; +} + +main { + background-color: #000000; + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='49' viewBox='0 0 28 49'%3E%3Cg fill-rule='evenodd'%3E%3Cg id='hexagons' fill='%23ff0000' fill-opacity='0.2' fill-rule='nonzero'%3E%3Cpath d='M13.99 9.25l13 7.5v15l-13 7.5L1 31.75v-15l12.99-7.5zM3 17.9v12.7l10.99 6.34 11-6.35V17.9l-11-6.34L3 17.9zM0 15l12.98-7.5V0h-2v6.35L0 12.69v2.3zm0 18.5L12.98 41v8h-2v-6.85L0 35.81v-2.3zM15 0v7.5L27.99 15H28v-2.31h-.01L17 6.35V0h-2zm0 49v-8l12.99-7.5H28v2.31h-.01L17 42.15V49h-2z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E"); +} + +#blazor-error-ui { + background: lightyellow; + bottom: 0; + box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2); + display: none; + left: 0; + padding: 0.6rem 1.25rem 0.7rem 1.25rem; + position: fixed; + width: 100%; + z-index: 1000; +} + + #blazor-error-ui .dismiss { + cursor: pointer; + position: absolute; + right: 0.75rem; + top: 0.5rem; + } + +.blazor-error-boundary { + background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTYiIGhlaWdodD0iNDkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIG92ZXJmbG93PSJoaWRkZW4iPjxkZWZzPjxjbGlwUGF0aCBpZD0iY2xpcDAiPjxyZWN0IHg9IjIzNSIgeT0iNTEiIHdpZHRoPSI1NiIgaGVpZ2h0PSI0OSIvPjwvY2xpcFBhdGg+PC9kZWZzPjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMCkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMzUgLTUxKSI+PHBhdGggZD0iTTI2My41MDYgNTFDMjY0LjcxNyA1MSAyNjUuODEzIDUxLjQ4MzcgMjY2LjYwNiA1Mi4yNjU4TDI2Ny4wNTIgNTIuNzk4NyAyNjcuNTM5IDUzLjYyODMgMjkwLjE4NSA5Mi4xODMxIDI5MC41NDUgOTIuNzk1IDI5MC42NTYgOTIuOTk2QzI5MC44NzcgOTMuNTEzIDI5MSA5NC4wODE1IDI5MSA5NC42NzgyIDI5MSA5Ny4wNjUxIDI4OS4wMzggOTkgMjg2LjYxNyA5OUwyNDAuMzgzIDk5QzIzNy45NjMgOTkgMjM2IDk3LjA2NTEgMjM2IDk0LjY3ODIgMjM2IDk0LjM3OTkgMjM2LjAzMSA5NC4wODg2IDIzNi4wODkgOTMuODA3MkwyMzYuMzM4IDkzLjAxNjIgMjM2Ljg1OCA5Mi4xMzE0IDI1OS40NzMgNTMuNjI5NCAyNTkuOTYxIDUyLjc5ODUgMjYwLjQwNyA1Mi4yNjU4QzI2MS4yIDUxLjQ4MzcgMjYyLjI5NiA1MSAyNjMuNTA2IDUxWk0yNjMuNTg2IDY2LjAxODNDMjYwLjczNyA2Ni4wMTgzIDI1OS4zMTMgNjcuMTI0NSAyNTkuMzEzIDY5LjMzNyAyNTkuMzEzIDY5LjYxMDIgMjU5LjMzMiA2OS44NjA4IDI1OS4zNzEgNzAuMDg4N0wyNjEuNzk1IDg0LjAxNjEgMjY1LjM4IDg0LjAxNjEgMjY3LjgyMSA2OS43NDc1QzI2Ny44NiA2OS43MzA5IDI2Ny44NzkgNjkuNTg3NyAyNjcuODc5IDY5LjMxNzkgMjY3Ljg3OSA2Ny4xMTgyIDI2Ni40NDggNjYuMDE4MyAyNjMuNTg2IDY2LjAxODNaTTI2My41NzYgODYuMDU0N0MyNjEuMDQ5IDg2LjA1NDcgMjU5Ljc4NiA4Ny4zMDA1IDI1OS43ODYgODkuNzkyMSAyNTkuNzg2IDkyLjI4MzcgMjYxLjA0OSA5My41Mjk1IDI2My41NzYgOTMuNTI5NSAyNjYuMTE2IDkzLjUyOTUgMjY3LjM4NyA5Mi4yODM3IDI2Ny4zODcgODkuNzkyMSAyNjcuMzg3IDg3LjMwMDUgMjY2LjExNiA4Ni4wNTQ3IDI2My41NzYgODYuMDU0N1oiIGZpbGw9IiNGRkU1MDAiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvZz48L3N2Zz4=) no-repeat 1rem/1.8rem, #b32121; + padding: 1rem 1rem 1rem 3.7rem; + color: white; +} + + .blazor-error-boundary::after { + content: "An error has occurred." + } + +/* CSS used for the Account Activity Pages */ + +.center { + position: relative; + left: 50%; + top: 50vh; + transform: translateY(-50%) translateX(-50%); +} + +.horizontal-center { + position: relative; + left: 50%; + transform: translateX(-50%); +} + +.vertical-center { + position: relative; + top: 50vh; + transform: translateY(-50%); +} + +.background-border { + border: var(--Mistox-Background) 2px solid; + border-radius: 6px; +} + +.big-frame { + background-color: var(--Mistox-Black); + padding: 4px; + max-width: 400px; + color: var(--Mistox-White); + transition-duration: 1s; +} + +.big-frame h3{ + margin: 15px 0 30px 0; + color: var(--Mistox-White); + text-align: center; +} + +.big-frame .frame-item label{ + position: relative; + padding: 10px 0; + font-size: 16px; + color: var(--Mistox-White); + pointer-events: none; + transition: .5s; + top: -70px; + left: 20px; +} + + .big-frame .frame-item input:autofill, + .big-frame .frame-item input:-webkit-autofill, + .big-frame .frame-item input { + position: relative; + width: calc(100% - 40px); + margin: 0 20px; + padding: 10px 0; + font-size: 15px; + color: var(--Mistox-White); + margin-bottom: 30px; + border: none; + border-bottom: 1px solid var(--Mistox-White); + outline: none; + background: transparent; + } + + .big-frame .frame-item input:focus ~ label, + .big-frame .frame-item input:not(:placeholder-shown) ~ label { + top: -95px; + left: 10px; + color: var(--Mistox-Light); + font-size: 12px; + } + +.flex-row{ + display: flex; + flex-direction: row; + justify-content: space-around; +} + +.sub-frame { + text-align: center; + padding: 1px 0; +} + +.submit{ + position: relative; + padding: 10px 20px; + color: var(--Mistox-Black); + background-color: var(--Mistox-Light); + font-size: 16px; + text-decoration: none; + text-transform: uppercase; + overflow: hidden; + transition: transform 0.3s ease, box-shadow 0.5s ease; + letter-spacing: 4px; + border: 1px solid var(--Mistox-Light); + margin: auto; + border-radius: 5px; +} + + .submit:hover { + background-color: var(--Mistox-Light); + color: var(--Mistox-White); + box-shadow: 4px 3px 6px var(--Mistox-Dark); + } + + .submit:active { + transform: translate( 4px, 2px ); + background-color: var(--Mistox-Dark); + border: none; + color: var(--Mistox-White); + box-shadow: none; + } + +ul { + list-style: none; + color: var(--Mistox-Bright); +} \ No newline at end of file diff --git a/src/MistoxWebsite.Server/wwwroot/favicon.ico b/src/MistoxWebsite.Server/wwwroot/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..63e859b476eff5055e0e557aaa151ca8223fbeef GIT binary patch literal 5430 zcmc&&Yj2xp8Fqnv;>&(QB_ve7>^E#o2mu=cO~A%R>DU-_hfbSRv1t;m7zJ_AMrntN zy0+^f&8be>q&YYzH%(88lQ?#KwiCzaCO*ZEo%j&v;<}&Lj_stKTKK>#U3nin@AF>w zb3ONSAFR{u(S1d?cdw53y}Gt1b-Hirbh;;bm(Rcbnoc*%@jiaXM|4jU^1WO~`TYZ~ zC-~jh9~b-f?fX`DmwvcguQzn*uV}c^Vd&~?H|RUs4Epv~gTAfR(B0lT&?RWQOtduM z^1vUD9{HQsW!{a9|0crA34m7Z6lpG^}f6f?={zD+ zXAzk^i^aKN_}s2$eX81wjSMONE#WVdzf|MT)Ap*}Vsn!XbvsI#6o&ij{87^d%$|A{ z=F{KB%)g%@z76yBzbb7seW**Ju8r4e*Z3PWNX3_tTDgzZatz7)Q6ytwB%@&@A|XT; zecM`Snxx5po$C)%yCP!KEtos~eOS)@2=kX-RIm)4glMCoagTEFxrBeSX%Euz734Fk z%7)x(k~T!@Hbg_37NSQL!vlTBXoURSzt~I**Zw`&F24fH*&kx=%nvZv|49SC*daD( zIw<~%#=lk8{2-l(BcIjy^Q$Q&m#KlWL9?UG{b8@qhlD z;umc+6p%|NsAT~0@DgV4-NKgQuWPWrmPIK&&XhV&n%`{l zOl^bbWYjQNuVXTXESO)@|iUKVmErPUDfz2Wh`4dF@OFiaCW|d`3paV^@|r^8T_ZxM)Z+$p5qx# z#K=z@%;aBPO=C4JNNGqVv6@UGolIz;KZsAro``Rz8X%vq_gpi^qEV&evgHb_=Y9-l z`)imdx0UC>GWZYj)3+3aKh?zVb}=@%oNzg7a8%kfVl)SV-Amp1Okw&+hEZ3|v(k8vRjXW9?ih`&FFM zV$~{j3IzhtcXk?Mu_!12;=+I7XK-IR2>Yd%VB^?oI9c^E&Chb&&je$NV0P-R;ujkP z;cbLCCPEF6|22NDj=S`F^2e~XwT1ZnRX8ra0#DaFa9-X|8(xNW_+JhD75WnSd7cxo z2>I_J5{c|WPfrgl7E2R)^c}F7ry()Z>$Jhk9CzZxiPKL#_0%`&{MX>P_%b~Dx0D^S z7xP1(DQ!d_Icpk!RN3I1w@~|O1ru#CO==h#9M~S4Chx*@?=EKUPGBv$tmU+7Zs_al z`!jR?6T&Z7(%uVq>#yLu`abWk!FBlnY{RFNHlj~6zh*;@u}+}viRKsD`IIxN#R-X3 z@vxu#EA_m}I503U(8Qmx^}u;)KfGP`O9E1H1Q|xeeksX8jC%@!{YT1)!lWgO=+Y3*jr=iSxvOW1}^HSy=y){tOMQJ@an>sOl4FYniE z;GOxd7AqxZNbYFNqobpv&HVO$c-w!Y*6r;$2oJ~h(a#(Bp<-)dg*mNigX~9rPqcHv z^;c*|Md?tD)$y?6FO$DWl$jUGV`F1G_^E&E>sY*YnA~ruv3=z9F8&&~Xpm<<75?N3 z>x~`I&M9q)O1=zWZHN9hZWx>RQ}zLP+iL57Q)%&_^$Sme^^G7;e-P~CR?kqU#Io#( z(nH1Wn*Ig)|M>WLGrxoU?FZrS`4GO&w;+39A3f8w{{Q7eg|$+dIlNFPAe+tN=FOYU z{A&Fg|H73+w1IK(W=j*L>JQgz$g0 z7JpKXLHIh}#$wm|N`s}o-@|L_`>*(gTQ~)wr3Eap7g%PVNisKw82im;Gdv#85x#s+ zoqqtnwu4ycd>cOQgRh-=aEJbnvVK`}ja%+FZx}&ehtX)n(9nVfe4{mn0bgijUbNr7Tf5X^$*{qh2%`?--%+sbSrjE^;1e3>% zqa%jdY16{Y)a1hSy*mr0JGU05Z%=qlx5vGvTjSpTt6k%nR06q}1DU`SQh_ZAeJ}A@`hL~xvv05U?0%=spP`R>dk?cOWM9^KNb7B?xjex>OZo%JMQQ1Q zB|q@}8RiP@DWn-(fB;phPaIOP2Yp)XN3-Fsn)S3w($4&+p8f5W_f%gac}QvmkHfCj$2=!t`boCvQ zCW;&Dto=f8v##}dy^wg3VNaBy&kCe3N;1|@n@pUaMPT?(aJ9b*(gJ28$}(2qFt$H~u5z94xcIQkcOI++)*exzbrk?WOOOf*|%k5#KV zL=&ky3)Eirv$wbRJ2F2s_ILQY--D~~7>^f}W|Aw^e7inXr#WLI{@h`0|jHud2Y~cI~Yn{r_kU^Vo{1gjav0A9xRwxP|bki~~&uFk>U z#P+PQh zyZ;-jwXKqnKbb6)@RaxQz@vm={%t~VbaZrdbaZrdbaeEeXj>~BG?&`J0XrqR#sSlO zg~N5iUk*15JibvlR1f^^1czzNKWvoJtc!Sj*G37QXbZ8LeD{Fzxgdv#Q{x}ytfZ5q z+^k#NaEp>zX_8~aSaZ`O%B9C&YLHb(mNtgGD&Kezd5S@&C=n~Uy1NWHM`t07VQP^MopUXki{2^#ryd94>UJMYW|(#4qV`kb7eD)Q=~NN zaVIRi@|TJ!Rni8J=5DOutQ#bEyMVr8*;HU|)MEKmVC+IOiDi9y)vz=rdtAUHW$yjt zrj3B7v(>exU=IrzC<+?AE=2vI;%fafM}#ShGDZx=0Nus5QHKdyb9pw&4>4XCpa-o?P(Gnco1CGX|U> z$f+_tA3+V~<{MU^A%eP!8R*-sD9y<>Jc7A(;aC5hVbs;kX9&Sa$JMG!W_BLFQa*hM zri__C@0i0U1X#?)Y=)>JpvTnY6^s;fu#I}K9u>OldV}m!Ch`d1Vs@v9 zb}w(!TvOmSzmMBa9gYvD4xocL2r0ds6%Hs>Z& z#7#o9PGHDmfG%JQq`O5~dt|MAQN@2wyJw_@``7Giyy(yyk(m8U*kk5$X1^;3$a3}N^Lp6hE5!#8l z#~NYHmKAs6IAe&A;bvM8OochRmXN>`D`{N$%#dZCRxp4-dJ?*3P}}T`tYa3?zz5BA zTu7uE#GsDpZ$~j9q=Zq!LYjLbZPXFILZK4?S)C-zE1(dC2d<7nO4-nSCbV#9E|E1MM|V<9>i4h?WX*r*ul1 z5#k6;po8z=fdMiVVz*h+iaTlz#WOYmU^SX5#97H~B32s-#4wk<1NTN#g?LrYieCu> zF7pbOLR;q2D#Q`^t%QcY06*X-jM+ei7%ZuanUTH#9Y%FBi*Z#22({_}3^=BboIsbg zR0#jJ>9QR8SnmtSS6x($?$}6$x+q)697#m${Z@G6Ujf=6iO^S}7P`q8DkH!IHd4lB zDzwxt3BHsPAcXFFY^Fj}(073>NL_$A%v2sUW(CRutd%{G`5ow?L`XYSO*Qu?x+Gzv zBtR}Y6`XF4xX7)Z04D+fH;TMapdQFFameUuHL34NN)r@aF4RO%x&NApeWGtr#mG~M z6sEIZS;Uj1HB1*0hh=O@0q1=Ia@L>-tETu-3n(op+97E z#&~2xggrl(LA|giII;RwBlX2^Q`B{_t}gxNL;iB11gEPC>v` zb4SJ;;BFOB!{chn>?cCeGDKuqI0+!skyWTn*k!WiPNBf=8rn;@y%( znhq%8fj2eAe?`A5mP;TE&iLEmQ^xV%-kmC-8mWao&EUK_^=GW-Y3z ksi~={si~={skwfB0gq6itke#r1ONa407*qoM6N<$g11Kq@c;k- literal 0 HcmV?d00001 diff --git a/src/MistoxWebsite.Server/wwwroot/img/MistoxLogo.png b/src/MistoxWebsite.Server/wwwroot/img/MistoxLogo.png new file mode 100644 index 0000000000000000000000000000000000000000..7e7e44cac99045e865faddc3c50625a13b7287db GIT binary patch literal 165427 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⩔E9&4IG^~*1Il*M700pwg=W#u0MvLQkVz9Ps4Yb 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 HS_b?-RZg1v literal 0 HcmV?d00001 diff --git a/src/MistoxWebsite.Server/wwwroot/img/ResumeFace.jpg b/src/MistoxWebsite.Server/wwwroot/img/ResumeFace.jpg new file mode 100644 index 0000000000000000000000000000000000000000..66546cd54c59fd5c737cb993b70845610271bec8 GIT binary patch literal 314885 zcmbTdcQ{;M7%n>M2%-fUj5-sY7QuY2#e*Zym-z4!O7y}q@+^6r1r|CRtO21tD*fP#VoV1Ic4 z{>=e&092He|Fuh@zHBsfG&I!IH1t3qEgd60BO?Pn1H)A&HkPYQtV|3HESxN?*Vs8Y zI2f6)gE-kiZ0sED|2>3)>hd0HnkzIkSJ zh9?!_4N;oPfSjI`8qu_ySzePU0dJyzPYu3aCmfla{BA+_kXx3 z095}A*8f5F|G>q1iHnkν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 -|!lj5H;+4adku+?| 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 z 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�zHy_jzO()tcf0dnyT{oZ@iKJuKN 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 z zmh#CAgPqE8UYVl)(q1&s^rf-3zJ#jquOuOx^EHI9=3Iy0P2wQgD2(IjR4+VX6_jP< z+W}rfOCqK{`8E0ds(fzo{T-JdlQE{Kuu(pj z@#lkn8((UddWN;)sT%Tm46-uZhiv`}UJv8VC&D(@mdoKyN^L?cA2p^2@Ww!{L2YAZ zR+dfKJoh56rOumXqsX?Fd3&^n3;9;@k15d2LTghBC)uEG8*^>l zP5#`u3RV@0*mu~x{&ikSrJDv>3$Z<0lT>K5EUZyljk3HXPrc?9d(z&a6z>p9Nf3iF_BgH@KP*2e zvSnI9>IN!H9S&Q|jrSX(iyU@8m1$}oAf8K$i<#Fq5*>=E(GVVrJ6EfI&CvL3#9D@} zVXj(5d4F&ftybfv+;fl4qB6S%nd4U;9V*VD_y>-p{*-;6Q_>>e1>Dgp^OTh0zQ4Zs zBjD@J+jRD{etCl7l#jsIn0#jVD`Vil22HKnY8Mhgy--6iT!MRXRjCn@>U{m;9~Wv@ z+8p+mmy+B@zz?0XUg;LJmVdKepKuTFcEYNC!C&YNeC4aQ>sDtN>D#w8>vCT+{?8h8 zBRN?jZ?7l(D_>I?t!{l6@Miele`Lx|Orm!u>Z*UGdb57wHI0tuYVhybuJ~$Net-ZZ ztW&S$$Mvsn)z6o8Y*c*2?fmQKaZC4y+U0llNb=9xQ!DWL)-G90#MjFsaBQas99P;O z7_?aRpN9IAOa^UG$gF=#__1YG*fWmDHRxdF`?JB#;mca%%x#PwJC9mL$4)cfG_5k= z2>N>UsQi}Qouuc!FRolhn}F&D~lN`^J5_Q z6(VHhQ+`!o9ORyxX$u8Wf!C=N3^uMn#t&*)^1K0xZt&U1YK+V`VVfE4Kn&XCg>@u$ zIjgb!(T)f`F`kuEYLW`)9kWl4P6sCh&;^EGTPHt_LK_(vr?%av2OasQDGeuHF+dL7 zWNtd+nsUe$lMWXLkZL&@M=HI!YD}b240c&J%gZV3u0vB(!{gHDlz zau$9LI0K~sJIfHR3CN^bI}&m0O<6Z6JxZEp=^G)38SOw4;K{~F`cgD_Y@U9!VQAsA;k~$7*SeZWL=y)Gmib)sD zZaz$L&sv>0wGuYYPXjd*FPPg1!93=W?Qx2sNo{WdSr7JXXsAqD01}T$FqCLcbGyGK0h{Jr?CyJgdNT-fR zCaPRqK??>FEQ_DvIi@zTZ*Hu?i!%%jqk&W+^GFw{BkNH`DUn-0boAz^N#Yx6m>sO! zM>~1ukZOTZU+nS*KXrEWpb@6F;gk}=N$9lCY0EFwVS zNwxyJkK;$#*A4Rm%5X=$SC_(itTL|IlN|`$GyJM(d?#|y?V9&y??&lGhJmI?WChO$ zwNBU8;y=7O;d9oIcn;5(mi^=kKrGF`t101q8a=GDWOmC?I~nupmbToM&#vRvsgDv` zqY@dIbO7gy*z){249yIz9lLR!aqB|rULLW9gsQBh;V_%H?acz^Mg-dIOy4XsAnF@# zcYD!W*1jUpmg5k^kC&2H`B6wLa3V7rvFdu7wGQp0^Q781Zj0X|im?o2E^(BrGhSk& zeAz#D7!=iz`GHs*FIrg`Hz7Fbfkc0F?i`YHK>Z1r?dkNW*DamheW|M50|Ei!rH)T6 z2?M?{iUE?U4!F*GFsC=&!RzacQ?2Y<(B)PV;yOmiz{u(E8d-i(F8XJNgfd%OnpsE*<4^}J#j=U zwT|8i>P<~Du^Z1Ofmn_>L5%VVC-SE4Rbs`kzokDPAi?*j)dYiM45_Lq5=U{dSOd;* z2N(Z(cVN6kc%4cH?GxuH}jB=UXe5StfneLB#;yT||o*EFXD6aN5?)El>F z4alHnku$32xfOR!kxOmQrhSEHBlhI+R!aD>Hur^Yy6IGT=81dsEeqMjTT_v16HJ zUzHhfbCwlm-cK-Kw?EFQ{pRI}6)Yqxs*ImctqcjIxiQE=C7acaNgMPh<|p2xlH5li z5|AVVb13H@T5*sxoG2OTx20wmCrK~|RyoPVEX=b=vNr)m5yV6RyEzz=~k`O zT(;LZ3;5J6g^;fxbQuPa3})Ix1gIvOONo=X?}JmzFjOG@&^pyh=~S$>0@`diOe&0iG({^NF-4CU>MeB9%&&hB;n85nfNJTnp_!<|a}dhGTC}TDAK>c+T%l z@tbInT(k+O0ysDYfT@<78}5%%zgM|=Vfu9k5)#rdK$D_D?KUcVb#L=U< z+GJc4jySKOhKe-*0Eia1SL|jNmhT?+KgPU|(zwssH$#r!P1Ci@IKrD*LP@Y=<8)8(k5tpHEVZ2`?#x^@z$J6YA1NQszEJVUhi34{iZ1LV1bK22y}n%6y?i~@ zMw{ac7cGb;z+?5rXnxb*4Nk45#jferr_8icv+W#}Cx)x$v$#S!Sox1b*DrJpZqokB zMz^?yx1@`~9FOT=VClNm-;BI1VX8wcw{qOBSQjUpax3FSEXq`jh3Q{Ue#o96gHY5Y z@a62jSlC_-$G;gLm0?;pS4X8qCAm-I*MV+tJRfbWG-u4We=b4X1Dg4qykw?!z+f=Z(1; zu8NBBIXP^8f$j3xs5l;(#YHu$$p~V{IpkJ~YPQ#waa=&Fwq#dU>(pkd++M_E1>Iv& z$tQ~No$skHLkPSP7YYHBzV2$htP{;}NQD?TOw)B8SbWWAV3Us0NJ!0dvtMc#2YuB3 zKl`}B$7ii${Ei%033T(rmL-9c$-)g$7?dAYqBU&Nh{AJnzc<8dmSWlypcj< zo-Oa!dFk&;ilX6?ThBb6Ga0}K+uE>J*HpK+b2W^yqV!$4IPQ3@zXkXz{{Y0&HPyjw zKS^KtYarV4`zZdVm$P>=b1cL5Yl#GQ{{U#ab>o6clUfU)USDB+kqQpJV{=`dm5!gH z!j{$$c~P%?Wt-g8#zz_b(A)jyCb}a{7&?!k&0F|96;mXOv~jgYb62dq0c70GB;*sw z%BcQTud-GvxuXNF0}NA`^aa;FzG40~ylEpDPG)4D5z#GvR)xy{0CdUPvbE;$&xP%y zn(oX<@*G>+MhnY3dMf__UV^oCuMuhfAGQ$MCBM_Gq|#bN$M(js73Wm`>`;yneR-`_G>E*0YhE+f^lcvFQI|^7d^2LPu}JQ& zH{3{eoCN^mCnJHH;=UV9*II^xWX|a{WJAY)F#iCJdY*ycEiTtqTib=3Sk+&KzSIu( zA4TZDfUh?2H~fv-T5vH58+!rgG5(dRwXBM>JCBW%N2PdV?AoaaML6Rpa6i(%dGIyE zYTDMLFh4BUZ2TX8@D=QTw8i*O0Ldh6^2v7`dH(>uvtB>&ZqUhg#PSR7{Q0h0%F#Z9 zDoxZrjqsF3QZ);aUXiE9V?axY{i~Jmewt;4FfbRI>$aFMxCh?2>BU=9>ncl{Ru~)g^u=45);zN?102;kRU}eXw~SQG(wr@+&uS3GICU&IuMPOM;ZuEQ zEYPSdy!7c_?{#PQxxqEb>-t*VLh&{+w1Zi~T(45%_h#_;Ozk>r>4FGD9L1 zK8K$5>%Ikw+eYwygL7+kZuD(rEH^Poav+=o)6*x4^<(cVpACwo?56ZQXW_@fy%S%D z`(wpEBel`A)^ZlrW(ML=4>`|H_3zqG#&3lm3+zRff#jf3gCt}b7>`re^{<=$Ecjpk z5MLADL~Ns)IULIYWZ)_1AD{EC5B?H6#!wOqXoveT3h0bEk2X?1xzzsvY^@C#n_F9( zk4=#i{cD%M{jo2v2}>OcQ|Mpi{zATN{@&Dw-Mc7z$^PdVEhj5$>2uf1!@%1YGdzB72j_r??G8lCh@9FkkJnADSlpMLnR1$99f+9DYG zS8?&%#F}r2yk&6uEHT^Za5KdMLc3FFILH;|uH1~~w1}SNo9n|WovDLXB4%F<#N}o3 zg~JAAQ@3^pTF(*7tcN#@<`@lBEykwIR*)btgKNp5!xa4O2%j)V242|Tt6!||!s zVV(~aEYS{*)2`w%^ru`$_i>JD&9ey?Byf1mERY6}C^%g3Yb)w>^67Hsn{K*PCsdw4 zHCG6$vv4d=f6BD)JZ%QC3~=f?9h}O)b)m|z{A$jJt?1VJf7!K$xEA@(l@wcn_cc!b z%RqaHCeXEE5@S9^#8^K{omifR1k*z;;cHl0+8)a7oL6DteMzIYx|inKtF@b=oc7Ie ze8^dkCpA15l3Plxxx9jYbR7x$Q<65O(l>53=Znb+wI9|WbzJB;w@q1YKXR1j(q)T;cagQG}FshE2&dgqdArxtEG#t1nz>M^S~?E7INjQMP=eu2pT zwdK0RQZ0#g`=ov~?7CEHe`ZPC^+;F){{U?TR)%tpwmnDoNw^TTjBI{r;+c=O;w$KF zVbkpF`>@N+eCPW(Sj!f>Acaqqx_UR_Lgu~tOIMOIBqW}5n)%FRnyF*$@~9<8Q=a(6 zsVqMVZ??YQv@#}hUlLp~7Y?09cs2G%#ft{iz8C5i-^Fhrkdf#s<7=h)feJ$U_paO* z!gv|NYN=%yDgn3yQyYNH7bUj))?%?e4&n5tZri}l?)B;)I$N4$ByOh2!ZjG>kEKJn z%A*}UX)(q}BcU`3#F^cb)Y6vd3Bjnp&lEOz9OK@BlNa2>Jv-3BNy3e_5|v&U3M69-fqs5iGbEO!YMyt22C~jQ&&sD@mW>$UF*o#xvfc zVC^9QV*{Y+PgV=nlpJTR03nR>2*~WzG<{BLE3H9djC}cD_DHJ9s6&+oT&X z=z4=l&I=vqb5#b_t@metLC!w3pW7DlDGILN?usl1lDEt9jQ%v`jhH)zzz3dd0zF~Q z?=Id#dn+lW`&Oqg+9C4SzCohEbP%&MZ7eg`ntYNNw+6!>QPR1{Z1tG|2%`Y~ORmM$N{{V!2ql_$< zrA{&wspw@zsr!`gEXGWK)n!*r*npPEc4 zx3gn)lVlvB?N+0^)TSHbwjxIFNBkwJl`CukAKeFvi1@bm?b0+*?u;)RMI5N1MW(rR zCz<7_7{T4%ogaqvJCEMA!p7Ob!Tl*D@kX;Tk)wq|uio4$th(mAc^Kp(AL5USRzlR% zi@|a}1lN))4snr+o^J@+EMGnAG0#R}$F+0u+iOx~jO@xzO82SP!`IU`Bw3{+oCA)u zI~J^K{{X@>q(^RES=S5C28eAuKFk8jGu(EnarhSY>34|T5x5>>Roice^D`;hqp(oj zed=z6>`x}CpxKcUDjv;*9MZRnw7Xa(XyFn`j4H4lJ^85D;o~8ZTp(a_2^p)_z5tFq zJ;b2x?YEDm7eQkd%g5I7s(+ylI+b6{(`ND2)x)zvZemf~j8{;e5w>X%V+)WzRRfIm zsXyTuwM2M~VnE#weki&XnZ=J9YZGva5m%51&S;Co+Q5_L8(TRT&MVL?v>O{|1z^bk z0B8;>f9#7`q|cEaROEc3j%yCbnNNMK%G=s)rMloAKT32KTD;69dxpTl+B1V*m-bj1 zbz=gIdvRB7Z0+V(^KgV@f(Ke&&~`kkT?bUUS4NUYS38RI6!q{;@0ariVt8Mgy(~Zy zMF3?-@nWnrdzc(@JAZ{wIQedQqWnIeU}jRM`^5CCfAFta;S1&hf4VEtm09u+%b(#r z>4x0yJad{k!<6Ced;|7%9%Nyg){5^{g5+QqqNALn!Qqc+Zl^w{ihkB*7;c}1LYW7a z#}#KdRVB0ST_yw@nQ#H-oUOMxAc}J+`MA%1DL;sUI6WvByK~dGeALmXUZ;07bGNWK z&ovUcW&kcb^Fal*UCJ`sb4|EABvmJI91lZF8*a}y80p@Xfn$4w6V9%*PL~!SSd~$nxG+#KX?c^QO43L%PKTQw-rB1 zujPeosU-D1YF(S7U`{@@AXHzN{HG&0r>=J>7~9^KFcmPz<|dgYRx^RnWL1FfgFACf zVm!gzVx1mak};9eoZl|&3}dYzD?c(}RIqNCsrLQe4$jgqSU`Vv!#`hBQ^%h%M+zGlK9w4;&7KEtY2k+6 zMmf&z)htAtj^ewr+2xm|Nh6Ohb8a;=5;pe|WOF|qP@DIIcZ#|)!>PTv0YRuwDrADFkjPVPLS z_`;6a=7EBg{wTM43avC^E<)ggkSaxPI2`q+-bf_30eAhHS0EQb*0RNWti~8n(6)tOy6SEte1z4)?PhDDM`g# z^e}YQdYr8GkBOQ9v)ILO`;2aJ)lWlQcf-l#(e-UpM|UC#Ct0HhpkPNz^!-j(@u$PL zyDhs@(^qu9u7kPtHRf7WfALn>T(QGDV4q`C8Ql|#rR=J5o`w5TTDGO|rc0Fh#C}Zb zN3#HH$2421E;M+^Y!(2K_*c-rFt8pc_z|l?jq}HAEJOX}$sfp9%03s>o*Ot~Y-4B# zHLP_;2hrNSj2Cb!)5G*^)Eafayv5 zF!;g`5PUXUYpFcTtv*jCL~e4YrBHo0Pw>xU)x`n5TJQoABOK_J~{#4+MfJ)<<`5Rc%#)D)1E8iR{0r~ z*OBt=^feKeI zD+s4fW|P(@!>uzH$z7+?sZH~#CxSWVv@R8scem$R*GSSvaHrnAe~BJMo4NM4z#kV& z;{O1LHYgZ1#gY3vlh=-i@~=aaPa9TCg$%&(3CK0_@9df4Mz`@r)`cVOhVcU+&IaLM zSWgU0sT9HRoQ6}yc-7;{B1$cnibnm+Yz7ALz#mHIW|HDL1ZV>$a#}Rabyj+Qn|U_e z-AgG4<;TiMs?*7H4Y7~xj3Xy*?YP~J)yvPREi`$|z97^z{{R-@ZW}RB-30N#^1G9f;=m_-WlZ8CsBbNsKO6y*T_B~@#l^{E9!zNt}k^0{{Sp@ zw&Av@>@Yi5dEl?v1H_v2aouZokmzu~NaQ|b#CnCW59kHRBc1e)#vJ7>9#5S z1#(}s){mh0XW^_CIu(=_F-bDB2$uxor!}&QVz#zCpH}^(we3bjYe+H7SLY=Z=~ZmFvZ$9rq>M_JcC+j((#@m|`% z8VRB#wsX^(z2W}=+Hc3Y8v*^QFQZ@KxLws#_H&C(xbc*J;FxDWU%ZM_pb%RB;F6Rw^Yod!^(@F_Od^%XUStt3O^7$ zc6?#*xJF!W8m>UjPSAw^05e*D0IW^KD$F^~YsW8cO_q^uW4jE_(lGx3Xq#Zz(Hdh_l^w))Su@$1b91fL#P>v{MEgnGcn%2>6LfNA1$|&#CHAh&r zW`<`Dp!Xf>Ic*cyP4k@f;wIKn^A_(_os2O6Q)2%BI~e_0UbS8*`J-L0t93*qGzJVAai{k1P18;RCH`^Pem< zilnLfSAh6G#rHZ5wxi*Thi|dU;&``kVwFyK`q$VRov+%XXo~TIIj@zzH+UvZ6IM5| z$FUgaa@TeqqWD?hW>{`$^BwoZtu;O-d?&Kk;fy|^W(c1H=D-*^{SADaVrZ@;TpTV) zKGpQ+?Ee7bI7y#GyqA5Zr5+P``F9R6`kLZf;LGaY8tr^8TgbDLQ!7Z^e&`&KJ^Ow& z>M3%c6)4_TWIqG{0B2oO;>FO^FB|(O!#3wP7t?XP1Cpvgt#yAMektkNRh%9N@L?93 z6`0u}gyYO3)c5brcAvCo#7O)TpxSsh!|(PhXk!t)aGY_D_^*-ft{O?1*@?QQbv5$iW$K7jf%MokT={Lx4Yo*GEI2b1j$V^u=DX zQ#5S6*R*^+{geDlHxR z3VNRAn6vF9pXX49I3S*B+fMIltB?;PIlwi0Pq-t~(AIx{tw^6QV@NkG-$AtR0O0db zE1WJXX42U%><$mkqaYf^^arI4T&1Dtz8mo7m2cs=uJ44C-dvxRL*Zjy#<8_qXyCYH zQd&IZbJDVGJVkSD3R`a98vWhFrAPMZTH%b%lGV)O?{nIfN>ZefTArKm=io1iz9%eK zcCd>*Do(nE!P=jI{v-6RBgGyUo5Fq}ztU&hB(}1c{J=P1JJ-2iYT+XL_INHG2_1&f5Ls@dG#c<`x-dfiPXM3pL!tV-I?djBcGQm&>Cj&b}XB` zyz&J#o#T@wPtv6hOnE&GYS5#hu@$|mTgYvs{qbMA=cQ#RZ2ZS0cQqBd{iFR^Ab)sO zpR=@T7xbyo8>^Bmq+=xDQ{=w$umHm2jw-t$R$-j`Q=(1W_VlSQo1tG?xZh$?j!xiK zy`xA0e`d`_Hva&gCm6AJVs zEHb>Q{CKZ~ekEzQw!S#lVzw(7^T}Pqw_5AK%c19IQ1??Y%C_JF_3MgvmKO(i_|+J+ z-BM*c?xSDQk#sw^er|?G_fHk=A0E|>KQUAf_C-PVnA>q_6d*lM6-BgAN%QX;kM^m* z*tR$(OO`2*?@|$EwL4YmCgJbJLngIt(OZ$%6(n~0LMo}33;xi}NA{f_D}bmGjyX80 zNNBGfwl@%}%m*WinYEjhIf@xhMeJO2Eob@a_F*D21-I zJB_7n-wDtG#UxhRoWwKyhxms|noktn?)}7NLFhKsdyP{5>}LcX=7AO$Pt+ycJmH)S zVAPA@nPgwzUj^E8^0!}Vq_-ND+(zuaw3fPlttMGK!R~pbpp6gsMeX8`bhlfNY_O)b zmtuo-vZz7N2B97o)GrxByCakQXNr}46MD>ZmR$BZG+hW}HyTi1;=j6vH(}uQE)0Ri>-F=M9cOVrpMzejm@^nWCZe9 zRr*z5s9d;|85wbo z1$r}SLQk`~jUtN}+l(4;v_&ORfcjC)GtFDW_fs$unH*;%9EzEIC%ortWsezdE76q# zuQ(^v)G|gSA$TJ`l)1vk8y|q@Z!Mlg_vbaC7lM&n=h#L⁡~HHjPVvdX*WOfIl(E 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 Kv^d*$KmXb85?i$Z literal 0 HcmV?d00001 diff --git a/src/MistoxWebsite.Server/wwwroot/img/cart.png b/src/MistoxWebsite.Server/wwwroot/img/cart.png new file mode 100644 index 0000000000000000000000000000000000000000..1e52dd23291f4be5d665598aaa5850d8033007c9 GIT binary patch literal 13632 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 + + + + + + MistoxNet + + + + + + + + +
+
+ + + + diff --git a/src/MistoxWebsite.Server/wwwroot/js/screenwidth.js b/src/MistoxWebsite.Server/wwwroot/js/screenwidth.js new file mode 100644 index 0000000..180e127 --- /dev/null +++ b/src/MistoxWebsite.Server/wwwroot/js/screenwidth.js @@ -0,0 +1,6 @@ +window.getWindowSize = function() { + return { + width: window.innerWidth, + height: window.innerHeight + }; +}; \ No newline at end of file diff --git a/src/MistoxWebsite.Shared/DatabaseObjects.cs b/src/MistoxWebsite.Shared/DatabaseObjects.cs new file mode 100644 index 0000000..5988e6c --- /dev/null +++ b/src/MistoxWebsite.Shared/DatabaseObjects.cs @@ -0,0 +1,119 @@ +using System.Diagnostics; + +// Reflections of SQL Database objects + +namespace MistoxWebsite.Shared { + + public class PageLoadObject { + public Account? user { get; set; } + public AccountClaims? claims { get; set; } + public List? receipts { get; set; } + public List? products { get; set; } + public List? Cart { get; set; } + } + + public class DirObj { + public FileType? Type { get; set; } + public string Path { get; set; } = ""; + public DirObj? [] Children { get; set; } = new DirObj?[0]; + } + + public enum FileType { + File, + Directory + } + + public class Account { + public int ID { get; set; } // PK + public string UserName { get; set; } = ""; + public string Email { get; set; } = ""; + public bool EmailVerified { get; set; } = false; + public string PasswordHash { get; set; } = ""; + public WebSiteData SiteData { get; set; } = new WebSiteData(); + public string Error { get; set; } = ""; + } + + public class Product { + public int ID { get; set; } // PK + public string Name { get; set; } = ""; + public string Description { get; set; } = ""; + public int CurShowingIMG = 0; + public List Images { get; set; } = new List(); + public int Cost { get; set; } + public string URL { get; set; } = ""; + } + + public class WebSiteData { + public int AccountID { get; set; } // PK + public bool FailedPasswordLock { get; set; } = false; + public int PasswordAttempts { get; set; } = 5; + public int CurrentPasswordAttempts { get; set; } = 0; + public string Role { get; set; } = "Generic"; + public string EmailToken { get; set; } = ""; + } + + public class AccountInventory { + public int AccountID { get; set; } // PK + public int ProductID { get; set; } // PK + public string Item { get; set; } = string.Empty; // PK + public int Quantity { get; set; } + public string Stats { get; set; } = string.Empty; + } + + public class UserInventory { + public string Item { get; set; } = string.Empty; + public int Quantity { get; set; } + public string Stats { get; set; } = string.Empty; + } + + public class Receipt { + public int AccountID { get; set; } // PK + public int ProductID { get; set; } // PK + public string ReceiptID { get; set; } = string.Empty; + public int LineItem { get; set; } + public int TaxAmount { get; set; } + public int TotalCost { get; set; } + public DateTime Time { get; set; } + } + + public class ReceiptProduct { + public Receipt receipt { get; set; } = new Receipt(); + public Product product { get; set; } = new Product(); + } + + public class Cart { + public int ID { get; set; } + public int AccountID { get; set; } + public int ProductID { get; set; } + } + + public class ProjectMistData { + public int AccountID { get; set; } // PK + public int Credits { get; set; } + public int OddballTimer { get; set; } + public string SessionToken { get; set; } = ""; + public int SessionID { get; set; } + public int Kills { get; set; } + public int Deaths { get; set; } + } + + public class AccountClaims { + public string UserName { get; set; } = string.Empty; + public string Email { get; set; } = string.Empty; + public string EmailVerified { get; set; } = string.Empty; + public string Role { get; set; } = string.Empty; + public string FailedPasswordLock { get; set; } = string.Empty; + } + + public class PaymentObject { + public string CardNumber { get; set; } = string.Empty; + public long ExperationMonth { get; set; } + public long ExperationYear { get; set; } + public string CVC { get; set; } = string.Empty; + public string FullName { get; set; } = string.Empty; + public string Email { get; set; } = string.Empty; + public string Zip { get; set; } = string.Empty; + public List productIDs { get; set; } = new List(); + } + +} \ No newline at end of file diff --git a/src/MistoxWebsite.Shared/MistoxWebsite.Shared.csproj b/src/MistoxWebsite.Shared/MistoxWebsite.Shared.csproj new file mode 100644 index 0000000..cdc91ea --- /dev/null +++ b/src/MistoxWebsite.Shared/MistoxWebsite.Shared.csproj @@ -0,0 +1,9 @@ + + + + net9.0 + enable + enable + + +