private static void Main(string[] args)
        {
            // Declare credentials to be used with the Stage Transaction Request
            string credentialsName   = "TEST MERCHANT";
            string credentialsSiteID = "XXXXXXXX";
            string credentialsKey    = "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX";

            // Build Transport request details
            Console.WriteLine("Staging Transaction{0}", Environment.NewLine);
            TransportServiceSoapClient transportServiceSoapClient = new TransportServiceSoapClient();
            TransportRequest           transportRequest           = new TransportRequest
            {
                TransactionType = "sale",
                Amount          = 1.01M,
                ClerkId         = "1",
                OrderNumber     = "1126",
                Dba             = "Test DBA",
                SoftwareName    = "Test Software",
                SoftwareVersion = "1.0",
                TransactionId   = "102911",
                TerminalId      = "01",
                PoNumber        = "PO12345",
                ForceDuplicate  = true,
            };

            // Stage Transaction
            TransportResponse transportResponse = transportServiceSoapClient.CreateTransaction(credentialsName, credentialsSiteID, credentialsKey, transportRequest);
            string            transportKey      = transportResponse.TransportKey;

            Console.WriteLine("TransportKey Received = {0}{1}", transportKey, Environment.NewLine);

            // Close application
            Console.WriteLine("Press Any Key to Close");
            Console.ReadKey();
        }
示例#2
0
        public async Task <IHttpActionResult> AssignJob([FromBody] AsssignJobRequest request)
        {
            try
            {
                var pickUp   = new AddressDetail(request.PickupAddress);
                var delivery = new AddressDetail(request.DeliveryAddress);

                var newJob = new TransportRequest(pickUp, delivery)
                {
                    DeliveryDate          = DateTime.Now,
                    PreferredDeliveryTime = StaticTransportRequest.DeliveryTime.Morning
                };

                var response = await _transportManagementService.AddTransportRequest(newJob);

                if (response.IsValid == false)
                {
                    return(Ok(new ApiBadRequestResponse(400, response.Errors)));
                }


                return(Ok(new ApiOkResponse(response.Object, response.Object != null ? 1 : 0)));
            }
            catch (Exception ex)
            {
                //Log here
                return(BadRequest());
            }
        }
