Пример #1
0
 public PaymentController(IConfiguration config, IWebHostEnvironment webHostEnvironment, IHttpContextAccessor httpContextAccessor) : base(config, webHostEnvironment, httpContextAccessor)
 {
     _PaymentRepo = new PaymentRepo(ConnString);
     _WorkRepo    = new WorkRepo(ConnString);
     _JobRepo     = new JobRepo(ConnString);
     _LookupRepo  = new LookupRepo(ConnString);
 }
Пример #2
0
 public WorkController(IConfiguration config, IWebHostEnvironment webHostEnvironment, IHttpContextAccessor httpContextAccessor) : base(config, webHostEnvironment, httpContextAccessor)
 {
     _WorkRepo    = new WorkRepo(ConnString);
     _PaymentRepo = new PaymentRepo(ConnString);
     _JobRepo     = new JobRepo(ConnString);
     _AppUserRepo = new AppUserRepo(ConnString);
 }
Пример #3
0
        protected void gvOrders_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            Order order = (Order)e.Row.DataItem;

            if (order != null)
            {
                OrderStatu orderStatus = new OrderStatusRepo().GetById(ToSQL.SQLToInt(order.OrderStatus_ID));
                if (orderStatus != null)
                {
                    e.Row.Cells[2].Text = orderStatus.Name;//order stat
                }
                Customer customer = new CustomerRepo().GetById(ToSQL.SQLToInt(order.Customer_ID));
                if (customer != null)
                {
                    e.Row.Cells[3].Text = customer.FirstName;//customer nam
                }
                Model.Payment payment = new PaymentRepo().GetById(ToSQL.SQLToInt(order.Payment_ID));
                if (payment != null)
                {
                    e.Row.Cells[4].Text = payment.Name;//payment method
                }
                ShippingAddress shippingAddress = new ShippingAddressRepo().GetById(ToSQL.SQLToInt(order.ShippingAddress_ID));
                if (shippingAddress != null)
                {
                    e.Row.Cells[5].Text = shippingAddress.Name;//Recipient's Name
                    e.Row.Cells[6].Text = shippingAddress.Phone;
                    string strAddress = new AddressRepo().GetToString(shippingAddress.Address);
                    e.Row.Cells[7].Text    = new AddressRepo().ShortString(strAddress);
                    e.Row.Cells[7].ToolTip = strAddress;
                }
            }
        }
Пример #4
0
 public PaymentController()
 {
     _PaymentRepo = new PaymentRepo(ConnString);
     _WorkRepo    = new WorkRepo(ConnString);
     _JobRepo     = new JobRepo(ConnString);
     _LookupRepo  = new LookupRepo(ConnString);
 }
        public PaymentResult TransferMoney(Payment payment)
        {
            //Check customer
            Customer customer = customerIntegator.GetCustomer(payment.CustomerId);

            if (customer == null)
            {
                return(ProvideErrorResult(CUSTOMER_NOT_FOUND));
            }

            //Check credit account
            Account creditAccount = accountIntegrator.GetAccount(payment.CreditAccount);

            if (creditAccount == null)
            {
                return(ProvideErrorResult(CREDIT_ACC_NOT_FOUND));
            }

            if (!creditAccount.IsOpen)
            {
                return(ProvideErrorResult(CREDIT_ACC_CLOSED));
            }

            //Check debit account status
            Account debitAccount = accountIntegrator.GetAccount(payment.DebitAccount);

            if (debitAccount == null)
            {
                return(ProvideErrorResult(DEBIT_ACC_NOT_FOUND));
            }

            if (debitAccount.CustomerId != customer.CustomerId)
            {
                return(ProvideErrorResult(DEBIT_ACC_NOT_OWNED));
            }

            if (!debitAccount.IsOpen)
            {
                return(ProvideErrorResult(DEBIT_ACC_CLOSED));
            }

            //Calculate fee
            Fee fee = feeCalculator.CalculateFee(customer);

            //Check balance
            if (debitAccount.Balance < (payment.Amount + fee.FeeAmount))
            {
                return(ProvideErrorResult(BALANCE_NOT_AVAILABLE));
            }

            //Persist payment
            PaymentRepo paymentRepo = new PaymentRepo();

            paymentRepo.Insert(payment);

            return(new PaymentResult {
                IsSuccessful = true
            });
        }
 public CompleteOrder()
 {
     customerRepo      = new CustomerRepo();
     paymentRepo       = new PaymentRepo();
     addProductToOrder = new AddProductToOrder();
     getCustomerList   = new GetCustomerList();
     invoiceRepo       = new InvoiceRepo();
 }
