diff --git a/src/MistoxWebsite.Server/Controllers/PaymentController.cs b/src/MistoxWebsite.Server/Controllers/PaymentController.cs index 3375709..38f025b 100755 --- a/src/MistoxWebsite.Server/Controllers/PaymentController.cs +++ b/src/MistoxWebsite.Server/Controllers/PaymentController.cs @@ -29,8 +29,8 @@ namespace MistoxWebsite.Server.Controllers { string OrderNumber = Guid.NewGuid().ToString().Substring(0,10); Account? acc = await _databaseService.GetAccount(userID); if (acc != null) { - List cart = await _databaseService.GetCart(acc); - (bool, string) PaymentResponse = await _paymentService.TryGetCheckoutToken(OrderNumber, acc, cart); + Cart[] carts = await _databaseService.GetCart(acc); + (bool, string) PaymentResponse = await _paymentService.TryGetCheckoutToken(OrderNumber, acc, carts); if (PaymentResponse.Item1) { // Returns client secret return PaymentResponse.Item2; diff --git a/src/MistoxWebsite.Server/Controllers/PaymentMethods/IPayment.cs b/src/MistoxWebsite.Server/Controllers/PaymentMethods/IPayment.cs index 25ab9d3..2d21310 100644 --- a/src/MistoxWebsite.Server/Controllers/PaymentMethods/IPayment.cs +++ b/src/MistoxWebsite.Server/Controllers/PaymentMethods/IPayment.cs @@ -7,7 +7,7 @@ namespace MistoxWebsite.Server.Controllers.Payment { public static PaymentType _PaymentType; public static string _EndpointSecret = ""; - public Task<(bool, string)> TryGetCheckoutToken(string OrderNumber, Account user, List cart); + public Task<(bool, string)> TryGetCheckoutToken(string OrderNumber, Account user, Cart[] cart); public Task ValidatePurchase(string WebHookData, string Headers); } diff --git a/src/MistoxWebsite.Server/Controllers/PaymentMethods/StripeIntents.cs b/src/MistoxWebsite.Server/Controllers/PaymentMethods/StripeIntents.cs index f1003f8..1475533 100644 --- a/src/MistoxWebsite.Server/Controllers/PaymentMethods/StripeIntents.cs +++ b/src/MistoxWebsite.Server/Controllers/PaymentMethods/StripeIntents.cs @@ -12,7 +12,7 @@ namespace MistoxWebsite.Server.Controllers { _databaseService = databaseService; } - public async Task<(bool, string)> TryGetCheckoutToken(string OrderNumber, Account user, List cart) { + public async Task<(bool, string)> TryGetCheckoutToken(string OrderNumber, Account user, Cart[] cart) { try { // build Recipt and calculate Tax var options = new Stripe.Tax.CalculationCreateOptions { diff --git a/src/MistoxWebsite.Server/Controllers/ProductController.cs b/src/MistoxWebsite.Server/Controllers/ProductController.cs index a4d191f..8bd5555 100755 --- a/src/MistoxWebsite.Server/Controllers/ProductController.cs +++ b/src/MistoxWebsite.Server/Controllers/ProductController.cs @@ -17,12 +17,11 @@ namespace MistoxWebsite.Server.Controllers { [Route( "api/cart/get" )] [HttpPost] - public async Task> GetCart( [FromBody] Account acc ) { + public async Task GetCart( [FromBody] Account acc ) { try { - List cart = await _databaseService.GetCart( acc ); - return cart; + return await _databaseService.GetCart( acc ); } catch { - return new List(); + return new Cart[0]; } } @@ -98,17 +97,17 @@ namespace MistoxWebsite.Server.Controllers { [Route( "api/product/getall" )] [HttpPost] - public ActionResult> GetAllProducts() { + public ActionResult GetAllProducts() { try { - return CatalogItems; + return CatalogItems.ToArray(); } catch { - return new List(); + return new Product[0]; } } [Route( "api/product/getowned" )] [HttpPost] - public async Task>> GetOwnedProduct() { + public async Task> GetOwnedProduct() { try { if( User.Identity != null && User.Identity.IsAuthenticated ) { string? email = User.FindFirstValue(ClaimTypes.Email); @@ -116,13 +115,13 @@ namespace MistoxWebsite.Server.Controllers { Account? test = await _databaseService.GetAccount(email); if( test != null ) { List returned = await _databaseService.GetAllReceipts(test); - return returned; + return returned.ToArray(); } } } - return new List(); + return new Receipt[0]; } catch { - return new List(); + return new Receipt[0]; } } diff --git a/src/MistoxWebsite.Server/Entities/DatabaseObjects.cs b/src/MistoxWebsite.Server/Entities/DatabaseObjects.cs index fb7cb7f..c4b2660 100755 --- a/src/MistoxWebsite.Server/Entities/DatabaseObjects.cs +++ b/src/MistoxWebsite.Server/Entities/DatabaseObjects.cs @@ -25,7 +25,7 @@ namespace MistoxWebsite.Server.Entities { public string Name { get; set; } = ""; public string Description { get; set; } = ""; public int CurShowingIMG = 0; - public List Images { get; set; } = new List(); + public string[] Images { get; set; } = new string[0]; public int Cost { get; set; } public string URL { get; set; } = ""; } diff --git a/src/MistoxWebsite.Server/Entities/SessionObjects.cs b/src/MistoxWebsite.Server/Entities/SessionObjects.cs index 5ec545e..59e7fe9 100644 --- a/src/MistoxWebsite.Server/Entities/SessionObjects.cs +++ b/src/MistoxWebsite.Server/Entities/SessionObjects.cs @@ -3,9 +3,9 @@ namespace MistoxWebsite.Server.Entities { 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 Receipt[]? receipts { get; set; } + public Product[]? products { get; set; } + public Cart[]? Cart { get; set; } } public class AccountClaims { diff --git a/src/MistoxWebsite.Server/Services/DatabaseService/Cart.cs b/src/MistoxWebsite.Server/Services/DatabaseService/Cart.cs index fa43567..ae2fcc1 100755 --- a/src/MistoxWebsite.Server/Services/DatabaseService/Cart.cs +++ b/src/MistoxWebsite.Server/Services/DatabaseService/Cart.cs @@ -6,7 +6,7 @@ using System.Data.Common; namespace MistoxWebsite.Server.Services.DatabaseService { public partial class DatabaseService { - public async Task> GetCart( Account account ) { + public async Task GetCart( Account account ) { List list = new List(); using( MySqlConnection connection = GetConnection() ) { connection.Open(); @@ -34,7 +34,7 @@ namespace MistoxWebsite.Server.Services.DatabaseService { } } } - return list; + return list.ToArray(); } public async Task AddToCart( Cart item ) { diff --git a/src/MistoxWebsite.Server/Services/DatabaseService/PageLoad.cs b/src/MistoxWebsite.Server/Services/DatabaseService/PageLoad.cs index 2e25d7c..2bc92f9 100755 --- a/src/MistoxWebsite.Server/Services/DatabaseService/PageLoad.cs +++ b/src/MistoxWebsite.Server/Services/DatabaseService/PageLoad.cs @@ -62,8 +62,8 @@ namespace MistoxWebsite.Server.Services.DatabaseService { } } - account.products = new List(); - account.receipts = new List(); + List tempProds = new List(); + List tempReceipt = new List(); command = @" SELECT * FROM Product @@ -76,8 +76,8 @@ namespace MistoxWebsite.Server.Services.DatabaseService { cmd2.Parameters.AddWithValue("@AccountID", AccountID); using( DbDataReader reader = await cmd2.ExecuteReaderAsync() ) { - while( await reader.ReadAsync() ) { - if( reader == null ) { + while (await reader.ReadAsync()) { + if (reader == null) { break; } @@ -93,24 +93,26 @@ namespace MistoxWebsite.Server.Services.DatabaseService { string[] _imageList = _gameImg.Split('|', StringSplitOptions.RemoveEmptyEntries); - account.products.Add( new Product { + tempProds.Add(new Product { ID = _productID, Cost = _gameCost, Description = _gameDesc, Name = _gameName, URL = _gameURL, - Images = _imageList.ToList() - } ); + Images = _imageList + }); - if( _receiptAccountID != -1 ) { - account.receipts.Add( new Receipt { + if (_receiptAccountID != -1) { + tempReceipt.Add(new Receipt { AccountID = _receiptAccountID, ProductID = _productID, ReceiptID = _receiptID, Time = _receiptTime - } ); + }); } + account.products = tempProds.ToArray(); + account.receipts = tempReceipt.ToArray(); } } } diff --git a/src/MistoxWebsite.Server/Services/DatabaseService/Product.cs b/src/MistoxWebsite.Server/Services/DatabaseService/Product.cs index b16b008..c3cd2d9 100755 --- a/src/MistoxWebsite.Server/Services/DatabaseService/Product.cs +++ b/src/MistoxWebsite.Server/Services/DatabaseService/Product.cs @@ -37,7 +37,7 @@ namespace MistoxWebsite.Server.Services.DatabaseService { Name = _name, Description = _description, Cost = _cost, - Images = _imageList.ToList(), + Images = _imageList, URL = _url }; } @@ -70,7 +70,7 @@ namespace MistoxWebsite.Server.Services.DatabaseService { Name = _name, Description = _description, Cost = _cost, - Images = _imageList.ToList(), + Images = _imageList, URL = _url } ); }