From b19b44728cd1d96e0bf8c1f9fcc7302e51e64ab9 Mon Sep 17 00:00:00 2001 From: Kayori Date: Thu, 25 Sep 2025 23:54:19 +0200 Subject: [PATCH] Update to use new handler methods --- .../Handlers/LA9/ChargeEaChargeHandler.cs | 32 ++-- .../Handlers/LA9/CheckinEaChargeHandler.cs | 38 ++-- .../Handlers/LA9/CheckoutEaCharge.cs | 21 ++- .../Handlers/LA9/GetConfigEaChargeHandler.cs | 169 ++++++++++-------- .../Handlers/LA9/GetLastLogEaChargeHandler.cs | 26 +-- .../Handlers/LA9/OpCheckinEaChargeHandler.cs | 26 ++- .../Handlers/LA9/OpCheckoutEaChargeHandler.cs | 20 ++- .../Models/Request/ChargeRequest.cs | 13 ++ .../Models/Request/CheckinRequest.cs | 10 ++ .../Models/Request/CheckoutRequest.cs | 10 ++ .../Models/Request/OpCheckinRequest.cs | 10 ++ .../Models/Request/OpCheckoutRequest.cs | 10 ++ .../Models/Response/ChargeResponse.cs | 24 +++ .../Models/Response/CheckinResponse.cs | 27 +++ .../Models/Response/CheckoutResponse.cs | 11 ++ .../Models/Response/EaChargeConfigResponse.cs | 60 +++++++ .../Response/GetLastLogEaChargeResponse.cs | 21 +++ .../Models/Response/OpCheckinResponse.cs | 15 ++ .../Models/Response/OpCheckoutResponse.cs | 12 ++ 19 files changed, 395 insertions(+), 160 deletions(-) create mode 100644 MedusaPluginChargeMachine/Models/Request/ChargeRequest.cs create mode 100644 MedusaPluginChargeMachine/Models/Request/CheckinRequest.cs create mode 100644 MedusaPluginChargeMachine/Models/Request/CheckoutRequest.cs create mode 100644 MedusaPluginChargeMachine/Models/Request/OpCheckinRequest.cs create mode 100644 MedusaPluginChargeMachine/Models/Request/OpCheckoutRequest.cs create mode 100644 MedusaPluginChargeMachine/Models/Response/ChargeResponse.cs create mode 100644 MedusaPluginChargeMachine/Models/Response/CheckinResponse.cs create mode 100644 MedusaPluginChargeMachine/Models/Response/CheckoutResponse.cs create mode 100644 MedusaPluginChargeMachine/Models/Response/EaChargeConfigResponse.cs create mode 100644 MedusaPluginChargeMachine/Models/Response/GetLastLogEaChargeResponse.cs create mode 100644 MedusaPluginChargeMachine/Models/Response/OpCheckinResponse.cs create mode 100644 MedusaPluginChargeMachine/Models/Response/OpCheckoutResponse.cs diff --git a/MedusaPluginChargeMachine/Handlers/LA9/ChargeEaChargeHandler.cs b/MedusaPluginChargeMachine/Handlers/LA9/ChargeEaChargeHandler.cs index 96022c0..29b709f 100644 --- a/MedusaPluginChargeMachine/Handlers/LA9/ChargeEaChargeHandler.cs +++ b/MedusaPluginChargeMachine/Handlers/LA9/ChargeEaChargeHandler.cs @@ -1,27 +1,27 @@ using System.Xml.Linq; using Abstractions.Entities; using Abstractions.Handlers; +using Abstractions.SerializationTypes; using Abstractions.Services; +using MedusaPluginChargeMachine.Models.Request; +using MedusaPluginChargeMachine.Models.Response; using Microsoft.AspNetCore.Identity; using ISessionService = MedusaPluginChargeMachine.Services.ISessionService; namespace MedusaPluginChargeMachine.Handlers.LA9 { - public class ChargeEaChargeHandler(ICardService cardService, ISessionService sessionService, UserManager userManager, XDocument body): Handler + public class ChargeEaChargeHandler(ICardService cardService, ISessionService sessionService, UserManager userManager): Handler { public override void Configure() { Module("eacharge"); Method("charge"); } - public override async Task HandleAsync(string model) + public override async Task HandleAsync(ChargeRequest req, string model) { - var rootCall = body.Root; - var charge = rootCall?.Element("eacharge")!; - var amount = int.Parse(charge.Element("chargenum")?.Value!) * 1000; - var session = charge.Element("sessid")?.Value!; + var amount = int.Parse(req.ChargeNumber) * 1000; - var foundSession = sessionService.GetSession(session); + var foundSession = sessionService.GetSession(req.SessionId); var card = await cardService.FindByCardId(foundSession.refId)!; @@ -29,14 +29,16 @@ namespace MedusaPluginChargeMachine.Handlers.LA9 await userManager.UpdateAsync(card.User); - var balance = new XElement("balance", card.User.PaseliAmount, new XAttribute("__type", "s32")); - var chargeDailyLimit = new XElement("chargedailylimit", 100000, new XAttribute("__type", "s32")); - var chargeDaily = new XElement("chargedaily", 0, new XAttribute("__type", "s32")); - var chargepoint = new XElement("chargepoint", amount, new XAttribute("__type", "s32")); - - var eaCharge = new XElement("charge", balance, chargeDailyLimit, chargeDaily, chargepoint, new XAttribute("status", "0")); - var document = new XDocument(new XElement("response", eaCharge)); - return document; + var chargeResponse = new ChargeResponse() + { + Status = 0, + Balance = new XrpcInt(card.User.PaseliAmount), + ChargeDailyLimit = new XrpcInt(100000), + ChargeDaily = new XrpcInt(0), + ChargePoint = new XrpcInt(amount) + }; + + return chargeResponse; } } } diff --git a/MedusaPluginChargeMachine/Handlers/LA9/CheckinEaChargeHandler.cs b/MedusaPluginChargeMachine/Handlers/LA9/CheckinEaChargeHandler.cs index a6657cb..153e915 100644 --- a/MedusaPluginChargeMachine/Handlers/LA9/CheckinEaChargeHandler.cs +++ b/MedusaPluginChargeMachine/Handlers/LA9/CheckinEaChargeHandler.cs @@ -1,41 +1,39 @@ using System.Xml.Linq; using Abstractions.Handlers; +using Abstractions.SerializationTypes; using Abstractions.Services; +using MedusaPluginChargeMachine.Models.Request; +using MedusaPluginChargeMachine.Models.Response; using MedusaPluginChargeMachine.Services; namespace MedusaPluginChargeMachine.Handlers.LA9 { - public class CheckinEaChargeHandler(ISessionService sessionService, ICardService cardService, XDocument body): Handler + public class CheckinEaChargeHandler(ISessionService sessionService, ICardService cardService): Handler { - private readonly XDocument _body = body; - private readonly ISessionService _sessionService = sessionService; - private readonly ICardService _cardService = cardService; - public override void Configure() { Module("eacharge"); Method("checkin"); } - public override async Task HandleAsync(string model) + public override async Task HandleAsync(CheckinRequest req, string model) { - var rootCall = _body.Root; - var eaCharge = rootCall?.Element("eacharge")!; - var cardId = eaCharge.Element("cardid")?.Value!; + var sessionId = sessionService.AddSession(req.CardId); - var sessionId = _sessionService.AddSession(cardId); - - var card = await _cardService.FindByCardId(cardId); + var card = await cardService.FindByCardId(req.CardId); var userPaseli = card!.User.PaseliAmount; - var sessseq = new XElement("sessseq", 0, new XAttribute("__type", "s32")); - var acname = new XElement("acname", "DUMMY_NAME", new XAttribute("__type", "str")); - var balance = new XElement("balance", userPaseli, new XAttribute("__type", "s32")); - var buyablep = new XElement("buyablep", 100000, new XAttribute("__type", "s32")); - var sessionIdXElement = new XElement("sessid", sessionId, new XAttribute("__type", "str")); - var eacharge = new XElement("eacharge", sessseq, acname, balance, buyablep, sessionIdXElement, new XAttribute("status", "0")); - var document = new XDocument(new XElement("response", eacharge)); - return document; + var checkinResponse = new CheckinResponse() + { + Status = 0, + Sessseq = new XrpcInt(0), + AccountName = new XrpcString("DUMMY_NAME"), + Balance = new XrpcInt(userPaseli), + BuyablePaseli = new XrpcInt(100000), + SessionId = new XrpcString(sessionId) + }; + + return checkinResponse; } } } diff --git a/MedusaPluginChargeMachine/Handlers/LA9/CheckoutEaCharge.cs b/MedusaPluginChargeMachine/Handlers/LA9/CheckoutEaCharge.cs index e95220c..a97cd84 100644 --- a/MedusaPluginChargeMachine/Handlers/LA9/CheckoutEaCharge.cs +++ b/MedusaPluginChargeMachine/Handlers/LA9/CheckoutEaCharge.cs @@ -1,29 +1,28 @@ using System.Xml.Linq; using Abstractions.Handlers; using Abstractions.Services; +using MedusaPluginChargeMachine.Models.Request; +using MedusaPluginChargeMachine.Models.Response; using ISessionService = MedusaPluginChargeMachine.Services.ISessionService; namespace MedusaPluginChargeMachine.Handlers.LA9 { - public class CheckoutEaCharge(ISessionService sessionService, XDocument body): Handler + public class CheckoutEaCharge(ISessionService sessionService): Handler { - private readonly ISessionService _sessionService = sessionService; - private readonly XDocument _body = body; public override void Configure() { Module("eacharge"); Method("checkout"); } - public override XDocument Handle(string model) + public override CheckoutResponse Handle(CheckoutRequest req, string model) { - var eaCharge = _body.Root?.Element("eacharge")!; - var sessionId = eaCharge.Element("sessid")!.Value!; + sessionService.RemoveSession(req.SessionId); - _sessionService.RemoveSession(sessionId); - - var checkoutCharge = new XElement("eacharge", new XAttribute("status", "0")); - var document = new XDocument(new XElement("response", checkoutCharge)); - return document; + var checkoutResponse = new CheckoutResponse() + { + Status = 0 + }; + return checkoutResponse; } } } diff --git a/MedusaPluginChargeMachine/Handlers/LA9/GetConfigEaChargeHandler.cs b/MedusaPluginChargeMachine/Handlers/LA9/GetConfigEaChargeHandler.cs index 30f6064..591f1d2 100644 --- a/MedusaPluginChargeMachine/Handlers/LA9/GetConfigEaChargeHandler.cs +++ b/MedusaPluginChargeMachine/Handlers/LA9/GetConfigEaChargeHandler.cs @@ -1,95 +1,108 @@ using System.Xml.Linq; using Abstractions.Handlers; +using Abstractions.SerializationTypes; +using MedusaPluginChargeMachine.Models.Response; namespace MedusaPluginChargeMachine.Handlers.LA9 { - public class GetConfigEaChargeHandler(XDocument body): Handler + public class GetConfigEaChargeHandler: HandlerWithoutRequest { - private readonly XDocument _body = body; - public override void Configure() { Module("eacharge"); Method("getconf"); } - public override XDocument Handle(string model) + public override EaChargeConfigResponse Handle(string model) { - var articlerevision = new XElement("articlerevision", 1, new XAttribute("__type", "str")); + var eaChargeConfig = new EaChargeConfigResponse() + { + Status = 0, + Expire = 1200, + ChargeArticle = new EaChargeConfigChargeArticle() + { + ArticleRevision = new XrpcString("1"), + ArticleList = [ + new EaChargeConfigChargeArticleItem() + { + ArticleType = new XrpcString("DOCMT_0000"), + ArticleDoc = new XrpcString("") + }, + new EaChargeConfigChargeArticleItem() + { + ArticleType = new XrpcString("DOCMT_0001"), + ArticleDoc = new XrpcString("") + }, + new EaChargeConfigChargeArticleItem() + { + ArticleType = new XrpcString("DOCMT_0002"), + ArticleDoc = new XrpcString("") + }, + new EaChargeConfigChargeArticleItem() + { + ArticleType = new XrpcString("DOCMT_0003"), + ArticleDoc = new XrpcString("") + }, + new EaChargeConfigChargeArticleItem() + { + ArticleType = new XrpcString("URL_0001_A"), + ArticleDoc = new XrpcString("http://eagate.573.jp") + }, + new EaChargeConfigChargeArticleItem() + { + ArticleType = new XrpcString("URL_0001_B"), + ArticleDoc = new XrpcString("http://eagate.573.jp") + }, + new EaChargeConfigChargeArticleItem() + { + ArticleType = new XrpcString("URL_0002_A"), + ArticleDoc = new XrpcString("http://eagate.573.jp") + }, + new EaChargeConfigChargeArticleItem() + { + ArticleType = new XrpcString("URL_0002_B"), + ArticleDoc = new XrpcString("http://eagate.573.jp") + }, + new EaChargeConfigChargeArticleItem() + { + ArticleType = new XrpcString("URL_0003_A"), + ArticleDoc = new XrpcString("http://eagate.573.jp") + }, + new EaChargeConfigChargeArticleItem() + { + ArticleType = new XrpcString("URL_0003_B"), + ArticleDoc = new XrpcString("http://eagate.573.jp") + }, + new EaChargeConfigChargeArticleItem() + { + ArticleType = new XrpcString("URL_0004_A"), + ArticleDoc = new XrpcString("http://eagate.573.jp") + }, + new EaChargeConfigChargeArticleItem() + { + ArticleType = new XrpcString("URL_0041_B"), + ArticleDoc = new XrpcString("http://eagate.573.jp") + }, + new EaChargeConfigChargeArticleItem() + { + ArticleType = new XrpcString("PASELIUNIT"), + ArticleDoc = new XrpcString("P") + }, + ] + }, + ChargeDetail = new EaChargeConfigChargeDetail() + { + ChargeDaily = new XrpcInt(0), + ChargeDailyLimit = new XrpcInt(100000) + }, + ChargeStatus = new EaChargeConfigChargeStatus() + { + CurrentCode = new XrpcInt(0), + LastChargeStatus = new XrpcInt(1) + } + }; - var articletype1 = new XElement("articletype", "DOCMT_0000", new XAttribute("__type", "str")); - var articledoc1 = new XElement("articledoc", new XAttribute("__type", "str")); - var item1 = new XElement("item", articletype1, articledoc1); - - var articletype2 = new XElement("articletype", "DOCMT_0001", new XAttribute("__type", "str")); - var articledoc2 = new XElement("articledoc", new XAttribute("__type", "str")); - var item2 = new XElement("item", articletype2, articledoc2); - - var articletype3 = new XElement("articletype", "DOCMT_0002", new XAttribute("__type", "str")); - var articledoc3 = new XElement("articledoc", new XAttribute("__type", "str")); - var item3 = new XElement("item", articletype3, articledoc3); - - var articletype4 = new XElement("articletype", "DOCMT_0003", new XAttribute("__type", "str")); - var articledoc4 = new XElement("articledoc", new XAttribute("__type", "str")); - var item4 = new XElement("item", articletype4, articledoc4); - - var articletype5 = new XElement("articletype", "URL_0001_A", new XAttribute("__type", "str")); - var articledoc5 = new XElement("articledoc", "http://eagate.573.jp", new XAttribute("__type", "str")); - var item5 = new XElement("item", articletype5, articledoc5); - - var articletype6 = new XElement("articletype", "URL_0001_B", new XAttribute("__type", "str")); - var articledoc6 = new XElement("articledoc", "http://eagate.573.jp", new XAttribute("__type", "str")); - var item6 = new XElement("item", articletype6, articledoc6); - - var articletype7 = new XElement("articletype", "URL_0002_A", new XAttribute("__type", "str")); - var articledoc7 = new XElement("articledoc", "http://eagate.573.jp", new XAttribute("__type", "str")); - var item7 = new XElement("item", articletype7, articledoc7); - - var articletype8 = new XElement("articletype", "URL_0002_B", new XAttribute("__type", "str")); - var articledoc8 = new XElement("articledoc", "http://eagate.573.jp", new XAttribute("__type", "str")); - var item8 = new XElement("item", articletype8, articledoc8); - - var articletype9 = new XElement("articletype", "URL_0003_A", new XAttribute("__type", "str")); - var articledoc9 = new XElement("articledoc", "http://eagate.573.jp", new XAttribute("__type", "str")); - var item9 = new XElement("item", articletype9, articledoc9); - - var articletype10 = new XElement("articletype", "URL_0003_B", new XAttribute("__type", "str")); - var articledoc10 = new XElement("articledoc", "http://eagate.573.jp", new XAttribute("__type", "str")); - var item10 = new XElement("item", articletype10, articledoc10); - - var articletype11 = new XElement("articletype", "URL_0004_A", new XAttribute("__type", "str")); - var articledoc11 = new XElement("articledoc", "http://eagate.573.jp", new XAttribute("__type", "str")); - var item11 = new XElement("item", articletype11, articledoc11); - - var articletype12 = new XElement("articletype", "URL_0004_B", new XAttribute("__type", "str")); - var articledoc12 = new XElement("articledoc", "http://eagate.573.jp", new XAttribute("__type", "str")); - var item12 = new XElement("item", articletype12, articledoc12); - - var articletype13 = new XElement("articletype", "PASELIUNIT", new XAttribute("__type", "str")); - var articledoc13 = new XElement("articledoc", "P", new XAttribute("__type", "str")); - var item13 = new XElement("item", articletype13, articledoc13); - - var articlelist = new XElement("articlelist", item1, item2, item3, item4, item5, item6, item7, item8, item9, item10, item11, item12, item13); - var chargearticle = new XElement("chargearticle", articlerevision, articlelist); - - var chargedaily = new XElement("chargedaily", 0, new XAttribute("__type", "s32")); - var chargedailylimit = new XElement("chargedailylimit", 100000, new XAttribute("__type", "s32")); - var chargedetail = new XElement("chargedetail", chargedaily, chargedailylimit); - - var currentcode = new XElement("currentcode", 0, new XAttribute("__type", "s32")); - var lastchargestatus = new XElement("lastchargestatus", 1, new XAttribute("__type", "s32")); - var chargestatus = new XElement("chargestatus", currentcode, lastchargestatus); - - var eacharge = new XElement("eacharge", - new XAttribute("status", "0"), new XAttribute("expire", "1200"), chargearticle, chargedetail, chargestatus); - - var document = new XDocument( - new XElement("response", - eacharge - ) - ); - - return document; + return eaChargeConfig; } } } diff --git a/MedusaPluginChargeMachine/Handlers/LA9/GetLastLogEaChargeHandler.cs b/MedusaPluginChargeMachine/Handlers/LA9/GetLastLogEaChargeHandler.cs index 7e7c437..6c80444 100644 --- a/MedusaPluginChargeMachine/Handlers/LA9/GetLastLogEaChargeHandler.cs +++ b/MedusaPluginChargeMachine/Handlers/LA9/GetLastLogEaChargeHandler.cs @@ -1,9 +1,11 @@ using System.Xml.Linq; using Abstractions.Handlers; +using Abstractions.SerializationTypes; +using MedusaPluginChargeMachine.Models.Response; namespace MedusaPluginChargeMachine.Handlers.LA9; -public class GetLastLogEaChargeHandler(): Handler +public class GetLastLogEaChargeHandler : HandlerWithoutRequest { public override void Configure() { @@ -11,19 +13,17 @@ public class GetLastLogEaChargeHandler(): Handler Method("getlastlog"); } - public override XDocument Handle(string model) + public override GetLastLogEaChargeResponse Handle(string model) { - var chargedaily = new XElement("chargedaily", 0, new XAttribute("__type", "s32")); - var header = new XElement("header", chargedaily); + var getLastLog = new GetLastLogEaChargeResponse() + { + Status = 0, + Header = new GetLastLogEaChargeHeader() + { + Chargedaily = new XrpcInt(0) + } + }; - var getLastLog = new XElement("getlastlog", new XAttribute("status", "0"), header); - - var document = new XDocument( - new XElement("response", - getLastLog - ) - ); - - return document; + return getLastLog; } } \ No newline at end of file diff --git a/MedusaPluginChargeMachine/Handlers/LA9/OpCheckinEaChargeHandler.cs b/MedusaPluginChargeMachine/Handlers/LA9/OpCheckinEaChargeHandler.cs index cd4d663..c3289e0 100644 --- a/MedusaPluginChargeMachine/Handlers/LA9/OpCheckinEaChargeHandler.cs +++ b/MedusaPluginChargeMachine/Handlers/LA9/OpCheckinEaChargeHandler.cs @@ -1,10 +1,13 @@ using System.Xml.Linq; using Abstractions.Handlers; +using Abstractions.SerializationTypes; +using MedusaPluginChargeMachine.Models.Request; +using MedusaPluginChargeMachine.Models.Response; using MedusaPluginChargeMachine.Services; namespace MedusaPluginChargeMachine.Handlers.LA9; -public class OpCheckinEaChargeHandler(ISessionService sessionService, XDocument body): Handler +public class OpCheckinEaChargeHandler(ISessionService sessionService): Handler { public override void Configure() { @@ -12,21 +15,16 @@ public class OpCheckinEaChargeHandler(ISessionService sessionService, XDocument Method("opcheckin"); } - public override XDocument Handle(string model) + public override OpCheckinResponse Handle(OpCheckinRequest req, string model) { - var rootCall = body.Root; - var srcId = rootCall?.Attribute("srcid")?.Value!; - var sessionId = sessionService.AddSession(srcId); + var sessionId = sessionService.AddSession(req.SourceId); - var sessionIdXElement = new XElement("sessid", sessionId, new XAttribute("__type", "str")); - var opCheckin = new XElement("opcheckin", sessionIdXElement, new XAttribute("status", "0"), new XAttribute("expire", "1200")); + var response = new OpCheckinResponse() + { + Status = 0, + SessionId = new XrpcString(sessionId) + }; - var document = new XDocument( - new XElement("response", - opCheckin - ) - ); - - return document; + return response; } } \ No newline at end of file diff --git a/MedusaPluginChargeMachine/Handlers/LA9/OpCheckoutEaChargeHandler.cs b/MedusaPluginChargeMachine/Handlers/LA9/OpCheckoutEaChargeHandler.cs index 95d8a20..3fe244b 100644 --- a/MedusaPluginChargeMachine/Handlers/LA9/OpCheckoutEaChargeHandler.cs +++ b/MedusaPluginChargeMachine/Handlers/LA9/OpCheckoutEaChargeHandler.cs @@ -1,10 +1,12 @@ using System.Xml.Linq; using Abstractions.Handlers; +using MedusaPluginChargeMachine.Models.Request; +using MedusaPluginChargeMachine.Models.Response; using MedusaPluginChargeMachine.Services; namespace MedusaPluginChargeMachine.Handlers.LA9; -public class OpCheckoutEaChargeHandler(ISessionService sessionService, XDocument body): Handler +public class OpCheckoutEaChargeHandler(ISessionService sessionService): Handler { public override void Configure() { @@ -12,15 +14,15 @@ public class OpCheckoutEaChargeHandler(ISessionService sessionService, XDocument Method("opcheckout"); } - public override XDocument Handle(string model) + public override OpCheckoutResponse Handle(OpCheckoutRequest req, string model) { - var eaCharge = body.Root?.Element("eacharge")!; - var sessionId = eaCharge.Element("sessid")!.Value!; + sessionService.RemoveSession(req.SessionId); - sessionService.RemoveSession(sessionId); - - var checkoutCharge = new XElement("eacharge", new XAttribute("status", "0")); - var document = new XDocument(new XElement("response", checkoutCharge)); - return document; + var opCheckoutResponse = new OpCheckoutResponse() + { + Status = 0 + }; + + return opCheckoutResponse; } } \ No newline at end of file diff --git a/MedusaPluginChargeMachine/Models/Request/ChargeRequest.cs b/MedusaPluginChargeMachine/Models/Request/ChargeRequest.cs new file mode 100644 index 0000000..4c56e65 --- /dev/null +++ b/MedusaPluginChargeMachine/Models/Request/ChargeRequest.cs @@ -0,0 +1,13 @@ +using System.Xml.Serialization; + +namespace MedusaPluginChargeMachine.Models.Request; + +[XmlRoot("eacharge")] +public class ChargeRequest +{ + [XmlElement("chargenum")] + public required string ChargeNumber { get; set; } + + [XmlElement("sessid")] + public required string SessionId { get; set; } +} \ No newline at end of file diff --git a/MedusaPluginChargeMachine/Models/Request/CheckinRequest.cs b/MedusaPluginChargeMachine/Models/Request/CheckinRequest.cs new file mode 100644 index 0000000..2349070 --- /dev/null +++ b/MedusaPluginChargeMachine/Models/Request/CheckinRequest.cs @@ -0,0 +1,10 @@ +using System.Xml.Serialization; + +namespace MedusaPluginChargeMachine.Models.Request; + +[XmlRoot("eacharge")] +public class CheckinRequest +{ + [XmlElement("cardid")] + public required string CardId { get; set; } +} \ No newline at end of file diff --git a/MedusaPluginChargeMachine/Models/Request/CheckoutRequest.cs b/MedusaPluginChargeMachine/Models/Request/CheckoutRequest.cs new file mode 100644 index 0000000..767e2c1 --- /dev/null +++ b/MedusaPluginChargeMachine/Models/Request/CheckoutRequest.cs @@ -0,0 +1,10 @@ +using System.Xml.Serialization; + +namespace MedusaPluginChargeMachine.Models.Request; + +[XmlRoot("eacharge")] +public class CheckoutRequest +{ + [XmlElement("sessid")] + public required string SessionId { get; set; } +} \ No newline at end of file diff --git a/MedusaPluginChargeMachine/Models/Request/OpCheckinRequest.cs b/MedusaPluginChargeMachine/Models/Request/OpCheckinRequest.cs new file mode 100644 index 0000000..8a81639 --- /dev/null +++ b/MedusaPluginChargeMachine/Models/Request/OpCheckinRequest.cs @@ -0,0 +1,10 @@ +using System.Xml.Serialization; + +namespace MedusaPluginChargeMachine.Models.Request; + +[XmlRoot("eacharge")] +public class OpCheckinRequest +{ + [XmlElement("srcid")] + public required string SourceId { get; set; } +} \ No newline at end of file diff --git a/MedusaPluginChargeMachine/Models/Request/OpCheckoutRequest.cs b/MedusaPluginChargeMachine/Models/Request/OpCheckoutRequest.cs new file mode 100644 index 0000000..0af10d0 --- /dev/null +++ b/MedusaPluginChargeMachine/Models/Request/OpCheckoutRequest.cs @@ -0,0 +1,10 @@ +using System.Xml.Serialization; + +namespace MedusaPluginChargeMachine.Models.Request; + +[XmlRoot("eacharge")] +public class OpCheckoutRequest +{ + [XmlElement("sessid")] + public required string SessionId { get; set; } +} \ No newline at end of file diff --git a/MedusaPluginChargeMachine/Models/Response/ChargeResponse.cs b/MedusaPluginChargeMachine/Models/Response/ChargeResponse.cs new file mode 100644 index 0000000..98a1cc7 --- /dev/null +++ b/MedusaPluginChargeMachine/Models/Response/ChargeResponse.cs @@ -0,0 +1,24 @@ +using System.Xml.Serialization; +using Abstractions.SerializationTypes; + +namespace MedusaPluginChargeMachine.Models.Response; + +[XmlRoot("eacharge")] +[Serializable] +public class ChargeResponse +{ + [XmlAttribute("status")] + public required int Status { get; set; } + + [XmlElement("balance")] + public XrpcInt Balance { get; set; } + + [XmlElement("chargedailylimit")] + public XrpcInt ChargeDailyLimit { get; set; } + + [XmlElement("chargedaily")] + public XrpcInt ChargeDaily { get; set; } + + [XmlElement("chargepoint")] + public XrpcInt ChargePoint { get; set; } +} \ No newline at end of file diff --git a/MedusaPluginChargeMachine/Models/Response/CheckinResponse.cs b/MedusaPluginChargeMachine/Models/Response/CheckinResponse.cs new file mode 100644 index 0000000..ec95a8a --- /dev/null +++ b/MedusaPluginChargeMachine/Models/Response/CheckinResponse.cs @@ -0,0 +1,27 @@ +using System.Xml.Serialization; +using Abstractions.SerializationTypes; + +namespace MedusaPluginChargeMachine.Models.Response; + +[XmlRoot("eacharge")] +[Serializable] +public class CheckinResponse +{ + [XmlAttribute("status")] + public int Status { get; set; } + + [XmlElement("sessseq")] + public XrpcInt Sessseq { get; set; } + + [XmlElement("acname")] + public XrpcString AccountName { get; set; } + + [XmlElement("balance")] + public XrpcInt Balance { get; set; } + + [XmlElement("buyablep")] + public XrpcInt BuyablePaseli { get; set; } + + [XmlElement("sessid")] + public XrpcString SessionId { get; set; } +} \ No newline at end of file diff --git a/MedusaPluginChargeMachine/Models/Response/CheckoutResponse.cs b/MedusaPluginChargeMachine/Models/Response/CheckoutResponse.cs new file mode 100644 index 0000000..983392a --- /dev/null +++ b/MedusaPluginChargeMachine/Models/Response/CheckoutResponse.cs @@ -0,0 +1,11 @@ +using System.Xml.Serialization; + +namespace MedusaPluginChargeMachine.Models.Response; + +[XmlRoot("eacharge")] +[Serializable] +public class CheckoutResponse +{ + [XmlAttribute("status")] + public required int Status { get; set; } +} \ No newline at end of file diff --git a/MedusaPluginChargeMachine/Models/Response/EaChargeConfigResponse.cs b/MedusaPluginChargeMachine/Models/Response/EaChargeConfigResponse.cs new file mode 100644 index 0000000..469b75f --- /dev/null +++ b/MedusaPluginChargeMachine/Models/Response/EaChargeConfigResponse.cs @@ -0,0 +1,60 @@ +using System.Xml.Serialization; +using Abstractions.SerializationTypes; + +namespace MedusaPluginChargeMachine.Models.Response; + +[XmlRoot("eacharge")] +[Serializable] +public class EaChargeConfigResponse +{ + [XmlAttribute("status")] + public required int Status { get; set; } + + [XmlAttribute("expire")] + public required int Expire { get; set; } + + [XmlElement("chargearticle")] + public required EaChargeConfigChargeArticle ChargeArticle { get; set; } + + [XmlElement("chargedetail")] + public required EaChargeConfigChargeDetail ChargeDetail { get; set; } + + [XmlElement("chargestatus")] + public required EaChargeConfigChargeStatus ChargeStatus { get; set; } +} + +public record EaChargeConfigChargeArticle +{ + [XmlElement("articlerevision")] + public required XrpcString ArticleRevision { get; set; } + + [XmlElement("articlelist")] + public required List ArticleList { get; set; } +} + +public record EaChargeConfigChargeArticleItem +{ + [XmlElement("articletype")] + public required XrpcString ArticleType { get; set; } + + [XmlElement("articledoc")] + public required XrpcString ArticleDoc { get; set; } +} + +public record EaChargeConfigChargeDetail +{ + [XmlElement("chargedaily")] + public required XrpcInt ChargeDaily { get; set; } + + [XmlElement("chargedailylimit")] + public required XrpcInt ChargeDailyLimit { get; set; } +} + +public record EaChargeConfigChargeStatus +{ + [XmlElement("currentcode")] + public required XrpcInt CurrentCode { get; set; } + + [XmlElement("lastchargestatus")] + public required XrpcInt LastChargeStatus { get; set; } +} diff --git a/MedusaPluginChargeMachine/Models/Response/GetLastLogEaChargeResponse.cs b/MedusaPluginChargeMachine/Models/Response/GetLastLogEaChargeResponse.cs new file mode 100644 index 0000000..af82c64 --- /dev/null +++ b/MedusaPluginChargeMachine/Models/Response/GetLastLogEaChargeResponse.cs @@ -0,0 +1,21 @@ +using System.Xml.Serialization; +using Abstractions.SerializationTypes; + +namespace MedusaPluginChargeMachine.Models.Response; + +[XmlRoot("getlastlog")] +[Serializable] +public class GetLastLogEaChargeResponse +{ + [XmlAttribute("status")] + public int Status { get; set; } + + [XmlElement("header")] + public required GetLastLogEaChargeHeader Header { get; set; } +} + +public record GetLastLogEaChargeHeader +{ + [XmlElement("chargedaily")] + public XrpcInt Chargedaily { get; set; } +} \ No newline at end of file diff --git a/MedusaPluginChargeMachine/Models/Response/OpCheckinResponse.cs b/MedusaPluginChargeMachine/Models/Response/OpCheckinResponse.cs new file mode 100644 index 0000000..9f0d636 --- /dev/null +++ b/MedusaPluginChargeMachine/Models/Response/OpCheckinResponse.cs @@ -0,0 +1,15 @@ +using System.Xml.Serialization; +using Abstractions.SerializationTypes; + +namespace MedusaPluginChargeMachine.Models.Response; + +[XmlRoot("eacharge")] +[Serializable] +public class OpCheckinResponse +{ + [XmlAttribute("status")] + public required int Status { get; set; } + + [XmlElement("sessid")] + public required XrpcString SessionId { get; set; } +} \ No newline at end of file diff --git a/MedusaPluginChargeMachine/Models/Response/OpCheckoutResponse.cs b/MedusaPluginChargeMachine/Models/Response/OpCheckoutResponse.cs new file mode 100644 index 0000000..35b0bd7 --- /dev/null +++ b/MedusaPluginChargeMachine/Models/Response/OpCheckoutResponse.cs @@ -0,0 +1,12 @@ +using System.Xml.Serialization; +using Abstractions.SerializationTypes; + +namespace MedusaPluginChargeMachine.Models.Response; + +[XmlRoot("eacharge")] +[Serializable] +public class OpCheckoutResponse +{ + [XmlAttribute("status")] + public required int Status { get; set; } +} \ No newline at end of file