示例#3
0
        private static void Main(string[] args)
        {
            // Declare credentials to be used with the Stage Transaction Request
            string credentialsName   = "TEST MERCHANT";
            string credentialsSiteID = "XXXXXXXX";
            string credentialsKey    = "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX";
            string ipAddress         = "192.168.0.123";

            // Build Transport request details
            Console.WriteLine("Staging Transaction{0}", Environment.NewLine);
            TransportServiceSoapClient transportServiceSoapClient = new TransportServiceSoapClient();
            TransportRequest           transportRequest           = new TransportRequest
            {
                TransactionType = "sale",
                Amount          = 1.01M,
                ClerkId         = "1",
                OrderNumber     = "1126",
                Dba             = "Test DBA",
                SoftwareName    = "Test Software",
                SoftwareVersion = "1.0",
                TransactionId   = "102911",
                TerminalId      = "01",
                PoNumber        = "PO12345",
                ForceDuplicate  = true,
            };

            // Stage Transaction
            TransportResponse transportResponse = transportServiceSoapClient.CreateTransaction(credentialsName, credentialsSiteID, credentialsKey, transportRequest);
            string            transportKey      = transportResponse.TransportKey;

            Console.WriteLine("TransportKey Received = {0}{1}", transportKey, Environment.NewLine);

            // Initiate transaction with TransportKey
            WebRequest webReq = WebRequest.Create($"http://{ipAddress}:8080/v2/pos?TransportKey={transportKey}&Format=XML");

            using (WebResponse webResp = webReq.GetResponse())
            {
                using (Stream responseStream = webResp.GetResponseStream())
                {
                    // Validate XML to Genius XSD class
                    StreamReader      streamReader      = new StreamReader(responseStream);
                    XmlSerializer     xmlSerializer     = new XmlSerializer(typeof(TransactionResult));
                    TransactionResult transactionResult = (TransactionResult)xmlSerializer.Deserialize(streamReader);
                    Console.WriteLine("Transaction Result: {0}", transactionResult.Status);
                    Console.WriteLine("Amount: {0}", transactionResult.AmountApproved);
                    Console.WriteLine("AuthCode: {0}", transactionResult.AuthorizationCode);
                    Console.WriteLine("Token: {0}", transactionResult.Token);
                    Console.WriteLine("Account Number: {0}", transactionResult.AccountNumber);
                }
            }

            // Close application
            Console.WriteLine("Press Any Key to Close");
            Console.ReadKey();
        }
        private static void Main(string[] args)
        {
            // Declare credentials to be used with the Stage Transaction Request
            string credentialsName   = "TEST MERCHANT";
            string credentialsSiteID = "XXXXXXXX";
            string credentialsKey    = "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX";
            string ipAddress         = "192.168.0.123";

            // Build Transport request details
            Console.WriteLine("Staging Transaction{0}", Environment.NewLine);
            TransportServiceSoapClient transportServiceSoapClient = new TransportServiceSoapClient();
            TransportRequest           transportRequest           = new TransportRequest
            {
                TransactionType = "sale",
                Amount          = 1.01M,
                ClerkId         = "1",
                OrderNumber     = "1126",
                Dba             = "Test DBA",
                SoftwareName    = "Test Software",
                SoftwareVersion = "1.0",
                TransactionId   = "102911",
                TerminalId      = "01",
                PoNumber        = "PO12345",
                ForceDuplicate  = true,
            };

            // Stage Transaction
            TransportResponse transportResponse = transportServiceSoapClient.CreateTransaction(credentialsName, credentialsSiteID, credentialsKey, transportRequest);
            string            transportKey      = transportResponse.TransportKey;

            Console.WriteLine("TransportKey Received = {0}{1}", transportKey, Environment.NewLine);
            // Initiate transaction thread with received TransportKey
            Task <object> transactionResultTask = GeniusRequest($"http://{ipAddress}:8080/v2/pos?TransportKey={transportKey}&Format=XML", typeof(TransactionResult));

            // Wait 5 seconds
            Console.WriteLine("Waiting 5 seconds before canceling transaction");
            Thread.Sleep(5000);
            CancelResult cancelResult = (CancelResult)GeniusRequest($"http://{ipAddress}:8080/pos?Action=Cancel&Format=XML", typeof(CancelResult)).Result;

            Console.WriteLine("Cancel Result: {0}", cancelResult.Status);
            // Wait for Transaction Results then output
            transactionResultTask.Wait();
            TransactionResult transactionResult = (TransactionResult)transactionResultTask.Result;

            Console.WriteLine("Transaction Result: {0}", transactionResult.Status);
            Console.WriteLine("Amount: {0}", transactionResult.AmountApproved);
            Console.WriteLine("AuthCode: {0}", transactionResult.AuthorizationCode);
            Console.WriteLine("Token: {0}", transactionResult.Token);
            Console.WriteLine("Account Number: {0}", transactionResult.AccountNumber);

            // Close application
            Console.WriteLine("Press Any Key to Close");
            Console.ReadKey();
        }
示例#5
0
        public void transportRequest(int c2s_transportId, Action <PomeloException, TransportResponse> cb, object option = null)
        {
            var request = new TransportRequest();

            request.c2s_transportId = c2s_transportId;
            _socket.request <TransportResponse>(request, (object msg, out int s2c_code, out string s2c_msg) => {
                var rsp  = msg as TransportResponse;
                s2c_code = rsp.s2c_code;
                s2c_msg  = rsp.s2c_msg;
                return(s2c_code == 200);
            }, cb, option);
        }
示例#6
0
        // Methods
        public ResultPromise <TransportResponse> Send(TransportRequest request)
        {
            #region Contracts

            if (request == null)
            {
                throw new ArgumentNullException();
            }

            #endregion

            // Send
            throw new NotImplementedException();
        }
