public ProcessStatusMessage Process(Basket basket) {

            BasketItem[] lineArray = new BasketItem[basket.BasketItemList.Count];
            basket.BasketItemList.CopyTo(lineArray, 0);

            Hashtable original = new Hashtable();

            foreach (BasketItem line in lineArray) {

                string key = GetItemKey(line);
				
				if (original.ContainsKey(key)) {

                    BasketItem orgLine = original[line.ItemCode] as BasketItem;

                    if (orgLine != null) {
                        orgLine.Quantity += line.Quantity;
                        basket.BasketItemList.Remove(line);
                    }

				} else {
                    original.Add(key, line);
				}
			}

            return new ProcessStatusMessage(ProcessStatus.Success);
		}
		public ProcessStatusMessage Process(Basket basket) {

            foreach (BasketItem line in basket.BasketItemList) {
                if (line.PricingStatus == PricingStatus.OK) {
                    line.UnitPrice.Multiply(_scalingFactor);
                    line.LinePrice = new Money(line.UnitPrice);
                    line.LinePrice.Multiply(line.Quantity);
                }
            }

            return new ProcessStatusMessage(ProcessStatus.Success);
		}
        public ProcessStatusMessage Process(Basket order) {

            order.TaxPrice = new Money(order.CurrencyCode, 0M);

            foreach (BasketItem line in order.BasketItemList) {
                if (line.LinePrice != null) {
                    Money lineTax = new Money(line.LinePrice);
                    lineTax.Multiply(_taxRate);
                    order.TaxPrice.Add(lineTax);
                }
            }

            if (order.DeliveryCharge != null && order.DeliveryCharge.Amount > 0) {
                Money delTax = new Money(order.DeliveryCharge);
                delTax.Multiply(_taxRate);
                order.TaxPrice.Add(delTax);
            }

            return new ProcessStatusMessage(ProcessStatus.Success);
        }
 public ProcessStatusMessage Process(Basket order) {
     order.DeliveryCharge = new Money(_charge);
     return new ProcessStatusMessage(ProcessStatus.Success);
 }
        public virtual ProcessStatusMessage Process(Basket order) {
            
            ITextTranslator translator = _translatorFactory.GetTranslator(order.GetType(), order.CultureCode);
            Hashtable data = new Hashtable();
            data.Add("header", order.Header);
            data.Add("order", order);

            if (!SendEmail(data, translator)) {
                return new ProcessStatusMessage(ProcessStatus.Error, translator.GetText("Email_send_failed"));
            }

            return new ProcessStatusMessage(ProcessStatus.Success);
        }
 public override ProcessStatusMessage Process(Basket order) {
     //ToEmail = order.Header
     return base.Process(order);
 }