示例#1
0
        public IActionResult CalculateRebate([FromBody] OrderDto newOrder)
        {
            if (newOrder == null)
            {
                return(BadRequest());
            }

            Customer selectedCustomer = _customerRepository.GetEntity(newOrder.CustomerId);
            Product  selectedProduct  = _productRepository.GetEntity(newOrder.ProductId);

            if (selectedCustomer == null)
            {
                return(BadRequest(ModelState));
            }

            if (selectedProduct == null)
            {
                return(BadRequest(ModelState));
            }

            // Here we should use a Mapper between two similar or almost similar models. For the moment it's done by hand.
            Domain.Products.Product mappedProduct = new Domain.Products.Product()
            {
                Id     = selectedProduct.Id,
                Name   = selectedProduct.Name,
                Price  = selectedProduct.Price,
                OnSale = selectedProduct.OnSale
            };

            Domain.Customers.Customer mappedCustomer = new Domain.Customers.Customer()
            {
                Id                  = selectedProduct.Id,
                Name                = selectedProduct.Name,
                IsPremium           = selectedCustomer.IsPremium,
                DateOfFirstPurchase = selectedCustomer.DateOfFirstPurchase
            };

            Order order = new Order()
            {
                Product   = mappedProduct,
                Customer  = mappedCustomer,
                Quantity  = newOrder.Quantity,
                UnitPrice = mappedProduct.Price
            };

            var resultDiscount = _discountCalculator.CalculateDiscountPercentage(order);
            var returnedValue  = new JsonResult(resultDiscount);

            // return new JsonResult(resultDiscount)

            return(Ok(resultDiscount));
        }
示例#2
0
 protected override void Establish_context()
 {
     base.Establish_context();
     _product = Data.Products.LastOrDefault();
 }
 public void Edit(Domain.Products.Product entity)
 {
     this.db.GetCollection <Product>("Product")
     .ReplaceOne(x => x.Id == entity.Id, entity);
 }
 protected override void Establish_context()
 {
     base.Establish_context();
     _product = Data.Products.LastOrDefault();
 }
 public void Add(Domain.Products.Product entity)
 {
     this.db.GetCollection <Product>("Product").InsertOne(entity);
 }