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 }); }
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); } }