using Medusa.Core.Attributes; using Medusa.Core.Services; using System.Xml.Linq; namespace Medusa.Core.Handlers.Common.Card { [Handler("cardmng", "getrefid")] public class GetRefIdCardManagmentHandler(ICardService cardService, XDocument body) : IHandler { private readonly XDocument _body = body; private readonly ICardService _cardService = cardService; public Task HandleAsync(string model) { var rootCall = _body.Root; var cardManagement = rootCall?.Element("cardmng"); if(cardManagement != null) { var cardId = cardManagement.Attribute("cardid")?.Value; var password = cardManagement.Attribute("passwd")?.Value; var konamiId = _cardService.ConvertUidToKonamiId(cardId); InquireCardManagmentHandler.CardIds.Add((konamiId, cardId, password)); } var getRefId = new XElement("cardmng", new XAttribute("status", "0"), new XAttribute("refid", "675678776"), new XAttribute("dataid", "87656787")); var document = new XDocument(new XElement("response", getRefId)); return Task.FromResult(document); } } }