Пример #1
0
        static void Main(string[] args)
        {
            var builder = new ContainerBuilder();

            builder.RegisterModule <TEK.Order.DataAccess.ModuleResolution>();
            builder.RegisterModule <TEK.TaxCalculation.Engine.ModuleResolution>();
            builder.RegisterModule <TEK.Purchase.Manager.ModuleResolution>();

            var container = builder.Build();

            IStoreDefinitionDataAccess   storeDefinitionService   = container.Resolve <IStoreDefinitionDataAccess>();
            ICountryDefinitionDataAccess countryDefinitionService = container.Resolve <ICountryDefinitionDataAccess>();
            ICartService cartService = container.Resolve <ICartService>();

            Country        storeCountry  = countryDefinitionService.GetCountry();
            List <Product> storeProducts = storeDefinitionService.GetStoreProducts();

            #region Input/Output 1
            List <Product> selectedProductsForOutput1 = storeProducts.Where(x => new string[] { "book", "music CD", "chocolate bar" }.Contains(x.Name)).ToList();

            CheckoutScenario(cartService, selectedProductsForOutput1);
            #endregion

            #region Input/Output 2
            List <Product> selectedProductsForOutput2 = storeProducts.Where(x =>
                                                                            (x.Name == "box of chocolates" && x.UnitPrice == 10M) ||
                                                                            (x.Name == "bottle of perfume" && x.UnitPrice == 47.50M))
                                                        .ToList();

            CheckoutScenario(cartService, selectedProductsForOutput2);
            #endregion

            #region Input/Output 3
            List <Product> selectedProductsForOutput3 = storeProducts.Where(x =>
                                                                            (x.Name == "bottle of perfume" && x.UnitPrice == 27.99M) ||
                                                                            (x.Name == "bottle of perfume" && x.UnitPrice == 18.99M) ||
                                                                            (x.Name == "packet of headache pills") ||
                                                                            (x.Name == "box of chocolates" && x.UnitPrice == 11.25M))
                                                        .ToList();

            CheckoutScenario(cartService, selectedProductsForOutput3);
            #endregion

            System.Console.ReadLine();
        }
Пример #2
0
 public BasicTaxSpecification(ICountryDefinitionDataAccess countryDefinitionService)
 {
     _countryDefinitionService = countryDefinitionService;
     TaxType = TaxType.BasicSalesTax;
 }
Пример #3
0
 public TaxCalculatorService(ICountryDefinitionDataAccess countryDefinitionService, IEnumerable <ISpecification <Product> > taxSpecifications)
 {
     _countryDefinitionService = countryDefinitionService;
     _taxSpecifications        = taxSpecifications;
 }
Пример #4
0
 public CartService(ITaxCalculatorService taxCalculatorDataAccess, ICountryDefinitionDataAccess countryDefinitionDataAccess, ICartItemDataAccess cartItemDataAccess)
 {
     _taxCalculatorDataAccess     = taxCalculatorDataAccess;
     _countryDefinitionDataAccess = countryDefinitionDataAccess;
     _cartItemDataAccess          = cartItemDataAccess;
 }
 public ImportTaxSpecification(ICountryDefinitionDataAccess countryDefinitionService)
 {
     _countryDefinitionService = countryDefinitionService;
     TaxType = TaxType.ImportSalesTax;
 }