コード例 #1
0
        public ActionResult Payment(Guid jobAdId, JobAdFeaturePack featurePack)
        {
            var employer = CurrentEmployer;

            var jobAd = GetJobAd(employer.Id, jobAdId);

            if (jobAd == null)
            {
                return(NotFound("job ad", "id", jobAdId));
            }

            var product = _employerOrdersQuery.GetJobAdFeaturePackProduct(featurePack);

            if (product == null)
            {
                return(NotFound("feature pack", "featurePack", featurePack));
            }

            var creditCard = new CreditCard {
                ExpiryDate = GetDefaultExpiryDate()
            };
            var order = _employerOrdersCommand.PrepareOrder(new[] { product.Id }, null, null, GetCreditCardType(creditCard));

            return(View(new PaymentJobAdModel
            {
                AuthoriseCreditCard = false,
                CouponCode = null,
                CreditCard = creditCard,
                OrderDetails = _employerOrdersQuery.GetOrderDetails(_creditsQuery, order, _productsQuery.GetProducts()),
                Product = product,
            }));
        }
コード例 #2
0
        private Order AssertOrder(Guid employerId, JobAdFeaturePack featurePack)
        {
            var orders = _ordersQuery.GetOrders(employerId);

            Assert.AreEqual(1, orders.Count);
            var order = orders[0];

            Assert.AreEqual(featurePack == JobAdFeaturePack.FeaturePack1 ? 10m : 20m, order.Price);
            Assert.AreEqual(featurePack == JobAdFeaturePack.FeaturePack1 ? 11m : 22m, order.AdjustedPrice);
            Assert.AreEqual(employerId, order.OwnerId);
            Assert.AreEqual(employerId, order.PurchaserId);

            Assert.AreEqual(1, order.Adjustments.Count);
            var adjustment = order.Adjustments[0];

            Assert.AreEqual(featurePack == JobAdFeaturePack.FeaturePack1 ? 11m : 22m, adjustment.AdjustedPrice);
            Assert.AreEqual(featurePack == JobAdFeaturePack.FeaturePack1 ? 10m : 20m, adjustment.InitialPrice);

            Assert.AreEqual(1, order.Items.Count);
            var item = order.Items[0];

            Assert.AreEqual(featurePack == JobAdFeaturePack.FeaturePack1 ? 10m : 20m, item.Price);

            var product = _employerOrdersQuery.GetJobAdFeaturePackProduct(featurePack);

            Assert.AreEqual(product.Id, item.ProductId);

            return(order);
        }