示例#1
0
 public decimal CalculateDiscount(Order order)
 {
     if (canDiscountStrategy.CanDiscount(order))
     {
         return(discountStrategy.CalculateDiscount(order));
     }
     else
     {
         return(0);
     }
 }
示例#2
0
 public decimal CalculateDiscount(Order order)
 {
     //1.Predykat
     if (discountStrategy.CanDiscount(order))
     {
         // 2. Wartosc rabatu
         return(discountStrategy.CalculateDiscount(order));
     }
     else
     {
         return(noDiscount);
     }
 }
示例#3
0
        // GET: Cart
        public ActionResult Index()
        {
            var reqCookie = Request.Cookies.Get("CartItems");
            var carItems  = JsonConvert.DeserializeObject <CartItem[]>(reqCookie.Value);
            var products  = carItems.Select(
                c => new Service.DiscountCore.Product
            {
                Name  = c.ProductName,
                Qty   = 1,
                Price = c.ProductListPrice
            }).ToList();
            var discount = rebateStrategy.CalculateDiscount(products);

            var vm = new CartViewModel
            {
                CartItems = carItems,
                Discount  = discount
            };

            return(View(vm));
        }
示例#4
0
        public Task Handle(DomainEventNotification <JobStatusUpdatedEvent> notification, CancellationToken cancellationToken)
        {
            var domainEvent = notification.DomainEvent;

            try
            {
                _log.LogDebug("Handling Domain Event. Id: {jobId}  JobStatus: {jobStatus}", domainEvent.Job.Id, domainEvent.Job.JobStatus);
                if (domainEvent.Job.JobStatus == Domain.Tradie.Enums.JobStatusEnum.Accepted)
                {
                    var discount = _discountStrategy.CalculateDiscount(domainEvent.Job);
                    domainEvent.Job.DiscountAmount = discount;
                    _emailService.Send("[email protected])", String.Format($"Id: {domainEvent.Job.Id}  JobStatus: {domainEvent.Job.JobStatus}"));
                }

                return(Task.CompletedTask);
            }
            catch (Exception ex)
            {
                _log.LogError(ex, "Error handling domain event {domainEvent}", domainEvent.GetType());
                throw;
            }
        }
 public double CalculateDiscount(Order order)
 {
     return(_discountStrategy.CalculateDiscount(order));
 }