Пример #7
0
        public IActionResult ChargeBack(string Id)
        {
            var payment = PaymentRepo.Get(User.GetUserId(), Id);

            if (payment != null)
            {
                PaymentRepo.Delete(payment);
            }
            return(this.RedirectToAction("PaymentHistory"));
        }
        public bool MakePayment(Payment_Entity p)
        {
            PaymentRepo repo = new PaymentRepo();

            if (IsValidEntity(p))
            {
                return(repo.makePayment(p));
            }
            return(false);
        }
Пример #9
0
        public IActionResult Buy(string Id)
        {
            var movie = MovieRepo.Get(Id);

            if (movie == null)
            {
                return(NotFound());
            }
            var userPayments = PaymentRepo.Get(User.GetUserId());

            if (userPayments.FirstOrDefault(f => f.MovieId == movie.Id) == null)
            {
                BuyItem(movie);
            }
            return(this.RedirectToAction("PaymentHistory"));
        }
Пример #10
0
        public void BuyItem(Movie movie)
        {
            PaymentHistory newPayment = new PaymentHistory();

            newPayment.MovieId      = movie.Id;
            newPayment.UserId       = User.GetUserId();
            newPayment.PaidUsdPrice = movie.UsdPrice;
            PaymentRepo.Add(newPayment);
            var InBaskets = BasketRepo.Get(User.GetUserId());

            if (InBaskets.UserBasket.Ids.Contains(movie.Id))
            {
                InBaskets.UserBasket.Ids.Remove(movie.Id);
                InBaskets.UserBasket = InBaskets.UserBasket;
                BasketRepo.SaveChanges();
            }
            PaymentRepo.SaveChanges();
        }
Пример #11
0
        /// <summary>
        /// Finds a payment from the payment Id
        /// </summary>
        /// <param name="paymentId"></param>
        /// <returns></returns>
        public Payment GetPayment(Guid paymentId)
        {
            var paymentRequest = new Payment {
                PaymentId = paymentId
            };

            try
            {
                Log.LogInformation($"Looking for Payment: {paymentRequest.PaymentId}");
                paymentRequest = PaymentRepo.GetPayment(paymentId);
                Log.LogDebug($"Payment found: {paymentRequest.PaymentId}");
                return(paymentRequest);
            }
            catch (Exception ex)
            {
                Log.LogError(ex, $"Failed to get payment request: { paymentRequest }");
                paymentRequest.Message = ex.Message;
                return(paymentRequest);
            }
        }
Пример #12
0
 protected void Page_Load(object sender, EventArgs e)
 {
     if (Session["Order"] != null)
     {
         Order order = (Order)Session["Order"];
         if (order.ShippingAddress != null)
         {
             lbFullName.Text        = ToSQL.EmptyNull(order.ShippingAddress.Name);
             lbEmail.Text           = ToSQL.EmptyNull(order.ShippingAddress.Email);
             lbPhone.Text           = ToSQL.EmptyNull(order.ShippingAddress.Phone);
             lbShippingAddress.Text = new AddressRepo().GetToString(order.ShippingAddress.Address);
         }
         lbOrderID.Text     = ToSQL.EmptyNull(order.ID);
         lbDateCreated.Text = ToSQL.EmptyNull(order.DateCreated.ToShortDateString());
         Model.Payment payment = new PaymentRepo().GetById(order.Payment_ID);
         lbPaymentType.Text = ToSQL.EmptyNull(payment.Name);
     }
     if (Session["Subtotal"] != null)
     {
         lbTotalPrice.Text = ToSQL.EmptyNull(Session["Subtotal"]);
     }
 }
Пример #13
0
        /// <summary>
        /// This method validates and stores requests and payment information
        /// </summary>
        /// <param name="paymentRequest"></param>
        /// <returns></returns>
        public Payment ProcessPayment(Payment paymentRequest)
        {
            try
            {
                Log.LogInformation($"Getting User Id for payment {paymentRequest.PaymentId}");
                paymentRequest.User = PaymentRepo.AddUser(paymentRequest.User);

                Log.LogInformation($"Getting Card Id for payment {paymentRequest.PaymentId}");
                paymentRequest.Card = PaymentRepo.AddCard(paymentRequest.Card, paymentRequest.User.Id);

                Log.LogInformation($"Creating Payment: {paymentRequest.PaymentId}");
                paymentRequest = PaymentRepo.StorePayment(paymentRequest);

                //If the request already exists return duplicate
                if (paymentRequest.Status == PaymentStatus.DuplicateRequest)
                {
                    return(paymentRequest);
                }

                Log.LogInformation($"Sending payment: {paymentRequest.PaymentId} to bank : {paymentRequest.RecievingBankName}");
                paymentRequest = BankApi[paymentRequest.RecievingBankName].SendPayment(paymentRequest);


                Log.LogInformation($"Updating Payment: {paymentRequest.PaymentId} with banks response");
                PaymentRepo.UpdatePayment(paymentRequest);

                return(paymentRequest);
            }
            catch (Exception ex)
            {
                Log.LogError(ex, $"Failed to process payment request: { paymentRequest }");
                paymentRequest.Status       = PaymentStatus.RequestFailed;
                paymentRequest.IsSuccessful = false;
                paymentRequest.Message      = ex.Message;
                return(paymentRequest);
            }
        }