示例#7
0
        private bool IsAllowAnonymous(TransportRequest request)
        {
            #region Contracts

            if (request == null)
            {
                throw new ArgumentNullException();
            }

            #endregion

            // Require
            if (request.Headers.ContainsKey(AllowAnonymousHeaderKey) == true)
            {
                if (request.Headers[AllowAnonymousHeaderKey] == "true")
                {
                    return(true);
                }
            }

            // Return
            return(false);
        }
        public async Task <EntityValidationResult <TransportRequest> > AddTransportRequest(TransportRequest data)
        {
            try
            {
                var result           = new EntityValidationResult <TransportRequest>();
                var validationResult = _validator.Validate(data);

                result.IsValid = validationResult.IsValid;
                result.Object  = data;

                if (validationResult.IsValid)
                {
                    data.Id = Guid.NewGuid();

                    _transportRequestRepository.Create(data);
                    await _transportRequestRepository.SaveAsync();
                }
                else
                {
                    result.Errors = validationResult.Errors.Select(x => new EntityValidationFailure {
                        PropertyName = x.PropertyName, ErrorMessage = x.ErrorMessage
                    }).ToList();
                }

                return(result);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
示例#9
0
        // Methods
        public override ResultPromise <TransportResponse> Send(TransportRequest request)
        {
            #region Contracts

            if (request == null)
            {
                throw new ArgumentNullException();
            }

            #endregion

            // Result
            ResultPromise <TransportResponse> promise = new ResultPromise <TransportResponse>();

            // IsAuthenticated
            if (_identityContext.CurrentUser.IsAuthenticated() == false)
            {
                if (this.IsAllowAnonymous(request) == false)
                {
                    // Reject
                    promise.Reject(new UnauthorizedException());

                    // Return
                    return(promise);
                }
            }

            // Send
            base.Send(request)

            // Success
            .Then(delegate(TransportResponse response)
            {
                // Resolve
                promise.Resolve(response);
            })

            // Fail
            .Fail(delegate(Exception error)
            {
                try
                {
                    // Require
                    if (error is UnauthorizedException)
                    {
                        if (this.IsAllowAnonymous(request) == true)
                        {
                            error = new Exception(error.Message);
                        }
                    }

                    // Reject
                    promise.Reject(error);

                    // Notify
                    if (error is UnauthorizedException)
                    {
                        this.OnUnauthorized();
                    }
                }
                catch (Exception ex)
                {
                    // Reject
                    promise.Reject(ex);
                }
            });

            // Return
            return(promise);
        }
示例#10
0
        static void Main(string[] args)
        {
            GeniusMethods gMethods = new GeniusMethods();
            //Ask user to input MerchantWARE Credentials
            //Console.WriteLine("Enter MerchantWARE credentials - Name, SiteID, Key" + Environment.NewLine);
            //Console.WriteLine("Press Enter after each value" + Environment.NewLine);

            //Declare credentials entered as String, to be used with the Stage Transaction Request
            string credentialsName   = "mltest";                        //Console.ReadLine();
            string credentialsSiteID = "11111111";                      // Console.ReadLine();
            string credentialsKey    = "11111-11111-11111-11111-11111"; //Console.ReadLine();

            //Console.WriteLine("" + Environment.NewLine);

            //Request for TransportKey
            Console.WriteLine("Staging Transaction" + Environment.NewLine);
            TransportServiceSoapClient TransportSoap = new TransportServiceSoapClient();
            TransportRequest           TransportReq  = new TransportRequest();
            TransportResponse          TransportRes  = new TransportResponse();

            //TransportRequest Object Parameters
            TransportReq.TransactionType = "sale";
            TransportReq.Amount          = 1.01M;
            TransportReq.ClerkId         = "1";
            TransportReq.OrderNumber     = "1126";
            TransportReq.Dba             = "Test DBA";
            TransportReq.SoftwareName    = "Test Software";
            TransportReq.SoftwareVersion = "1.0";
            TransportReq.TransactionId   = "102911";
            TransportReq.TerminalId      = "01";
            TransportReq.PoNumber        = "PO12345";
            TransportReq.ForceDuplicate  = true;

            //Stage Transaction Request Parameters
            TransportRes = TransportSoap.CreateTransaction(credentialsName, credentialsSiteID, credentialsKey, TransportReq);

            //Receive TransportKey, Declare as String, display TransportKey on-screen
            string TPKey = TransportRes.TransportKey;

            Console.WriteLine("TransportKey Received = " + TPKey + Environment.NewLine);

            //Ask user to input IP Address of Genius
            Console.WriteLine("Enter Genius IP Address and press Enter" + Environment.NewLine);
            string ipAddress = Console.ReadLine();

            Console.WriteLine(lineBreak);

            //Initiate transaction
            GeniusThreader(ipAddress, TPKey, "TransportKey", "XML");
            Thread.Sleep(200);
            GeniusThreader(ipAddress, "", "Status", "XML");
            Thread.Sleep(200);
            GeniusThreader(ipAddress, "", "Status", "XML");

            //Default function to status
            string function = "status";

            //Start loop for additional functions
            while (true)
            {
                //Request function from user. Escape the loop on a blank input
                function = Console.ReadLine();
                if (function != "")
                {
                    GeniusThreader(ipAddress, TPKey, function, "XML");
                }
                else
                {
                    break;
                }
            }

            //Close application
            Console.WriteLine("Press Enter to Close");
            Console.ReadKey();
        }