Esempio n. 1
0
        public ActionResult StripePay(string tokenid, string orderid)
        {
            var order  = orderRepository.GetOrder(orderid);
            var amount = Utils.OrderUtils.GetToals(orderid);

            var service        = db.ServiceSettings.FirstOrDefault(ln => ln.Owner.ID == order.StoreUser.Id);
            var stripesettings = service.StripeSettings.FirstOrDefault();

            var orderProcessFactory = Factories.OrderProcessFactory.GetOrderProcessImplementation(service.ServiceType);

            if (StripeCharge(order.CustomerUser.Name, tokenid, amount, "eur", order.OrderIdentifier, stripesettings.SecretKey))
            {
                order.PaymentState = Enums.EnumPaymentState.IsPaid;
                order.OrderState   = Enums.EnumOrderState.ServerOrderFinished;
            }
            else
            {
                order.PaymentState = Enums.EnumPaymentState.FailedPaiment;
            }

            orderRepository.UpdateOrderState(order.OrderIdentifier, order.OrderState);
            orderRepository.UpdatePaymentState(order.OrderIdentifier, order.PaymentState);
            orderProcessFactory.ProcessOrder(order, true);

            //get process implementation - set paystate ...

            return(Json("tadaaa...", JsonRequestBehavior.AllowGet));
        }
Esempio n. 2
0
        private ViewModels.OrderViewModel _processOrderRequest(OrderDataDTO orderDTO, string group)
        {
            IOrderProcess orderProcessFactory = null;

            if (Utils.ValidationUtils.IsDangerousString(orderDTO.OrderIdentifier, out int badidx))
            {
                return new ViewModels.OrderViewModel()
                       {
                           ErrorMessage = "Invalid orderIdentifier"
                       }
            }
            ;

            var orderViewModel = orderRepository.GetOrder(orderDTO.OrderIdentifier);

            var service = db.ServiceSettings.FirstOrDefault(ln => ln.ServiceUrl == group);

            if (service == null)
            {
                return new ViewModels.OrderViewModel()
                       {
                           ErrorMessage = "could not get service..."
                       }
            }
            ;


            orderProcessFactory = Factories.OrderProcessFactory.GetOrderProcessImplementation(service.ServiceType);

            if (orderViewModel == null)
            {
                if (orderDTO.Items.Count == 0)
                {
                    return new ViewModels.OrderViewModel()
                           {
                               ErrorMessage = BaseResource.Get("NoItemsForOrder")
                           }
                }
                ;

                orderViewModel = orderProcessFactory.CheckOrder(orderDTO);
                if (!string.IsNullOrEmpty(orderViewModel.ErrorMessage))
                {
                    return(orderViewModel);
                }

                var orderItems     = orderRepository.CheckProducts(orderDTO.Items);
                var productOwnerId = orderItems.FirstOrDefault().OwnerId; // --!
                var storeUser      = userRepository.GetUser(productOwnerId);
                var customerUser   = userRepository.GetUserFromSignalR(Context.ConnectionId);

                if (storeUser == null || customerUser == null || productOwnerId == -1 || orderItems.Count == 0)
                {
                    return(new ViewModels.OrderViewModel()
                    {
                        ErrorMessage = "Invalid Order-Data...",
                    });
                }

                orderViewModel.Items        = orderItems;
                orderViewModel.CustomerUser = customerUser;
                orderViewModel.StoreUser    = storeUser;
            }

            bool isStoreUser = false;

            if (Context.User.Identity.Name == orderViewModel.StoreUser.Name)
            {
                isStoreUser = true;
            }

            orderProcessFactory = Factories.OrderProcessFactory.GetOrderProcessImplementation(Enums.EnumServiceType.OrderService);
            var orderVMResult = orderProcessFactory.ProcessOrder(orderViewModel, isStoreUser);

            orderViewModel = orderVMResult;

            return(orderViewModel);
        }