示例#1
0
        private int SaveOrderAndEmail(CheckoutDetailsModel checkoutDetailsModel, IShoppingCart shoppingCart)
        {
            var orderBuilder = new OrderBuilder(shoppingCart, authentication, mapper);
            var orderdto = orderBuilder.Build(checkoutDetailsModel);

            var orderNumber = orderRepository.Save(orderdto);

            if (orderNumber > 0)
            {
                var cartItemBuilder = new CartItemViewModelBuilder(jewelRepository, diamondRepository, mapper);
                var emailTemplateBuilder = new OrderConfirmationEmailTemplateViewModelBuilder(orderNumber.ToString(),
                                                                                              checkoutDetailsModel,
                                                                                              shoppingCart,
                                                                                              cartItemBuilder);

                var emailTemplateViewModel = emailTemplateBuilder.Build();
                mailer.OrderConfirmation(checkoutDetailsModel.Email, emailTemplateViewModel).Send();
            }

            return orderNumber;
        }
        private OrderConfirmationEmailTemplateViewModelBuilder CreateDefaultOrderConfirmationEmailTemplateViewModelBuilder(
            string orderNumber, CheckoutDetailsModel model)
        {
            var shoppingCart = FakeFactory.ShoppingCartWith3Items();

            var jewelRepostory = new FakeJewelRepository(new FakeSettingManager());
            var diamondRepository = new FakeDiamondRepository(mapper);
            var cartItemBuilder = new CartItemViewModelBuilder(jewelRepostory, diamondRepository, mapper);

            var builder = new OrderConfirmationEmailTemplateViewModelBuilder(orderNumber, model, shoppingCart, cartItemBuilder);
            return builder;
        }