public TEntity Add(TEntity obj)
        {
            var entidade = _dbContext.Set <TEntity>().Add(obj).Entity;

            _dbContext.SaveChanges();
            return(entidade);
        }
        public ActionResult Create([Bind(Include = "Id,MerchantName")] Merchant merchant)
        {
            if (ModelState.IsValid)
            {
                db.Merchant.Add(merchant);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(merchant));
        }
Beispiel #3
0
        public ActionResult Create([Bind(Include = "Id,BankName,CreaditCardSequence")] Bank bank)
        {
            if (ModelState.IsValid)
            {
                db.Bank.Add(bank);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(bank));
        }
Beispiel #4
0
        public ActionResult Create([Bind(Include = "Id,CreaditCardNo,CreaditCardCCV,CreaditCardName,ExpiaryDate,Amount,RequestTime,IPAddress,MarchantId")] Request request)
        {
            if (ModelState.IsValid)
            {
                db.Request.Add(request);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            ViewBag.MarchantId = new SelectList(db.Merchant, "Id", "MerchantName", request.MarchantId);
            return(View(request));
        }
Beispiel #5
0
        public ActionResult Create([Bind(Include = "Id,status,MessageDetails,RespondTime,RequestId")] Responce responce)
        {
            if (ModelState.IsValid)
            {
                db.Responce.Add(responce);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            ViewBag.RequestId = new SelectList(db.Request, "Id", "CreaditCardNo", responce.RequestId);
            return(View(responce));
        }
        public ActionResult Create([Bind(Include = "Id,Amount,TransactionTime,BankId,ResponceId")] Transaction transaction)
        {
            if (ModelState.IsValid)
            {
                db.Transaction.Add(transaction);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            ViewBag.BankId     = new SelectList(db.Bank, "Id", "BankName", transaction.BankId);
            ViewBag.ResponceId = new SelectList(db.Responce, "Id", "status", transaction.ResponceId);
            return(View(transaction));
        }
        public ActionResult <Merchant> PostMerchant(MerchantRepresenter merchantRepresenter)
        {
            var merchant = new Merchant();

            merchant.Name   = merchantRepresenter.Name;
            merchant.Active = merchantRepresenter.Active;

            _context.Merchants.Add(merchant);
            _context.SaveChanges();

            return(CreatedAtAction("GetMerchant", new Merchant {
                Id = merchant.Id
            }, merchant));
        }
Beispiel #8
0
        public ActionResult <Bank> PostBank(BankRepresenter bankRepresenter)
        {
            var bank = new Bank();

            bank.Name   = bankRepresenter.Name;
            bank.Active = bankRepresenter.Active;

            _context.Banks.Add(bank);
            _context.SaveChanges();

            return(CreatedAtAction("GetBank", new Bank {
                Id = bank.Id
            }, bank));
        }
        public IActionResult approval(int UserId)
        {
            var AccessToken = Request.Headers["Access-token"].ToString();
            var AdminId     = _db.LoginTokens.Where(s => s.Token == AccessToken).Select(p => p.UserId).SingleOrDefault();

            if (AdminId != null)
            {
                if (_db.Users.Any(s => s.Id == AdminId && s.UserTypeId == 1))
                {
                    var user = _db.Users.SingleOrDefault(s => s.Id == UserId && s.UserTypeId == 2);
                    if (user != null)
                    {
                        var BusniessProfile = _db.BusinessProfile.Where(s => s.UserId == UserId).SingleOrDefault();
                        if (string.IsNullOrEmpty(BusniessProfile.Pdf))
                        {
                            return(BadRequest(BusniessUserNotComplete));
                        }

                        user.AdminApproval = true;
                        _db.SaveChanges();

                        return(Ok(new Response
                        {
                            ResponseCode = 0,
                            ResponseMessage = "Approved",
                            ResponseResults = true
                        }));
                    }
                }
            }

            return(Unauthorized(notAuthorized));
        }
Beispiel #10
0
        /// <summary>
        /// Inserts a new payment entry
        /// </summary>
        /// <param name="payment">The payment</param>
        /// <returns>A payment with the identifier</returns>
        public Payment InsertPayment(Payment payment)
        {
            Payment newPayment = _context.Add(payment).Entity;

            _context.SaveChanges();

            return(newPayment);
        }
 /// <inheritdoc />
 public void SavePaymentInfo(PaymentInfo objectToSave)
 {
     using (var context = new PaymentGatewayContext(ConnectionString))
     {
         context.PaymentsInfo.Add(objectToSave);
         context.SaveChanges();
     }
 }
Beispiel #12
0
        /// <summary>
        /// Inserts a new card entry
        /// </summary>
        /// <param name="card">The card</param>
        /// <returns>The card with the identifier</returns>
        public Card InsertCard(Card card)
        {
            Card newCard = _context.Card.Add(card).Entity;

            _context.SaveChanges();

            return(newCard);
        }
        public bool addTransaction(Users user, Models.API.Requests.Transaction request)
        {
            if (user.CreditBalance < decimal.Parse(request.TransactionAmount))
            {
                return(false);
            }

            var TransactionId = "Trans-" + Guid.NewGuid().ToString().Substring(6);
            var transaction   = new Transaction
            {
                TransactionId     = TransactionId,
                TransactionAmount = decimal.Parse(request.TransactionAmount),
                TransactionName   = request.TransactionName,
                TransactionTypeId = 1,
                UserId            = user.Id
            };

            _db.Transaction.Add(transaction);
            user.CreditBalance -= decimal.Parse(request.TransactionAmount);
            _db.SaveChanges();
            return(true);
        }
        public ActionResult <Transaction> ProcessTransaction(TransactionRepresenter transactionRepresenter)
        {
            var transaction = new Transaction();

            transaction.MerchantId  = transactionRepresenter.MerchantId;
            transaction.BankId      = transactionRepresenter.BankId;
            transaction.Currency    = transactionRepresenter.Currency;
            transaction.CardType    = transactionRepresenter.CardType;
            transaction.CardNumber  = transactionRepresenter.CardNumber;
            transaction.NameOnCard  = transactionRepresenter.NameOnCard;
            transaction.ExpiryMonth = transactionRepresenter.ExpiryMonth;
            transaction.ExpiryYear  = transactionRepresenter.ExpiryYear;
            transaction.CVV         = transactionRepresenter.CVV;
            transaction.Amount      = transactionRepresenter.Amount;

            var merchant = _context.Merchants.Find(transaction.MerchantId);
            var bank     = _context.Banks.Find(transaction.BankId);

            if (merchant is null)
            {
                return(NotFound("Merchant not found!"));
            }

            if (bank is null)
            {
                return(NotFound("Bank not found!"));
            }

            var mockBank = new MockBank();

            mockBank.CardType    = transaction.CardType;
            mockBank.CardNumber  = transaction.CardNumber;
            mockBank.NameOnCard  = transaction.NameOnCard;
            mockBank.ExpiryMonth = transaction.ExpiryMonth;
            mockBank.ExpiryYear  = transaction.ExpiryYear;
            mockBank.CVV         = transaction.CVV;
            mockBank.Amount      = transaction.Amount;

            var bankresponse = new BankResponse();

            bankresponse = MockBankController.ProcessTransaction(mockBank);

            transaction.BankResponseId = bankresponse.Id;
            transaction.BankResponse   = bankresponse.Response;
            transaction.Status         = bankresponse.Status;

            _context.Transactions.Add(transaction);
            _context.SaveChanges();

            return(transaction);
        }
        public IActionResult post(Login request)
        {
            try
            {
                if (request == null || string.IsNullOrEmpty(request.Password) || string.IsNullOrEmpty(request.UserName))
                {
                    throw new ArgumentException("Missing parametter");
                }

                var returnedUser = _db.Users.Where(s => s.UserName.Equals(request.UserName)).SingleOrDefault();

                if (returnedUser.UserTypeId != 1 && !returnedUser.AdminApproval)
                {
                    return(Unauthorized(notAuthorized));
                }

                if (returnedUser.UserName.Equals(request.UserName) && returnedUser.Password.Equals(request.Password))
                {
                    var token = Guid.NewGuid();
                    _db.LoginTokens.Add(new LoginTokens
                    {
                        Token           = token.ToString(),
                        TokenExpiration = DateTime.Now.AddMonths(1),
                        UserId          = returnedUser.Id
                    });
                    _db.SaveChanges();

                    response = new Response
                    {
                        ResponseCode    = 0,
                        ResponseMessage = "Success Login",
                        ResponseResults = token
                    };
                    return(Ok(response));
                }
                return(Unauthorized(notAuthorized));
            }
            catch (ArgumentException e)
            {
                badRequest.ResponseMessage = e.Message;
                return(BadRequest(badRequest));
            }
            catch
            {
                return(BadRequest(badRequest));
            }
        }
        public async Task TestGetPaymentByID_IDFound()
        {
            // create mock version
            var mockUserService         = new Mock <IUserService>();
            var mockHttpContextAccessor = new Mock <IHttpContextAccessor>();
            var options = new DbContextOptionsBuilder <PaymentGatewayContext>()
                          .UseInMemoryDatabase(databaseName: "TestDatabase").Options;

            // Insert data into the database
            var dbContext  = new PaymentGatewayContext(options);
            var paymentId1 = Guid.NewGuid().ToString();
            var paymentId2 = Guid.NewGuid().ToString();
            var paymentId3 = Guid.NewGuid().ToString();

            dbContext.PaymentItems.Add(new Payment()
            {
                ID = paymentId1, Amount = 32, UserID = "TestUserID", CreditCardNumber = "1234561234561234", CVV = 657, Currency = "EURO", ExpirationDate = new DateTime(2020, 12, 1), IsPaymentSuccessful = true
            });
            dbContext.PaymentItems.Add(new Payment()
            {
                ID = paymentId2, Amount = 500, UserID = "TestUserID", CreditCardNumber = "1234561234561235", CVV = 123, Currency = "SHEKEL", ExpirationDate = new DateTime(2025, 5, 1), IsPaymentSuccessful = false
            });
            dbContext.PaymentItems.Add(new Payment()
            {
                ID = paymentId3, Amount = 421, UserID = "Test2UserID", CreditCardNumber = "1234561234561236", CVV = 789, Currency = "DOLLAR", ExpirationDate = new DateTime(2021, 2, 13), IsPaymentSuccessful = true
            });
            dbContext.SaveChanges();

            mockHttpContextAccessor.Setup(_ => _.HttpContext.User.Identity.Name).Returns("testMerchantID - doesnt matter");
            mockUserService.Setup(x => x.GetUserIdFromToken(It.IsAny <string>())).Returns("TestUserID");

            var service    = new PaymentService(dbContext, null, mockUserService.Object, null, mockHttpContextAccessor.Object);
            var paymentDTO = await service.GetPaymentByID(paymentId1);

            Assert.AreEqual(paymentDTO.ID, paymentId1);
            Assert.AreEqual(paymentDTO.Amount, 32);
            Assert.AreEqual(paymentDTO.IsPaymentSuccessful, true);
            Assert.AreEqual(paymentDTO.ExpirationDate, new DateTime(2020, 12, 1));
            Assert.AreEqual(paymentDTO.MaskedCardNumber, "1234 56XX XXXX 1234");
            Assert.AreEqual(paymentDTO.Currency, "EURO");
        }
        public IActionResult Create(User request)
        {
            try
            {
                if (request == null || !double.TryParse(request.CreditBalance, out _) || string.IsNullOrEmpty(request.Password) ||
                    string.IsNullOrEmpty(request.UserName) || string.IsNullOrEmpty(request.UserType) || !int.TryParse(request.UserType, out _))
                {
                    throw new ArgumentException("Missing Parameter");
                }

                if (int.Parse(request.UserType) == 2 && (string.IsNullOrEmpty(request.ContactName) || string.IsNullOrEmpty(request.ContactPhone) ||
                                                         string.IsNullOrEmpty(request.BusinessType) || !int.TryParse(request.UserType, out _)))
                {
                    throw new ArgumentException("Missing Parameter, User Type is Business, you must send Contact Name, Contact Phone");
                }

                if (_db.Users.Any(s => s.UserName == request.UserName))
                {
                    return(Conflict(conflict));
                }

                if (request.UserType.Equals("1"))
                {
                    return(Unauthorized(notAuthorized));
                }

                var NewUser = new Users
                {
                    UserName      = request.UserName,
                    Password      = request.Password,
                    UserTypeId    = int.Parse(request.UserType),
                    CreditBalance = decimal.Parse(request.CreditBalance)
                };

                _db.Users.Add(NewUser);
                if (NewUser.UserTypeId == 2)
                {
                    _db.BusinessProfile.Add(new BusinessProfile
                    {
                        ContactName    = request.ContactName,
                        ContactPhone   = request.ContactPhone,
                        BusinessTypeId = int.Parse(request.BusinessType),
                        User           = NewUser
                    });
                }

                _db.SaveChanges();

                response = new Response
                {
                    ResponseCode    = 0,
                    ResponseMessage = "User Created",
                    ResponseResults = "Id: " + NewUser.Id
                };
                return(Ok(response));
            }
            catch (ArgumentException e)
            {
                return(BadRequest(new Response
                {
                    ResponseCode = -2,
                    ResponseMessage = e.Message,
                    ResponseResults = false
                }));
            }
            catch
            {
                return(BadRequest(new Response
                {
                    ResponseCode = -2,
                    ResponseMessage = "Bad Request",
                    ResponseResults = false
                }));
            }
        }