Пример #14
0
        static void Main(string[] args)
        {
            CreateAnAccount   createAnAccount = new CreateAnAccount();
            GetCustomerList   getCustomerList = new GetCustomerList();
            CreatePayment     createPayment   = new CreatePayment();
            AddProductToOrder addProduct      = new AddProductToOrder();
            CompleteOrder     completeOrder   = new CompleteOrder();

            Console.WriteLine(@"
                         **************************
                      ********************************
                    ************ SHUFFLEPUFF ***********
                    ************* BANGAZON *************
                      ********************************
                         **************************"
                              );
START:
            Console.WriteLine(@" 1. Create an Account" + Environment.NewLine + " 2. Choose Active Customer" + Environment.NewLine + " 3. Create Payment Option" + Environment.NewLine + " 4. Search for Products" + Environment.NewLine + " 5. Complete Order" + Environment.NewLine + " 6. See Product Popularity" + Environment.NewLine + " 7. Leave Shufflepuff Bangazon"
                              );


            string userCommand = Console.ReadKey(true).KeyChar.ToString();

            switch (userCommand)
            {
            case "1":
                Console.Clear();
                var savedToDatabase = createAnAccount.CreateNewAccount();
                Debug.WriteLine(savedToDatabase);
                Console.Clear();
                goto START;

            case "2":
                Console.WriteLine("Choose Active Customer");
                getCustomerList.DisplayCustomerList();
                Console.Clear();
                goto START;

            case "3":
                Console.Clear();
                var paymentSavedToDatabase = createPayment.SelectPaymentType();
                Debug.WriteLine(paymentSavedToDatabase);
                Console.Clear();
                goto START;

            case "4":
                Console.WriteLine("Choose Product");
                addProduct.DisplayProductList();
                Console.Clear();
                //Console.WriteLine(addProduct.SelectedProductId);
                List <Product> productIdList = addProduct.GetProducts();
                foreach (Product item in productIdList)
                {
                    Console.WriteLine(item);
                }
                Console.ReadLine();

                goto START;
            ////product search
            //ProductRepo repo = new ProductRepo();

            //var products = repo.GetProducts();

            //foreach (Product product in products)
            //{
            //    Console.WriteLine(product.ProductId + ". " + product.Name + " " + product.Price);
            //}
            //break;
            case "5":
                //complete order
                if (completeOrder.DetermineIfOrderContainsProducts())
                {
                    if (completeOrder.DetermineIfReadyToPurchase())
                    {
                        completeOrder.ChoosePaymentMethod();
                    }
                }
                else
                {
                    Console.WriteLine("Please add products to your order.  Press any key to continue.");
                    Console.Clear();
                }
                goto START;

            case "6":
                //product popularity
                PaymentRepo repo = new PaymentRepo();

                var payments = repo.GetPayments(getCustomerList.GetSelectedUserId());

                foreach (var payment in payments)
                {
                    Console.WriteLine(payment.Type + ". " + payment.AccountNumber);
                }
                goto START;

            case "7":
                Console.WriteLine("See Ya!");
                Environment.Exit(0);
                break;

            default:
                Console.WriteLine("Please select a valid option...");
                break;
            }
        }
Пример #15
0
        public IActionResult PaymentHistory()
        {
            var userPayments = PaymentRepo.Get(User.GetUserId());

            return(View(userPayments));
        }
 public CreatePayment()
 {
     paymentRepo = new PaymentRepo();
     payment     = new Payment();
 }
Пример #17
0
 public WorkController()
 {
     _WorkRepo    = new WorkRepo(ConnString);
     _PaymentRepo = new PaymentRepo(ConnString);
     _LookupRepo  = new LookupRepo(ConnString);
 }