public void Execute(CreateSaleModel model)
        {
            var date = _dateService.GetDate();

            var customer = _respositories
                           .GetCustomer(model.CustomerId);

            var employee = _respositories
                           .GetEmployee(model.EmployeeId);

            var product = _respositories
                          .GetProduct(model.ProductId);

            var quantity = model.Quantity;

            var sale = _factory.Create(
                date,
                customer,
                employee,
                product,
                quantity);

            _respositories.AddSale(sale);

            _unitOfWork.Save();

            _inventory.NotifySaleOcurred(product.Id, quantity);
        }
Beispiel #2
0
        public void Execute(CreateSaleModel model)
        {
            var date = _dateService.GetDate();

            var customer = _database.Customers
                           .Single(p => p.Id == model.CustomerId);

            var employee = _database.Employees
                           .Single(p => p.Id == model.EmployeeId);

            var product = _database.Products
                          .Single(p => p.Id == model.ProductId);

            var quantity = model.Quantity;

            var sale = _factory.Create(
                date,
                customer,
                employee,
                product,
                quantity);

            _database.Sales.Add(sale);

            _database.Save();

            _inventory.NotifySaleOcurred(product.Id, quantity);
        }
Beispiel #3
0
        public void Execute(CreateSaleModel model)
        {
            var date     = _dateService.GetDate();
            var partner  = _partnersRepository.Get(model.PartnerId);
            var customer = _customerRepository.Get(model.CustomerId);
            var products = new List <Product>();

            foreach (var productId in model.ProductIdsQuantities.Keys)
            {
                var product = _productRepository.Get(productId);
                products.Add(product);
            }

            var newSale = _saleFactory.Create(date, customer,
                                              partner, products, model.ProductIdsQuantities);

            _salesRepository.Add(newSale);

            _salesRepository.Save();
        }