public IHttpActionResult AcceptPayments(string id) { DataAccess.Merchant merchant; Models.AcceptPayment acceptPayment = new Models.AcceptPayment(); // Retrieve User and Merchant account id's from database using (DataAccess.CodeDuoTestEntities entities = new DataAccess.CodeDuoTestEntities()) { int idint = int.Parse(id); merchant = entities.Merchants.FirstOrDefault(m => m.Id == idint); } if (merchant == null) { acceptPayment.CanAccept = "false"; } acceptPayment.CanAccept = "true"; return(Ok(acceptPayment)); }
public IHttpActionResult GetAccountBalance(string id, string currency) { DataAccess.User user; // Retrieve User and Merchant account id's from database using (DataAccess.CodeDuoTestEntities entities = new DataAccess.CodeDuoTestEntities()) { int idint = int.Parse(id); user = entities.Users.FirstOrDefault(e => e.Id == idint); } double rate = 1; Models.AccountBalance accountBalance = new Models.AccountBalance(); switch (currency) { case "EUR": accountBalance = DataAccess.bocApi.GetAccountBalance(user.AccountId, "5710bba5d42604e4072d1e92"); break; case "BTC": accountBalance = DataAccess.bocApi.GetAccountBalance(user.AccountId, "5710bba5d42604e4072d1e92"); accountBalance.currency = "BTC"; rate = DataAccess.bitCoinAPI.GetBitCoinRate(); accountBalance.balance = accountBalance.balance / rate; break; default: break; } if (accountBalance == null) { return(NotFound()); } return(Ok(accountBalance)); }
public IHttpActionResult GetTransactions(int id) { // double amount = 12; //string reference = "testrransfer"; List <DataAccess.GetTransactionListByUserId_Result> transactions; int userId = id; // Retrieve User and Merchant account id's from database using (DataAccess.CodeDuoTestEntities entities = new DataAccess.CodeDuoTestEntities()) { transactions = entities.GetTransactionListByUserId(userId).ToList(); } // var accountBalance = DataAccess.bocApi.GetAccountBalance(id, "5710bba5d42604e4072d1e92"); if (transactions == null) { return(NotFound()); } return(Ok(transactions)); }
public IHttpActionResult GetTransfer(string id, string merchantid, double amount, string reference, string currency) { // double amount = 12; //string reference = "testrransfer"; DataAccess.User user; DataAccess.Merchant merchant; // Retrieve User and Merchant account id's from database using (DataAccess.CodeDuoTestEntities entities = new DataAccess.CodeDuoTestEntities()) { int idint = int.Parse(id); int merchid = int.Parse(merchantid); user = entities.Users.FirstOrDefault(e => e.Id == idint); merchant = entities.Merchants.FirstOrDefault(m => m.Id == merchid); } string fromaccountid = user.AccountId; //"e863600a86656f979d646e83"; string toaccountid = merchant.AccountId; //"e863600a86656f979d646e83"; var transfer = new Models.Transfer(); switch (currency) { case "EUR": transfer = DataAccess.bocApi.Transfer(fromaccountid, toaccountid, amount, reference); break; case "BTC": transfer = DataAccess.bitCoinAPI.MakeCryptoTransfer(fromaccountid, toaccountid, amount, reference); break; default: break; } // var accountBalance = DataAccess.bocApi.GetAccountBalance(id, "5710bba5d42604e4072d1e92"); if (transfer == null) { return(NotFound()); } //Store Transaction details in SQL database // insert using (DataAccess.CodeDuoTestEntities entities = new DataAccess.CodeDuoTestEntities()) { DataAccess.Transaction newTransaction = new DataAccess.Transaction(); newTransaction.Amount = (decimal)amount; newTransaction.CreatedDate = DateTime.Now; newTransaction.Currency = currency; newTransaction.FromAccountId = user.IBAN; newTransaction.MerchantId = merchant.Id; newTransaction.MerchantReference = reference; newTransaction.Status = transfer.status; newTransaction.ToAccountId = merchant.IBAN; newTransaction.UserId = user.Id; if (currency == "BTC") { newTransaction.FromAccountId = ""; newTransaction.ToAccountId = ""; } var customers = entities.Transactions.Add(newTransaction); entities.SaveChanges(); } if (transfer.status == "COMPLETED") { transfer.status = "SUCCESS"; } else { transfer.status = "FAILED"; } return(Ok(transfer)); }