예제 #1
0
        public async Task <IActionResult> TestPostTransaction()
        {
            client.BaseAddress = new Uri("http://localhost:64195/");
            client.DefaultRequestHeaders.Accept.Clear();
            client.DefaultRequestHeaders.Accept.Add(
                new MediaTypeWithQualityHeaderValue("application/json"));

            try
            {
                TransactionPost transaction = new TransactionPost
                {
                    TransactionAmount = 1.00,
                    UserID            = 1,
                    MerchantID        = 1
                };

                string json    = JsonConvert.SerializeObject(transaction);
                var    content = new StringContent(json.ToString(), Encoding.UTF8, "application/json");
                var    result  = client.PostAsync(client.BaseAddress, content).Result;

                TempData["Message"] = "Test Passed.";
                return(RedirectToAction("Index", "Home"));
            }

            catch
            {
                TempData["Message"] = "Test Failed.";
                return(RedirectToAction("Index", "Home"));
            }
        }
예제 #2
0
        public async Task CreateTransactionAsync(string categoryName, TransactionPost transaction)
        {
            var userId = GetUserId();

            ValidationHelper.ValidateCategoryName(categoryName);

            if (transaction == null)
            {
                throw new ValidationErrorException("Transaction must be specified.");
            }
            Validator.CheckIsValid(transaction);

            var utcNow = Time.UtcNow;

            using (var persistence = Container.Get <IPersistenceService>())
            {
                var dbCategory = await GetCategoryAsync(persistence, userId, categoryName);

                var dbTransaction =
                    new Transaction
                {
                    CategoryId = dbCategory.CategoryId,
                    Id         = Guid.NewGuid(),
                    USD        = transaction.Usd,
                    Date       = transaction.Date.Date,
                    Comment    = transaction.Comment,
                    CreateDate = utcNow,
                    ChangeDate = utcNow
                };

                persistence.GetEntitySet <Transaction>().Add(dbTransaction);
                await persistence.SaveChangesAsync();
            }
        }
예제 #3
0
 public Transaction Post([FromBody][Required] TransactionPost transaction)
 {
     if (ModelState.IsValid)
     {
         return(Blockchain.AddNewTransaction(Util.Hash.HashString(transaction.Sender), Util.Hash.HashString(transaction.Recipient), transaction.Amount));
     }
     else
     {
         throw new HttpResponseException(HttpStatusCode.BadRequest);
     }
 }
예제 #4
0
        public TransactionGet Post(TransactionPost post)
        {
            var transactionDTO = new TransactionDTO(post);

            if (transactionDTO == null)
            {
                return(null);
            }

            m_Context.Transactions.Add(transactionDTO);
            m_Context.SaveChanges();

            return(new TransactionGet(m_Context, transactionDTO));
        }
예제 #5
0
        public bool PostTxn(TransactionPost txn)
        {
            SqlCommand cmd = new SqlCommand
                                 ("INSERT INTO Transactions (TransactionDateTime, TransactionAmount, UserID, MerchantID) OUTPUT INSERTED.TransactionsID VALUES(GETDATE(), @txnamt, @userid, @merchantid)", conn);

            cmd.Parameters.AddWithValue("@txnamt", txn.TransactionAmount);
            cmd.Parameters.AddWithValue("@userid", txn.UserID);
            cmd.Parameters.AddWithValue("@merchantid", txn.MerchantID);
            conn.Open();
            int TransactionsID = (int)(cmd.ExecuteScalar());

            conn.Close();

            return(true);
        }
예제 #6
0
        public object PostTransaction([FromBody] TransactionPost transaction)
        {
            bool otherstatus = ApiContext.DeductUser(transaction.UserID, transaction.TransactionAmount);

            if (otherstatus == true)
            {
                bool status           = ApiContext.PostTxn(transaction);
                bool otherotherstatus = ApiContext.CreditMerchant(transaction.MerchantID, transaction.TransactionAmount);
                return(Ok());
            }

            else
            {
                return(Unauthorized());
            }
        }
예제 #7
0
        public TransactionGet Put(TransactionPost post)
        {
            var transactionDTO = m_Context.GetTransaction(post.ID);

            if (transactionDTO == null)
            {
                return(null);
            }

            transactionDTO.CopyFrom(post);

            m_Context.Entry(transactionDTO).State = EntityState.Modified;

            m_Context.SaveChanges();

            return(new TransactionGet(m_Context, transactionDTO));
        }
        public void SaveTransaction()
        {
            TransactionPost transactionPost = new TransactionPost
            {
                CustomerID          = m_TransactionSession.GetCustomer().ID,
                TransactionDateTime = DateTime.Now,
                TotalPrice          = double.Parse(m_TransactionSession.amountDue),
                TotalTax            = double.Parse(m_TransactionSession.totalTax)
            };
            string productIds      = string.Empty;
            string productQuantity = string.Empty;
            string buyingPrices    = string.Empty;
            string discounts       = string.Empty;

            foreach (var entry in m_TransactionSession.GetRowEntries())
            {
                var product = entry.Product;
                productIds      += product.ID + ",";
                productQuantity += entry.Quantity + ",";
                buyingPrices    += product.RetailPrice + ",";
                discounts       += product.Discount + ",";
            }

            //Removing last comma
            transactionPost.ProductIDs      = productIds.Substring(0, productIds.Length - 1);
            transactionPost.ProductQuantity = productQuantity.Substring(0, productQuantity.Length - 1);
            transactionPost.BuyingPrices    = buyingPrices.Substring(0, buyingPrices.Length - 1);
            transactionPost.Discounts       = discounts.Substring(0, discounts.Length - 1);

            var transaction = DataService.GetTransactionDataController().Post(transactionPost);

            UpdateCustomerDetails();
            UpdateStockDetails();

            // fire new transaction added event
            Event_NewEntryAdded e = new Event_NewEntryAdded(DBEntityType.TRANSACTION, transaction.ID);

            EventBroadcaster.Get().BroadcastEvent(e);
        }
 public TransactionDTO(TransactionPost transactionPOST)
     : base(transactionPOST)
 {
 }
예제 #10
0
        public async Task <HttpResponseMessage> CreateTransactionAsync([FromUri] string category, [FromBody] TransactionPost transaction)
        {
            return(await ExecuteAsync(async() =>
            {
                var transactionService = Container.Get <ITransactionService>();

                await transactionService.CreateTransactionAsync(category, transaction);

                return new Information {
                    Message = "Transaction created."
                };
            }));
        }