Пример #1
0
        public override Price GetTotal(IOrderItemContext item)
        {
            var   regularPrice   = base.GetTotal(item);
            Price volumeDiscount = 0;

            if (item.GetUnits() >= _volumeThreshold)
            {
                volumeDiscount = _volumeThreshold * item.GetUnitPrice() - _volumePrice;
            }

            return(regularPrice - volumeDiscount);
        }
        public override Price GetTotal(IOrderItemContext item)
        {
            Price lowestPrice = decimal.MaxValue;

            foreach (var pricingStrategy in PricingStrategies)
            {
                var total = pricingStrategy.GetTotal(item);

                if (total < lowestPrice)
                {
                    lowestPrice = total;
                }
            }

            return(lowestPrice);
        }
        public static void AddPropertiesToBookedOrderItem(IOrderItemContext ctx, BookedOrderItemInfo bookedOrderItemInfo)
        {
            // Setting the access code and access pass after booking.
            // If online session, add accessChannel
            if (bookedOrderItemInfo.AttendanceMode == AttendanceMode.Online || bookedOrderItemInfo.AttendanceMode == AttendanceMode.Mixed)
            {
                ctx.ResponseOrderItem.AccessChannel = new VirtualLocation()
                {
                    Name        = "Zoom Video Chat",
                    Url         = bookedOrderItemInfo.MeetingUrl,
                    AccessId    = bookedOrderItemInfo.MeetingId,
                    AccessCode  = bookedOrderItemInfo.MeetingPassword,
                    Description = "Please log into Zoom a few minutes before the event"
                };
            }

            // If offline session, add accessCode and accessPass
            if (bookedOrderItemInfo.AttendanceMode == AttendanceMode.Offline || bookedOrderItemInfo.AttendanceMode == AttendanceMode.Mixed)
            {
                ctx.ResponseOrderItem.AccessCode = new List <PropertyValue>
                {
                    new PropertyValue()
                    {
                        Name        = "Pin Code",
                        Description = bookedOrderItemInfo.PinCode,
                        Value       = "defaultValue"
                    }
                };
                ctx.ResponseOrderItem.AccessPass = new List <ImageObject>
                {
                    new ImageObject()
                    {
                        Url = new Uri(bookedOrderItemInfo.ImageUrl)
                    },
                    new Barcode()
                    {
                        Url      = new Uri(bookedOrderItemInfo.ImageUrl),
                        Text     = bookedOrderItemInfo.BarCodeText,
                        CodeType = "code128"
                    }
                };
            }
        }
Пример #4
0
 public virtual Price GetTotal(IOrderItemContext item)
 {
     return(item.GetUnits() * item.GetUnitPrice());
 }
Пример #5
0
 public abstract Price GetTotal(IOrderItemContext item);