public ReceiptCheck CheckReceipt(string token, Receipt receipt, string appClientId)
        {
            var request = new CheckTicketRequest
            {
                GeoInfo = new GeoInfo
                {
                    Latitude  = 1.0,
                    Longitude = 1.0
                },
                CheckTicketInfo = new CheckTicketInfo
                {
                    TypeOperation    = receipt.Operation,
                    FiscalDocumentId = receipt.Fp.Trim(),
                    Fn         = receipt.Fn.Trim(),
                    FiscalSign = receipt.Fd.Trim(),
                    Date       = receipt.Date.ToReceiptDate(),
                    Sum        = receipt.Sum.ToReceiptAmount()
                }
            };

            var result = new ReceiptCheckResult();

            XNamespace tns = "urn://x-artefacts-gnivc-ru/ais3/kkt/KktTicketService/types/1.0";

            var xmlResponse = _openApiClient.SendMessage(token, request, appClientId);
            var response    = XDocument.Parse(xmlResponse);

            result.Code = response.Descendants(tns + "Code")
                          .Select(x => x.Value)
                          .FirstOrDefault();

            result.Message = response.Descendants(tns + "Message")
                             .Select(x => x.Value)
                             .FirstOrDefault();

            return(new ReceiptCheck
            {
                IsOk = result.Code == "200",
                Message = result.Message
            });
        }
Beispiel #2
0
 private void HandleCheckTicketRequest(CheckTicketRequest mes)
 {
     try
     {
         lock (passengerToFlight)
         {
             var hasTicket = passengerToFlight.TryGetValue(mes.PassengerId, out var flightId) &&
                             flightId == mes.FlightId;
             Console.WriteLine($"Check passenger {mes.PassengerId} ticket for flight {mes.FlightId}: {hasTicket}");
             mqClient.Send(
                 CashboxToRegistrationQueue,
                 new CheckTicketResponse()
             {
                 PassengerId = mes.PassengerId,
                 HasTicket   = hasTicket
             }
                 );
         }
     } catch (Exception e)
     {
         Console.WriteLine(e);
     }
 }