internal async Task <JsonResult> Complete(TransferComplete inboundTransfer)
        {
            SqlConnection cn = null;

            try
            {
                cn = Connection.GetConnection();
                SqlCommand smd = new SqlCommand("tansfer_order_create", cn)
                {
                    CommandType = CommandType.StoredProcedure
                };
                smd.Parameters.AddWithValue("@transfer_no", inboundTransfer.TransferNo);
                smd.Parameters.AddWithValue("@created_by", inboundTransfer.CreatedBy);
                smd.Parameters.AddWithValue("@from_location", inboundTransfer.FromLocation);
                smd.Parameters.AddWithValue("@to_location", inboundTransfer.ToLocation);
                smd.Parameters.AddWithValue("@lines", ToDataTable(inboundTransfer.Lines));
                smd.Parameters.Add("@jsonOutput", SqlDbType.NVarChar, -1).Direction = ParameterDirection.Output;
                await smd.ExecuteNonQueryAsync().ConfigureAwait(false);

                string json = smd.Parameters["@jsonOutput"].Value.ToString();
                smd.Dispose();
                JArray arr = JArray.Parse(json);
                return(new JsonResult(arr));
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                Connection.CloseConnection(ref cn);
            }
        }
Example #2
0
        private bool TransferStatusCallback(int msgType, int percent, ulong bytesTransferred, uint hresult, IStream stream)
        {
            switch (msgType)
            {
            case MSG_STATUS:
                Progress?.Invoke(this, new ProgressEventArgs(percent));
                break;

            case MSG_END_STREAM:
                var wrappedStream = new NativeStreamWrapper(stream);
                if (cancel)
                {
                    wrappedStream.Dispose();
                }
                else
                {
                    PageScanned?.Invoke(this, new PageScannedEventArgs(wrappedStream));
                }
                break;

            case MSG_END_TRANSFER:
                TransferComplete?.Invoke(this, EventArgs.Empty);
                break;
            }
            return(!cancel);
        }
 public async Task <JsonResult> Complete([FromBody] TransferComplete inboundTransfer)
 {
     try
     {
         return(await _transferLogic.Complete(inboundTransfer).ConfigureAwait(false));
     }
     catch (Exception ee)
     {
         return(await _transferLogic.SendRespose("False", ee.Message).ConfigureAwait(false));
     }
 }
        public static void TransferWithCallback(String user1, String user2, TransferComplete callback,
                                                Boolean overwrite = false, Boolean deleteProfile = false,
                                                String computer   = ".", Boolean deleteAccount   = false)
        {
            BackgroundWorker bw = new BackgroundWorker();

            bw.RunWorkerCompleted += delegate(object sender, RunWorkerCompletedEventArgs e)
            {
                callback((TransferStatus)e.Result);
            };
            bw.DoWork += delegate(Object sender, DoWorkEventArgs args)
            {
                args.Result = Transfer(user1, user2, overwrite, deleteProfile, computer, deleteAccount);
            };
            bw.RunWorkerAsync();
        }
Example #5
0
        public void Transfer(double pAmount, int pFromAcctNumber, int pToAcctNumber, Guid pOrderGuid, int pCustomerId)
        {
            using (TransactionScope lScope = new TransactionScope())
                using (BankEntityModelContainer lContainer = new BankEntityModelContainer())
                {
                    try
                    {
                        Account lFromAcct = GetAccountFromNumber(pFromAcctNumber);
                        Account lToAcct   = GetAccountFromNumber(pToAcctNumber);
                        lFromAcct.Withdraw(pAmount);
                        lToAcct.Deposit(pAmount);
                        lContainer.Attach(lFromAcct);
                        lContainer.Attach(lToAcct);
                        lContainer.ObjectStateManager.ChangeObjectState(lFromAcct, System.Data.EntityState.Modified);
                        lContainer.ObjectStateManager.ChangeObjectState(lToAcct, System.Data.EntityState.Modified);

                        var lItem = new TransferComplete
                        {
                            OrderGuid  = pOrderGuid,
                            CustomerId = pCustomerId
                        };
                        var lVisitor = new TransferCompleteToTransferCompleteMessage();
                        lItem.Accept(lVisitor);
                        PublisherServiceClient lClient = new PublisherServiceClient();
                        lClient.Publish(lVisitor.Result);
                    }
                    catch (Exception lException)
                    {
                        Console.WriteLine("Error occured while transferring money:  " + lException.Message);

                        var lItem = new TransferError
                        {
                            OrderGuid = pOrderGuid
                        };
                        var lVisitor = new TransferErrorToTransferErrorMessage();
                        lItem.Accept(lVisitor);
                        PublisherServiceClient lClient = new PublisherServiceClient();
                        lClient.Publish(lVisitor.Result);
                    }

                    lContainer.SaveChanges();
                    lScope.Complete();
                }
        }
        internal async Task <JsonResult> TransferOrderInfo(TransferComplete info)
        {
            SqlConnection cn = null;

            try
            {
                cn = Connection.GetConnection();
                SqlCommand smd = new SqlCommand("[transfer_order_info]", cn)
                {
                    CommandType = CommandType.StoredProcedure
                };

                smd.Parameters.Add("@transfer_return_info_json", SqlDbType.NVarChar, -1).Direction = ParameterDirection.Output;
                smd.Parameters.Add("@address", SqlDbType.NVarChar, -1).Direction = ParameterDirection.Output;
                smd.Parameters.AddWithValue("@transfer_order_no", info.TransferNo);
                // Execute the command
                await smd.ExecuteNonQueryAsync().ConfigureAwait(false);

                // Get the values
                string sale_info = smd.Parameters["@transfer_return_info_json"].Value.ToString();
                string address   = smd.Parameters["@address"].Value.ToString();
                smd.Dispose();
                Connection.CloseConnection(ref cn);
                TransferOrderInfoResponse transferOrderInfoResponse = new TransferOrderInfoResponse();

                JArray Jaddress = JArray.Parse(address);
                transferOrderInfoResponse.TransferOrder = JArray.Parse(sale_info);
                if (Jaddress[0]["location_type"].ToString() == "from")
                {
                    transferOrderInfoResponse.FromLocation = (JObject)Jaddress[0];
                    if (Jaddress.Count > 1)
                    {
                        transferOrderInfoResponse.ToLocation = (JObject)Jaddress[1];
                    }
                    else
                    {
                        transferOrderInfoResponse.ToLocation = (JObject)Jaddress[0];
                    }
                }
                else if (Jaddress.Count > 1)
                {
                    transferOrderInfoResponse.FromLocation = (JObject)Jaddress[1];
                    transferOrderInfoResponse.ToLocation   = (JObject)Jaddress[0];
                }
                else
                {
                    transferOrderInfoResponse.FromLocation = (JObject)Jaddress[0];
                    transferOrderInfoResponse.ToLocation   = (JObject)Jaddress[0];
                }

                return(new JsonResult(transferOrderInfoResponse));
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                Connection.CloseConnection(ref cn);
            }
        }
Example #7
0
 private static void DoAction(TransferComplete action)
 {
     // action("all looks good");
 }