示例#1
0
        private async Task CreateNewBlockchainFlight(I2B_Request request)
        {
            BigInteger?nonce = null;

            if (_blockchain_settings.transaction_fire_and_forget)
            {
                nonce = _web3geth_service.BlockchainManager.GetMainAccountNonceForRawTransaction;
            }

            CreateFlight create_flight = JsonConvert.DeserializeObject <CreateFlight>(request.task.payload);
            string       tx_hash       = await _web3geth_service.Flight.CreateAsync(
                task_uuid : request.task_uuid,
                flight_id : create_flight.ufid.ToString(),
                pid : create_flight.pid.ToString(),
                ufid : create_flight.ufid.ToString(),
                flight_code : create_flight.flight_code,
                fs_flight_code : create_flight.fs_flight_code,
                departure_utc_offset_hours : create_flight.departure_utc_offset_hours.ToString(),
                arrival_utc_offset_hours : create_flight.arrival_utc_offset_hours.ToString(),
                departure_airport : create_flight.departure_airport,
                arrival_airport : create_flight.arrival_airport,
                scheduled_departure_date : create_flight.scheduled_departure_date.ToString(),
                scheduled_departure_date_time : create_flight.scheduled_departure_date_time.ToString(),
                scheduled_departure_date_time_local : create_flight.scheduled_departure_date_time_local.ToString(),
                scheduled_arrival_date_time : create_flight.scheduled_arrival_date_time.ToString(),
                scheduled_arrival_date_time_local : create_flight.scheduled_departure_date_time_local.ToString(),
                nonce : nonce);

            if (_blockchain_settings.transaction_fire_and_forget)
            {
                // check transaction is pending
                await MakeSureTransactionIsPending(tx_hash);

                var fire_and_forget = BackgroundWaitTransactionResult(tx_hash, request);
            }
            else
            {
                await BackgroundWaitTransactionResult(tx_hash, request);
            }
        }
示例#2
0
 public async Task <IActionResult> Post(CreateFlight command)
 => await SendAsync <CreateFlight>(command.BindId(cmd => cmd.Id),
                                   resourceId : command.Id, resource : "flights");