public override void Process(IBasket order) {

            ITextTranslator translator = TranslatorUtils.GetTextTranslator(order.GetType(), order.CultureCode);
            Hashtable data = new Hashtable();

            IUserDetails user = (order.UserDetails != null) ? new UserDecorator(order.UserDetails) : order.AltUserDetails;

            data.Add("order", new BasketDecorator(order));
            data.Add("header", order.OrderHeader);
            data.Add("user", user);
            data.Add("isCreditCardOrder", order.OrderHeader.PaymentMethod == PaymentMethodType.CreditCard);

            IAddressFormatter addrf = new AddressFormatter();
            if (order.OrderHeader.InvoiceAddress != null) {
            
                data.Add("invoiceAddress", addrf.FormatAddress(order.OrderHeader.InvoiceAddress, "<br>", translator.CultureCode));

                if (order.OrderHeader.DeliveryAddress != null && !AddressHelper.AreSame(order.OrderHeader.InvoiceAddress, order.OrderHeader.DeliveryAddress)) {
                    data.Add("deliveryAddress", addrf.FormatAddress(order.OrderHeader.DeliveryAddress, "<br>", translator.CultureCode));
                }
            }

            SendEmail(data, translator, TemplateName, SenderEmail, user.EmailAddress, SubjectTag, IsHtml);
        }
        public virtual void Process(IBasket order) {
            ITextTranslator translator = Cuyahoga.Modules.ECommerce.Service.Translation.TranslatorUtils.GetTextTranslator(order.GetType(), order.CultureCode);
            Hashtable data = new Hashtable();
            data.Add("header", order.OrderHeader);
            data.Add("order", new BasketDecorator(order));

            this.SendEmail(data, translator);
        }