diff --git a/Libraries/Core/Controllers/RagfairController.cs b/Libraries/Core/Controllers/RagfairController.cs index b6ce988d..80f4d833 100644 --- a/Libraries/Core/Controllers/RagfairController.cs +++ b/Libraries/Core/Controllers/RagfairController.cs @@ -889,7 +889,7 @@ public class RagfairController { return new ProcessBuyTradeRequestData { - TId = "ragfair", + TransactionId = "ragfair", Action = "TradingConfirm", SchemeItems = [new ItemRequest { Id = _paymentHelper.GetCurrency(currency), Count = Math.Round(value) }], Type = "", diff --git a/Libraries/Core/Models/Eft/Trade/ProcessBaseTradeRequestData.cs b/Libraries/Core/Models/Eft/Trade/ProcessBaseTradeRequestData.cs index 9ed92be5..480acca2 100644 --- a/Libraries/Core/Models/Eft/Trade/ProcessBaseTradeRequestData.cs +++ b/Libraries/Core/Models/Eft/Trade/ProcessBaseTradeRequestData.cs @@ -1,4 +1,5 @@ using System.Text.Json.Serialization; +using Core.Models.Eft.Common.Request; using Core.Models.Eft.Inventory; namespace Core.Models.Eft.Trade; diff --git a/Libraries/Core/Models/Eft/Trade/ProcessBuyTradeRequestData.cs b/Libraries/Core/Models/Eft/Trade/ProcessBuyTradeRequestData.cs index 0f523396..a1ede812 100644 --- a/Libraries/Core/Models/Eft/Trade/ProcessBuyTradeRequestData.cs +++ b/Libraries/Core/Models/Eft/Trade/ProcessBuyTradeRequestData.cs @@ -4,15 +4,6 @@ namespace Core.Models.Eft.Trade; public record ProcessBuyTradeRequestData : ProcessBaseTradeRequestData { - [JsonPropertyName("Action")] - public string? Action { get; set; } // TODO: formerly - "buy_from_trader" | "TradingConfirm" | "RestoreHealth" | "SptInsure" | "SptRepair" | "" - - [JsonPropertyName("type")] - public string? Type { get; set; } - - [JsonPropertyName("tid")] - public string? TId { get; set; } - [JsonPropertyName("item_id")] public string? ItemId { get; set; } diff --git a/Libraries/Core/Models/Eft/Trade/ProcessSellTradeRequestData.cs b/Libraries/Core/Models/Eft/Trade/ProcessSellTradeRequestData.cs index d7f7b087..4b5bc500 100644 --- a/Libraries/Core/Models/Eft/Trade/ProcessSellTradeRequestData.cs +++ b/Libraries/Core/Models/Eft/Trade/ProcessSellTradeRequestData.cs @@ -4,12 +4,6 @@ namespace Core.Models.Eft.Trade; public record ProcessSellTradeRequestData : ProcessBaseTradeRequestData { - [JsonPropertyName("Action")] - public string? Action { get; set; } = "sell_to_trader"; - - [JsonPropertyName("type")] - public string? Type { get; set; } - [JsonPropertyName("tid")] public string? Tid { get; set; } diff --git a/Libraries/Core/Utils/Json/Converters/BaseInteractionRequestDataConverter.cs b/Libraries/Core/Utils/Json/Converters/BaseInteractionRequestDataConverter.cs index 041f903b..2bd9a2ca 100644 --- a/Libraries/Core/Utils/Json/Converters/BaseInteractionRequestDataConverter.cs +++ b/Libraries/Core/Utils/Json/Converters/BaseInteractionRequestDataConverter.cs @@ -84,7 +84,19 @@ public class BaseInteractionRequestDataConverter : JsonConverter(jsonText); case "TradingConfirm": - return JsonSerializer.Deserialize(jsonText); + { + var json = JsonSerializer.Deserialize(jsonText); + + switch (json.Type) + { + case "buy_from_trader": + return JsonSerializer.Deserialize(jsonText); + case "sell_from_trader": + return JsonSerializer.Deserialize(jsonText); + default: + throw new Exception($"Unhandled action type {value.Action}, make sure the BaseInteractionRequestDataConverter has the deserialization for this action handled."); + } + } case "RagFairBuyOffer": return JsonSerializer.Deserialize(jsonText); case "SellAllFromSavage":