//private readonly IStoreContext _storeContext;
        //private readonly IDiscountService _discountService;
        //private readonly ICategoryService _categoryService;
        //private readonly IProductAttributeParser _productAttributeParser;
        //private readonly IProductService _productService;
        //private readonly ICacheManager _cacheManager;
        //private readonly ShoppingCartSettings _shoppingCartSettings;
        //private readonly CatalogSettings _catalogSettings;

        #endregion

        #region constructor

        public PromosPriceCalculationService(
            IPromoUtilities promoUtilities,
            IWorkContext workContext,
            IStoreContext storeContext,
            IDiscountService discountService,
            ICategoryService categoryService,
            IManufacturerService manufacturerService,
            IProductAttributeParser productAttributeParser,
            IProductService productService,
            ICacheManager cacheManager,
            ShoppingCartSettings shoppingCartSettings,
            CatalogSettings catalogSettings,
            PromoSettings promoSettings,
            ICurrencyService currencyService,
            IPriceCalculationService priceCalculationService,
            ILocalizationService localizationService,
            ILogger logger)
            : base (workContext, storeContext, discountService,
                    categoryService, manufacturerService, productAttributeParser,
                    productService, cacheManager, shoppingCartSettings,
                    catalogSettings)
        {
            this._promoUtilities = promoUtilities;
            this._promoSettings = promoSettings;
            this._workContext = workContext;
            this._currencyService = currencyService;
            this._priceCalculationService = priceCalculationService;
            this._localizationService = localizationService;
            this._logger = logger;
        }
 public PromoController(
     IPromoUtilities promoUtilities,
     IPriceFormatter priceFormatter,
     IWorkContext workContext,
     PromoSettings promoSettings,
     IProductMappingService productMappingService,
     IProductPromoMappingService productPromoMappingService,
     IPromoDetailService promoDetailService,
     IStoreService storeService,
     IStoreContext storeContext,
     IAttributeValueService attributeValueService,
     ICurrencyService currencyService,
     IPromoPictureService promoPictureService,
     IPictureService pictureService,
     IProductService productService,
     ILocalizationService localizationService)
 {
     this._promoUtilities = promoUtilities;
     this._priceFormatter = priceFormatter;
     this._workContext = workContext;
     this._productMappingService = productMappingService;
     this._productPromoMappingService = productPromoMappingService;
     this._promoDetailService = promoDetailService;
     this._promoSettings = promoSettings;
     this._storeService = storeService;
     this._storeContext = storeContext;
     this._attributeValueService = attributeValueService;
     this._currencyService = currencyService;
     this._promoPictureService = promoPictureService;
     this._pictureService = pictureService;
     this._productService = productService;
     this._localizationService = localizationService;
 }
        /// <summary>
        /// Ctor
        /// </summary>
        /// <param name="addressService">Address service</param>
        /// <param name="workContext">Work context</param>
        /// <param name="taxSettings">Tax settings</param>
        /// <param name="pluginFinder">Plugin finder</param>
        /// <param name="geoLookupService">GEO lookup service</param>
        /// <param name="countryService">Country service</param>
        /// <param name="customerSettings">Customer settings</param>
        /// <param name="addressSettings">Address settings</param>
        public TaxService(IAddressService addressService,
            IWorkContext workContext,
            TaxSettings taxSettings,
            IPluginFinder pluginFinder,
            IGeoLookupService geoLookupService,
            ICountryService countryService,
            CustomerSettings customerSettings,
            AddressSettings addressSettings,
            PromoSettings promoSettings,
            //IpromoService promoService,
            IPromoUtilities promoUtilities,
            ITaxServiceExtensions taxServiceExtensions)
            : base(addressService, workContext, taxSettings,
                                                    pluginFinder, geoLookupService, countryService,
                                                    customerSettings, addressSettings)
        {
            this._addressService = addressService;
            this._workContext = workContext;
            this._taxSettings = taxSettings;
            this._pluginFinder = pluginFinder;
            this._geoLookupService = geoLookupService;
            this._countryService = countryService;
            this._customerSettings = customerSettings;
            this._addressSettings = addressSettings;

            this._promoSettings = promoSettings;
            //this._promoService = promoService;
            this._promoUtilities = promoUtilities;
            this._taxServiceExtensions = taxServiceExtensions;
        }
        public DiscountService(
            IPromoUtilities promoUtilities,
            PromoSettings promoSettings,
            ICacheManager cacheManager,
            IRepository<Discount> discountRepository,
            IRepository<DiscountRequirement> discountRequirementRepository,
            IRepository<DiscountUsageHistory> discountUsageHistoryRepository,
            IStoreContext storeContext,
            IGenericAttributeService genericAttributeService,
            IPluginFinder pluginFinder,
            IEventPublisher eventPublisher) : 
                base(
                    cacheManager,
                    discountRepository,
                    discountRequirementRepository,
                    discountUsageHistoryRepository,
                    storeContext,
                    genericAttributeService,
                    pluginFinder,
                    eventPublisher)
        {
            this._promoUtilities = promoUtilities;
            this._promoSettings = promoSettings;

            this._discountRepository = discountRepository;
            this._discountUsageHistoryRepository = discountUsageHistoryRepository;
            this._cacheManager = cacheManager;
            this._eventPublisher = eventPublisher;
        }
        public CheckoutAttributeFormatter(IWorkContext workContext,
            ICheckoutAttributeService checkoutAttributeService,
            ICheckoutAttributeParser checkoutAttributeParser,
            ICurrencyService currencyService,
            ITaxService taxService,
            IPriceFormatter priceFormatter,
            IDownloadService downloadService,
            IWebHelper webHelper,
            PromoSettings promoSettings,
            IPromoUtilities qixolPromoUtilities,
            IAttributeValueService attributeValueService)
            : base(workContext, checkoutAttributeService, checkoutAttributeParser,
                    currencyService, taxService, priceFormatter,
                    downloadService, webHelper)
        {
            this._workContext = workContext;
            this._checkoutAttributeService = checkoutAttributeService;
            this._checkoutAttributeParser = checkoutAttributeParser;
            this._currencyService = currencyService;
            this._taxService = taxService;
            this._priceFormatter = priceFormatter;
            this._downloadService = downloadService;
            this._webHelper = webHelper;

            this._promoSettings = promoSettings;
            this._qixolPromoUtilities = qixolPromoUtilities;
            this._attributeValueService = attributeValueService;
        }
 public PromoOrderController(
     //IPromoUtilities promoUtilities,
     IPriceFormatter priceFormatter,
     IWorkContext workContext,
     PromoSettings promoSettings,
     IGenericAttributeService genericAttributeService,
     IOrderService orderService,
     IProductMappingService productMappingService,
     ILocalizationService localizationService,
     ICurrencyService currencyService,
     IPromoOrderService promoOrderService,
     IProductService productService)
 {
     //this._promoUtilities = promoUtilities;
     this._priceFormatter = priceFormatter;
     this._workContext = workContext;
     this._genericAttributeService = genericAttributeService;
     this._orderService = orderService;
     this._productMappingService = productMappingService;
     this._localizationService = localizationService;
     this._promoSettings = promoSettings;
     this._currencyService = currencyService;
     this._promoOrderService = promoOrderService;
     this._productService = productService;
 }
 public ShoppingCartService(IRepository<ShoppingCartItem> sciRepository,
     IWorkContext workContext, IStoreContext storeContext,
     ICurrencyService currencyService,
     IProductService productService, ILocalizationService localizationService,
     IProductAttributeParser productAttributeParser,
     global::Nop.Services.Orders.ICheckoutAttributeService checkoutAttributeService,
     global::Nop.Services.Orders.ICheckoutAttributeParser checkoutAttributeParser,
     IPriceFormatter priceFormatter,
     ICustomerService customerService,
     ShoppingCartSettings shoppingCartSettings,
     IEventPublisher eventPublisher,
     IPermissionService permissionService,
     IAclService aclService,
     IStoreMappingService storeMappingService,
     IGenericAttributeService genericAttributeService,
     IProductAttributeService productAttributeService,
     PromoSettings promoSettings) :
     base( sciRepository,
         workContext,
         storeContext,
         currencyService,
         productService,
         localizationService,
         productAttributeParser,
         checkoutAttributeService,
         checkoutAttributeParser,
         priceFormatter,
         customerService,
         shoppingCartSettings,
         eventPublisher,
         permissionService,
         aclService,
         storeMappingService,
         genericAttributeService,
         productAttributeService)
 {
     this._sciRepository = sciRepository;
     this._workContext = workContext;
     this._storeContext = storeContext;
     this._currencyService = currencyService;
     this._productService = productService;
     this._localizationService = localizationService;
     this._productAttributeParser = productAttributeParser;
     this._checkoutAttributeService = checkoutAttributeService;
     this._checkoutAttributeParser = checkoutAttributeParser;
     this._priceFormatter = priceFormatter;
     this._customerService = customerService;
     this._shoppingCartSettings = shoppingCartSettings;
     this._eventPublisher = eventPublisher;
     this._permissionService = permissionService;
     this._aclService = aclService;
     this._storeMappingService = storeMappingService;
     this._genericAttributeService = genericAttributeService;
     this._productAttributeService = productAttributeService;
     this._promoSettings = promoSettings;
 }
 public ProductMappingService(IRepository<ProductMappingItem> repository,
                              IProductService productService,
                              IEventPublisher eventPublisher,
                              PromoSettings promoSettings)
 {
     this._repository = repository;
     this._productService = productService;
     this._eventPublisher = eventPublisher;
     this._promoSettings = promoSettings;
 }
 public CouponService(
     ILogger logger,
     IWorkContext workContext,
     PromoSettings promoSettings,
     IRepository<IssuedCoupon> issuedCouponRepository,
     IEventPublisher eventPublisher)
 {
     this._logger = logger;
     this._workContext = workContext;
     this._promoSettings = promoSettings;
     this._issuedCouponRepository = issuedCouponRepository;
     this._eventPublisher = eventPublisher;
 }
        public MessageTokenProvider(ILanguageService languageService,
            ILocalizationService localizationService,
            IDateTimeHelper dateTimeHelper,
            IPriceFormatter priceFormatter,
            ICurrencyService currencyService,
            IWorkContext workContext,
            IDownloadService downloadService,
            IOrderService orderService,
            IPaymentService paymentService,
            IStoreService storeService,
            IStoreContext storeContext,
            IProductAttributeParser productAttributeParser,
            IAddressAttributeFormatter addressAttributeFormatter,
            MessageTemplatesSettings templatesSettings,
            CatalogSettings catalogSettings,
            TaxSettings taxSettings,
            CurrencySettings currencySettings,
            IEventPublisher eventPublisher,
            PromoSettings promoSettings,
            IPromoOrderService promoOrderService
            )
            : base(languageService, localizationService,
            dateTimeHelper, priceFormatter, currencyService, workContext,
            downloadService, orderService, paymentService, storeService,
            storeContext, productAttributeParser,
            addressAttributeFormatter, templatesSettings, catalogSettings,
            taxSettings, currencySettings, eventPublisher)
        {
            this._languageService = languageService;
            this._localizationService = localizationService;
            this._dateTimeHelper = dateTimeHelper;
            this._priceFormatter = priceFormatter;
            this._currencyService = currencyService;
            this._workContext = workContext;
            this._downloadService = downloadService;
            this._orderService = orderService;
            this._paymentService = paymentService;
            this._productAttributeParser = productAttributeParser;
            this._addressAttributeFormatter = addressAttributeFormatter;
            this._storeService = storeService;
            this._storeContext = storeContext;

            this._templatesSettings = templatesSettings;
            this._catalogSettings = catalogSettings;
            this._taxSettings = taxSettings;
            this._eventPublisher = eventPublisher;

            this._promoSettings = promoSettings;
            this._promoOrderService = promoOrderService;
        }
 public PromoPlugin(
     IProductService productService,
     ICategoryService categoryService,
     IManufacturerService manufacturerService,
     IPictureService pictureService,
     ICurrencyService currencyService,
     ISettingService settingService,
     IWorkContext workContext,
     IMeasureService measureService,
     MeasureSettings measureSettings,
     PromoSettings promosFeedSettings,
     CurrencySettings currencySettings,
     IProductAttributeService productAttributeService,
     IPriceCalculationService priceCalculationService,
     ITaxService taxService,
     ILogger logger,
     IPromoService promosFeedService,
     IScheduleTaskService scheduleTaskService,
     NopPromoContext nopPromoContext,
     IProductAttributeConfigService productAttributeConfigService,
     WidgetSettings widgetSettings,
     IPluginFinder pluginFinder,
     ILocalizationService localizationService)
 {
     this._productService = productService;
     this._categoryService = categoryService;
     this._manufacturerService = manufacturerService;
     this._pictureService = pictureService;
     this._currencyService = currencyService;
     this._settingService = settingService;
     this._workContext = workContext;
     this._measureService = measureService;
     this._measureSettings = measureSettings;
     this._promoSettings = promosFeedSettings;
     this._currencySettings = currencySettings;
     this._productAttributeService = productAttributeService;
     this._priceCalculationService = priceCalculationService;
     this._taxService = taxService;
     this._logger = logger;
     this._promosFeedService = promosFeedService;
     this._scheduleTaskService = scheduleTaskService;
     this._nopPromoContext = nopPromoContext;
     this._productAttributeConfigService = productAttributeConfigService;
     this._widgetSettings = widgetSettings;
     this._pluginFinder = pluginFinder;
     this._localizationService = localizationService;
 }
 public PromoSyncTask(PromoSettings promoSettings,
                     IPromoDetailService promoDetailService,
                     IProductPromoMappingService productPromoMappingService,
                     IProductService productService,
                     IProductMappingService productMappingService,
                     IAttributeValueService attributeValueService,
                     IPromoUtilities promoUtilities,
                     IStoreService storeService)
 {
     this._promoSettings = promoSettings;
     this._promoDetailService = promoDetailService;
     this._productPromoMappingService = productPromoMappingService;
     this._productService = productService;
     this._productMappingService = productMappingService;
     this._attributeValueService = attributeValueService;
     this._promoUtilities = promoUtilities;
     this._storeService = storeService;
 }
 public PromoAdminController(
     IProductService productService, ICurrencyService currencyService,
     ILocalizationService localizationService, IPluginFinder pluginFinder,
     ILogger logger, IWebHelper webHelper, IStoreService storeService,
     PromoSettings promoSettings, ISettingService settingService,
     IPermissionService permissionService, ICategoryService categoryService,
     IPromoService promoService,
     IScheduleTaskService scheduleTaskService,
     IExportQueueService exportQueueService,
     IProductAttributeConfigService productAttributeConfigService,
     IAttributeValueService attributeValueService,
     IShippingService shippingService,
     ICustomerService customerService,
     ICheckoutAttributeService checkoutAttributeService,
     IPromoPictureService promoPictureService,
     IPictureService pictureService)
 {
     this._productService = productService;
     this._currencyService = currencyService;
     this._localizationService = localizationService;
     this._pluginFinder = pluginFinder;
     this._logger = logger;
     this._webHelper = webHelper;
     this._storeService = storeService;
     this._promoSettings = promoSettings;
     this._settingService = settingService;
     this._permissionService = permissionService;
     this._categoryService = categoryService;
     this._promoService = promoService;
     this._scheduleTaskService = scheduleTaskService;
     this._exportQueueService = exportQueueService;
     this._productAttributeConfigService = productAttributeConfigService;
     this._attributeValueService = attributeValueService;
     this._shippingService = shippingService;
     this._customerService = customerService;
     this._checkoutAttributeService = checkoutAttributeService;
     this._promoPictureService = promoPictureService;
     this._pictureService = pictureService;
 }
 public PromoUtilities(
     PromoSettings promoSettings,
     IProductService productService,
     IPictureService pictureService,
     ILogger logger,
     IProductAttributeService productAttributeService,
     IWorkContext workContext,
     IGenericAttributeService genericAttributeService,
     IStoreContext storeContext,
     IShoppingCartService shoppingCartService,
     IProductMappingService productMappingService)
 {
     this._promoSettings = promoSettings;
     this._productService = productService;
     this._pictureService = pictureService;
     this._logger = logger;
     this._productAttributeService = productAttributeService;
     this._workContext = workContext;
     this._genericAttributeService = genericAttributeService;
     this._storeContext = storeContext;
     this._shoppingCartService = shoppingCartService;
     this._productMappingService = productMappingService;
 }
 public DataFeedTask(
     IPluginFinder pluginFinder,
     IStoreService storeService,
     PromoSettings promoSettings,
     IExportQueueService exportQueueService,
     IPromoService qixolPromoService,
     IPromoUtilities qixolPromoUtilities,
     IAttributeValueService attributeValueService,
     IShippingService shippingService,
     ICustomerService customerService,
     IProductAttributeConfigService productAttributeConfigService,
     IProductMappingService productMappingService,
     IProductService productService,
     IProductAttributeParser productAttributeParser,
     IVendorService vendorService,
     ITaxCategoryService taxCategoryService,
     ICheckoutAttributeService checkoutAttributeService,
     ICurrencyService currencyService)
 {
     this._pluginFinder = pluginFinder;
     this._storeService = storeService;
     this._promoSettings = promoSettings;
     this._exportQueueService = exportQueueService;
     this._qixolPromoService = qixolPromoService;
     this._qixolPromoUtilities = qixolPromoUtilities;
     this._attributeValueService = attributeValueService;
     this._shippingService = shippingService;
     this._customerService = customerService;
     this._productAttributeConfigService = productAttributeConfigService;
     this._productMappingService = productMappingService;
     this._productService = productService;
     this._productAttributeParser = productAttributeParser;
     this._vendorService = vendorService;
     this._taxCategoryService = taxCategoryService;
     this._checkoutAttributeService = checkoutAttributeService;
     this._currencyService = currencyService;
 }
 /// <summary>
 /// Ctor
 /// </summary>
 /// <param name="orderService">Order service</param>
 /// <param name="webHelper">Web helper</param>
 /// <param name="localizationService">Localization service</param>
 /// <param name="languageService">Language service</param>
 /// <param name="productService">Product service</param>
 /// <param name="paymentService">Payment service</param>
 /// <param name="logger">Logger</param>
 /// <param name="orderTotalCalculationService">Order total calculationservice</param>
 /// <param name="priceCalculationService">Price calculation service</param>
 /// <param name="priceFormatter">Price formatter</param>
 /// <param name="productAttributeParser">Product attribute parser</param>
 /// <param name="productAttributeFormatter">Product attribute formatter</param>
 /// <param name="giftCardService">Gift card service</param>
 /// <param name="shoppingCartService">Shopping cart service</param>
 /// <param name="checkoutAttributeFormatter">Checkout attribute service</param>
 /// <param name="shippingService">Shipping service</param>
 /// <param name="shipmentService">Shipment service</param>
 /// <param name="taxService">Tax service</param>
 /// <param name="customerService">Customer service</param>
 /// <param name="discountService">Discount service</param>
 /// <param name="encryptionService">Encryption service</param>
 /// <param name="workContext">Work context</param>
 /// <param name="workflowMessageService">Workflow message service</param>
 /// <param name="vendorService">Vendor service</param>
 /// <param name="customerActivityService">Customer activity service</param>
 /// <param name="currencyService">Currency service</param>
 /// <param name="affiliateService">Affiliate service</param>
 /// <param name="eventPublisher">Event published</param>
 /// <param name="pdfService">PDF service</param>
 /// <param name="paymentSettings">Payment settings</param>
 /// <param name="shippingSettings">Shipping settings</param>
 /// <param name="rewardPointsSettings">Reward points settings</param>
 /// <param name="orderSettings">Order settings</param>
 /// <param name="taxSettings">Tax settings</param>
 /// <param name="localizationSettings">Localization settings</param>
 /// <param name="currencySettings">Currency settings</param>
 public OrderProcessingService(IOrderService orderService,
     IWebHelper webHelper,
     ILocalizationService localizationService,
     ILanguageService languageService,
     IProductService productService,
     IPaymentService paymentService,
     ILogger logger,
     IOrderTotalCalculationService orderTotalCalculationService,
     IPriceCalculationService priceCalculationService,
     IPriceFormatter priceFormatter,
     IProductAttributeParser productAttributeParser,
     IProductAttributeFormatter productAttributeFormatter,
     IGiftCardService giftCardService,
     IShoppingCartService shoppingCartService,
     ICheckoutAttributeFormatter checkoutAttributeFormatter,
     IShippingService shippingService,
     IShipmentService shipmentService,
     ITaxService taxService,
     ICustomerService customerService,
     IDiscountService discountService,
     IEncryptionService encryptionService,
     IWorkContext workContext,
     IWorkflowMessageService workflowMessageService,
     IVendorService vendorService,
     ICustomerActivityService customerActivityService,
     ICurrencyService currencyService,
     IAffiliateService affiliateService,
     IEventPublisher eventPublisher,
     IPdfService pdfService,
     ShippingSettings shippingSettings,
     PaymentSettings paymentSettings,
     RewardPointsSettings rewardPointsSettings,
     OrderSettings orderSettings,
     TaxSettings taxSettings,
     LocalizationSettings localizationSettings,
     CurrencySettings currencySettings,
     IGenericAttributeService genericAttributeService,
     PromoSettings promoSettings,
     IPromoUtilities promoUtilities,
     IPromoOrderService promoOrderService,
     IPromoService promoService,
     IStoreContext storeContext)
     : base(orderService, webHelper, localizationService, languageService, productService, paymentService,
                                                 logger, orderTotalCalculationService, priceCalculationService, priceFormatter, productAttributeParser,
                                                 productAttributeFormatter, giftCardService, shoppingCartService, checkoutAttributeFormatter, shippingService,
                                                 shipmentService, taxService, customerService, discountService, encryptionService, workContext, workflowMessageService,
                                                 vendorService, customerActivityService, currencyService, affiliateService, eventPublisher, pdfService,
                                                 shippingSettings, paymentSettings, rewardPointsSettings, orderSettings, taxSettings,
                                                 localizationSettings, currencySettings)
 {
     this._orderService = orderService;
     this._webHelper = webHelper;
     this._localizationService = localizationService;
     this._languageService = languageService;
     this._productService = productService;
     this._paymentService = paymentService;
     this._logger = logger;
     this._orderTotalCalculationService = orderTotalCalculationService;
     this._priceCalculationService = priceCalculationService;
     this._priceFormatter = priceFormatter;
     this._productAttributeParser = productAttributeParser;
     this._productAttributeFormatter = productAttributeFormatter;
     this._giftCardService = giftCardService;
     this._shoppingCartService = shoppingCartService;
     this._checkoutAttributeFormatter = checkoutAttributeFormatter;
     this._workContext = workContext;
     this._workflowMessageService = workflowMessageService;
     this._vendorService = vendorService;
     this._shippingService = shippingService;
     this._shipmentService = shipmentService;
     this._taxService = taxService;
     this._customerService = customerService;
     this._discountService = discountService;
     this._encryptionService = encryptionService;
     this._customerActivityService = customerActivityService;
     this._currencyService = currencyService;
     this._affiliateService = affiliateService;
     this._eventPublisher = eventPublisher;
     this._pdfService = pdfService;
     this._paymentSettings = paymentSettings;
     this._shippingSettings = shippingSettings;
     this._rewardPointsSettings = rewardPointsSettings;
     this._orderSettings = orderSettings;
     this._taxSettings = taxSettings;
     this._localizationSettings = localizationSettings;
     this._currencySettings = currencySettings;
     this._genericAttributeService = genericAttributeService;
     this._promoSettings = promoSettings;
     this._promoUtilities = promoUtilities;
     this._promoOrderService = promoOrderService;
     this._promoService = promoService;
     this._storeContext = storeContext;
 }
示例#17
0
 public PdfService(ILocalizationService localizationService,
     ILanguageService languageService,
     IWorkContext workContext,
     IOrderService orderService,
     IPaymentService paymentService,
     IDateTimeHelper dateTimeHelper,
     IPriceFormatter priceFormatter,
     ICurrencyService currencyService,
     IMeasureService measureService,
     IPictureService pictureService,
     IProductService productService,
     IProductAttributeParser productAttributeParser,
     IStoreService storeService,
     IStoreContext storeContext,
     ISettingService settingContext,
     IWebHelper webHelper,
     IAddressAttributeFormatter addressAttributeFormatter,
     CatalogSettings catalogSettings,
     CurrencySettings currencySettings,
     MeasureSettings measureSettings,
     PdfSettings pdfSettings,
     TaxSettings taxSettings,
     AddressSettings addressSettings,
     PromoSettings promoSettings,
     IPromoOrderService promoOrderService)
     : base(localizationService, languageService, workContext, orderService, paymentService, dateTimeHelper, priceFormatter,
                                             currencyService, measureService, pictureService, productService, productAttributeParser, storeService, storeContext,
                                             settingContext, webHelper, addressAttributeFormatter, catalogSettings, currencySettings, measureSettings,
                                             pdfSettings, taxSettings, addressSettings)
 {
     this._localizationService = localizationService;
     this._languageService = languageService;
     this._workContext = workContext;
     this._orderService = orderService;
     this._paymentService = paymentService;
     this._dateTimeHelper = dateTimeHelper;
     this._priceFormatter = priceFormatter;
     this._currencyService = currencyService;
     this._measureService = measureService;
     this._pictureService = pictureService;
     this._productService = productService;
     this._productAttributeParser = productAttributeParser;
     this._storeService = storeService;
     this._storeContext = storeContext;
     this._settingContext = settingContext;
     this._webHelper = webHelper;
     this._addressAttributeFormatter = addressAttributeFormatter;
     this._currencySettings = currencySettings;
     this._catalogSettings = catalogSettings;
     this._measureSettings = measureSettings;
     this._pdfSettings = pdfSettings;
     this._taxSettings = taxSettings;
     this._addressSettings = addressSettings;
     this._promoSettings = promoSettings;
     this._promoOrderService = promoOrderService;
 }
        public static string GetDeliveryPromoName(this PromoOrder promoOrder, PromoSettings promoSettings)
        {
            if (promoOrder == null)
                return string.Empty;

            var deliveryPromo = promoOrder.DeliveryPromo();
            if (deliveryPromo != null)
                return GetDisplayPromoDetails(promoSettings.ShowPromotionDetailsInBasket, deliveryPromo);

            return string.Empty;
        }
 public static string GetBasketLevelPromotionName(this PromoOrder promoOrder, PromoSettings settings)
 {
     var promo = promoOrder.BasketLevelPromotion();
     if (promo != null)
         return GetDisplayPromoDetails(settings.ShowPromotionDetailsInBasket, promo);
     return string.Empty;
 }
        public static IList<PromoOrderItem> FindBasketResponseItems(this PromoOrder promoOrder, Product product, PromoSettings promoSettings, string attributesXml)
        {
            if (promoOrder == null)
                return null;

            string productCode = product.Id.ToString();
            string variantCode = string.Empty;

            IProductMappingService productMappingService = EngineContext.Current.Resolve<IProductMappingService>();

            ProductMappingItem productMappingItem = productMappingService.RetrieveFromAttributesXml(product, attributesXml);
            if (productMappingItem == null)
                return null;
            variantCode = productMappingItem.VariantCode;

            IList<PromoOrderItem> basketResponseItems = (from bri in promoOrder.PromoOrderItems
                                                             where bri.ProductCode.Equals(product.Id.ToString(), StringComparison.InvariantCultureIgnoreCase) &&
                                                                ((string.IsNullOrEmpty(variantCode) ||
                                                                    (!string.IsNullOrEmpty(variantCode) &&
                                                                        bri.VariantCode.Equals(variantCode, StringComparison.InvariantCultureIgnoreCase))))
                                                             select bri).ToList();

            return basketResponseItems;
        }
        public static decimal GetLineDiscountAmount(this PromoOrder promoOrder, Product product, PromoSettings promoSettings, string attributesXml)
        {
            if (promoOrder == null)
                return decimal.Zero;

            decimal totalDiscountsForLines = Decimal.Zero;
            var responseItems = promoOrder.FindBasketResponseItems(product, promoSettings, attributesXml);
            if (responseItems != null && responseItems.Count > 0)
                totalDiscountsForLines = responseItems.Sum(l => l.LinePromotionDiscount);

            return totalDiscountsForLines;
        }
        public static List<PromoOrderItemPromotion> LineLevelPromotions(this PromoOrder promoOrder, Product product, PromoSettings promoSettings, string attributesXml)
        {
            if (promoOrder == null)
                return null;

            List<PromoOrderItem> items = new List<PromoOrderItem>();
            IProductMappingService productMappingService = EngineContext.Current.Resolve<IProductMappingService>();

            ProductMappingItem productMappingItem = productMappingService.RetrieveFromAttributesXml(product, attributesXml);
            if (productMappingItem != null)
            {
                items = (from i in promoOrder.PromoOrderItems
                         where
                             i.ProductCode.Equals(productMappingItem.EntityId.ToString(), StringComparison.InvariantCultureIgnoreCase) &&
                             ((productMappingItem.NoVariants ||
                             (!productMappingItem.NoVariants &&
                             !string.IsNullOrEmpty(productMappingItem.VariantCode) &&
                             i.VariantCode.Equals(productMappingItem.VariantCode, StringComparison.InvariantCultureIgnoreCase))))
                         select i).ToList();
            }

            if (items.Count == 0)
                return null;

            List<PromoOrderItemPromotion> lineLevelPromos = new List<PromoOrderItemPromotion>();

            foreach (var item in items)
            {
                IList<PromoOrderItemPromotion> itemLineLevelPromos = promoOrder.LineLevelPromotions(item.Id);
                if (itemLineLevelPromos != null)
                    lineLevelPromos.AddRange(itemLineLevelPromos);
            }

            return lineLevelPromos;
        }
        public static List<string> GetLineDiscountNames(this PromoOrder promoOrder, Product product, PromoSettings promoSettings, string attributesXml)
        {
            if (promoOrder == null)
                return null;

            List<PromoOrderItemPromotion> lineLevelPromotions = promoOrder.LineLevelPromotions(product, promoSettings, attributesXml)
                                                                                     .Where(lp => lp.DiscountAmount != decimal.Zero || lp.PointsIssued != decimal.Zero)
                                                                                     .GroupBy(gb => gb.PromotionId)
                                                                                     .Select(s => s.First())
                                                                                     .ToList();

            if (lineLevelPromotions == null || lineLevelPromotions.Count == 0)
                return null;

            List<string> promotionNames = new List<string>();
            foreach (PromoOrderItemPromotion lineLevelPromo in lineLevelPromotions)
            {
                promotionNames.Add(GetDisplayPromoDetails(promoSettings.ShowPromotionDetailsInBasket, lineLevelPromo));
            }

            return promotionNames;
        }
        public CheckoutController(IWorkContext workContext,
            IStoreContext storeContext,
            IStoreMappingService storeMappingService,
            IShoppingCartService shoppingCartService, 
            ILocalizationService localizationService, 
            ITaxService taxService, 
            ICurrencyService currencyService, 
            IPriceFormatter priceFormatter, 
            IOrderProcessingService orderProcessingService,
            ICustomerService customerService, 
            IGenericAttributeService genericAttributeService,
            ICountryService countryService,
            IStateProvinceService stateProvinceService,
            IShippingService shippingService, 
            IPaymentService paymentService,
            IPluginFinder pluginFinder,
            IOrderTotalCalculationService orderTotalCalculationService,
            ILogger logger,
            IOrderService orderService,
            IWebHelper webHelper,
            HttpContextBase httpContext,
            IAddressAttributeParser addressAttributeParser,
            IAddressAttributeService addressAttributeService,
            IAddressAttributeFormatter addressAttributeFormatter,
            OrderSettings orderSettings, 
            RewardPointsSettings rewardPointsSettings,
            PaymentSettings paymentSettings,
            ShippingSettings shippingSettings,
            AddressSettings addressSettings,
            PromoSettings promoSettings,
            IPromoService promoService,
            IPromoUtilities promoUtilities)
            : base (workContext, storeContext, storeMappingService,
                    shoppingCartService, localizationService, taxService, currencyService,
                    priceFormatter, orderProcessingService, customerService,
                    genericAttributeService, countryService, stateProvinceService,
                    shippingService, paymentService, pluginFinder,
                    orderTotalCalculationService, logger, orderService, webHelper, httpContext,
                    addressAttributeParser, addressAttributeService,
                    addressAttributeFormatter, orderSettings, rewardPointsSettings,
                    paymentSettings, shippingSettings, addressSettings)
        {
            this._workContext = workContext;
            this._storeContext = storeContext;
            this._storeMappingService = storeMappingService;
            this._shoppingCartService = shoppingCartService;
            this._localizationService = localizationService;
            this._taxService = taxService;
            this._currencyService = currencyService;
            this._priceFormatter = priceFormatter;
            this._orderProcessingService = orderProcessingService;
            this._customerService = customerService;
            this._genericAttributeService = genericAttributeService;
            this._countryService = countryService;
            this._stateProvinceService = stateProvinceService;
            this._shippingService = shippingService;
            this._paymentService = paymentService;
            this._pluginFinder = pluginFinder;
            this._orderTotalCalculationService = orderTotalCalculationService;
            this._logger = logger;
            this._orderService = orderService;
            this._webHelper = webHelper;
            this._httpContext = httpContext;
            this._addressAttributeParser = addressAttributeParser;
            this._addressAttributeService = addressAttributeService;
            this._addressAttributeFormatter = addressAttributeFormatter;

            this._orderSettings = orderSettings;
            this._rewardPointsSettings = rewardPointsSettings;
            this._paymentSettings = paymentSettings;
            this._shippingSettings = shippingSettings;
            this._addressSettings = addressSettings;

            this._promoSettings = promoSettings;
            this._promoService = promoService;
            this._promoUtilities = promoUtilities;
        }
 public OrderTotalCalculationService(IWorkContext workContext,
     IStoreContext storeContext,
     IPromosPriceCalculationService promosPriceCalculationService,
     IPriceCalculationService priceCalculationService,
     ITaxService taxService,
     IShippingService shippingService,
     IPaymentService paymentService,
     ICheckoutAttributeParser checkoutAttributeParser,
     IDiscountService discountService,
     IGiftCardService giftCardService,
     IGenericAttributeService genericAttributeService,
     TaxSettings taxSettings,
     RewardPointsSettings rewardPointsSettings,
     ShippingSettings shippingSettings,
     ShoppingCartSettings shoppingCartSettings,
     CatalogSettings catalogSettings,
     IPromoUtilities promoUtilities,
     PromoSettings promoSettings,
     IPromoService promoService,
     IAttributeValueService attributeValueService,
     ITaxServiceExtensions taxServiceExtensions,
     ICurrencyService currencyService)
     : base(workContext,
         storeContext,
         priceCalculationService,
         taxService,
         shippingService,
         paymentService,
         checkoutAttributeParser,
         discountService,
         giftCardService,
         genericAttributeService,
         taxSettings,
         rewardPointsSettings,
         shippingSettings,
         shoppingCartSettings,
         catalogSettings)
 {
     this._workContext = workContext;
     this._storeContext = storeContext;
     this._promosPriceCalculationService = promosPriceCalculationService;
     this._taxService = taxService;
     this._shippingService = shippingService;
     this._paymentService = paymentService;
     this._checkoutAttributeParser = checkoutAttributeParser;
     this._discountService = discountService;
     this._giftCardService = giftCardService;
     this._genericAttributeService = genericAttributeService;
     this._taxSettings = taxSettings;
     this._rewardPointsSettings = rewardPointsSettings;
     this._shippingSettings = shippingSettings;
     this._shoppingCartSettings = shoppingCartSettings;
     this._catalogSettings = catalogSettings;
     this._promoUtilities = promoUtilities;
     this._promoSettings = promoSettings;
     this._promoService = promoService;
     this._priceCalculationService = priceCalculationService;
     this._attributeValueService = attributeValueService;
     this._taxServiceExtensions = taxServiceExtensions;
     this._currencyService = currencyService;
 }
        /// <summary>
        /// Install plugin
        /// </summary>
        public override void Install()
        {
            //settings
            var settings = new PromoSettings()
            {
                ProductPictureSize = 125,
                BatchSize = 500,
                SynchronizeCustomerRoles = true,
                SynchronizeProducts = true,
                SynchronizeShippingMethods = true,
                SynchronizeStores = true,
                SynchronizeCheckoutAttributes = true,
                SynchronizeCurrencies = true,

                VariantAttributeFormat = "{0}: {1}",
                VariantAttributesSeperator = ", ",
                MaximumAttributesForVariants = 2,
                ShowPromotionDetailsInBasket = 0,
                ShowHelperMessages = true,
                InitialSetup = true,
                UseSelectedCurrencyWhenSubmittingBaskets = false,
                ShowMissedPromotions = true,
                HideNopDiscountMenuItems = true,

#if DEBUG
                BasketRequestEndpointAddress = @"http://*****:*****@"http://localhost:8733/Design_Time_Addresses/Qixol.Promo.Services/ImportService",
                PromoExportEndpointAddress = @"http://localhost:8733/Design_Time_Addresses/Qixol.Promo.Services/ExportService",
                ServiceEndpointSelection = SettingsEndpointAddress.CUSTOM_SERVICES,
                LogMessages = true,
                QueueHoldPeriodInSeconds = 2,
                ShowAdvancedIntegrationSettings = true,
#else
                QueueHoldPeriodInSeconds = 300,
#endif
                Channel = "WEB",
                StoreGroup = "WEB"
            };

            _settingService.SaveSetting(settings);


            // Setup any database changes
            this._nopPromoContext.Install();

            // Create product attribute config items.
            InsertProductAttributeConfigItems();

            // Deal with strings
            SetupStringResources();
            InstallAllStringResources();

            // set the widget to active (for the Customer Navigation menu only at present...)
            _widgetSettings.ActiveWidgetSystemNames.Add(this.PluginDescriptor.SystemName);
            _settingService.SaveSetting(_widgetSettings);

            // schedule task
            ScheduleTask feedTask = FindScheduledTask(PromoTaskNames.DataFeedTask);
            if (feedTask == null)
            {
                _scheduleTaskService.InsertTask(new ScheduleTask()
                {
                    Name = "Qixol Promo - Product and Attribute Sync (Push)",
                    Seconds = 300, // 5 mins
                    Type = PromoTaskNames.DataFeedTask,
                    Enabled = false,
                    StopOnError = true
                });
            }

            ScheduleTask promoUseTask = FindScheduledTask(PromoTaskNames.PromoSyncTask);
            if (promoUseTask == null)
            {
                _scheduleTaskService.InsertTask(new ScheduleTask()
                {
                    Name = "Qixol Promo - Promotion Sync (Pull)",
                    Seconds = 86400, // 24 hrs
                    Type = PromoTaskNames.PromoSyncTask,
                    Enabled = false,
                    StopOnError = true
                });
            }

            base.Install();
        }
        public ShoppingCartController(IProductService productService,
            IStoreContext storeContext,
            IWorkContext workContext,
            IShoppingCartService shoppingCartService,
            IPictureService pictureService,
            ILocalizationService localizationService,
            IProductAttributeService productAttributeService,
            IProductAttributeFormatter productAttributeFormatter,
            IProductAttributeParser productAttributeParser,
            ITaxService taxService, ICurrencyService currencyService,
            IPriceCalculationService priceCalculationService,
            IPromosPriceCalculationService promosPriceCalculationService,
            IPriceFormatter priceFormatter,
            ICheckoutAttributeParser checkoutAttributeParser,
            ICheckoutAttributeFormatter checkoutAttributeFormatter,
            IOrderProcessingService orderProcessingService,
            IDiscountService discountService,
            ICustomerService customerService,
            IGiftCardService giftCardService,
            ICountryService countryService,
            IStateProvinceService stateProvinceService,
            IShippingService shippingService,
            IOrderTotalCalculationService orderTotalCalculationService,
            ICheckoutAttributeService checkoutAttributeService,
            IPaymentService paymentService,
            IWorkflowMessageService workflowMessageService,
            IPermissionService permissionService,
            IDownloadService downloadService,
            ICacheManager cacheManager,
            IWebHelper webHelper,
            ICustomerActivityService customerActivityService,
            IGenericAttributeService genericAttributeService,
            IAddressAttributeFormatter addressAttributeFormatter,
            HttpContextBase httpContext,
            MediaSettings mediaSettings,
            ShoppingCartSettings shoppingCartSettings,
            CatalogSettings catalogSettings,
            OrderSettings orderSettings,
            ShippingSettings shippingSettings,
            TaxSettings taxSettings,
            CaptchaSettings captchaSettings,
            AddressSettings addressSettings,
            RewardPointsSettings rewardPointsSettings,
            PromoSettings promoSettings,
            IPromoService promoService,
            IPromoUtilities promoUtilities)
            : base(productService, storeContext, workContext,
                    shoppingCartService, pictureService, localizationService,
                    productAttributeService, productAttributeFormatter,
                    productAttributeParser, taxService, currencyService,
                    priceCalculationService, priceFormatter, checkoutAttributeParser,
                    checkoutAttributeFormatter, orderProcessingService, discountService,
                    customerService, giftCardService, countryService,
                    stateProvinceService, shippingService, orderTotalCalculationService,
                    checkoutAttributeService, paymentService, workflowMessageService,
                    permissionService, downloadService, cacheManager, webHelper,
                    customerActivityService, genericAttributeService,
                    addressAttributeFormatter, httpContext, mediaSettings,
                    shoppingCartSettings, catalogSettings, orderSettings, shippingSettings,
                    taxSettings, captchaSettings, addressSettings,
                    rewardPointsSettings)
        {
            this._productService = productService;
            this._workContext = workContext;
            this._storeContext = storeContext;
            this._shoppingCartService = shoppingCartService;
            this._pictureService = pictureService;
            this._localizationService = localizationService;
            this._productAttributeService = productAttributeService;
            this._productAttributeFormatter = productAttributeFormatter;
            this._productAttributeParser = productAttributeParser;
            this._taxService = taxService;
            this._currencyService = currencyService;
            this._priceCalculationService = priceCalculationService;
            this._promosPriceCalculationService = promosPriceCalculationService;
            this._priceFormatter = priceFormatter;
            this._checkoutAttributeParser = checkoutAttributeParser;
            this._checkoutAttributeFormatter = checkoutAttributeFormatter;
            this._orderProcessingService = orderProcessingService;
            this._discountService = discountService;
            this._customerService = customerService;
            this._giftCardService = giftCardService;
            this._countryService = countryService;
            this._stateProvinceService = stateProvinceService;
            this._shippingService = shippingService;
            this._orderTotalCalculationService = orderTotalCalculationService;
            this._checkoutAttributeService = checkoutAttributeService;
            this._paymentService = paymentService;
            this._workflowMessageService = workflowMessageService;
            this._permissionService = permissionService;
            this._downloadService = downloadService;
            this._cacheManager = cacheManager;
            this._webHelper = webHelper;
            this._customerActivityService = customerActivityService;
            this._genericAttributeService = genericAttributeService;
            this._addressAttributeFormatter = addressAttributeFormatter;
            this._httpContext = httpContext;

            this._mediaSettings = mediaSettings;
            this._shoppingCartSettings = shoppingCartSettings;
            this._catalogSettings = catalogSettings;
            this._orderSettings = orderSettings;
            this._shippingSettings = shippingSettings;
            this._taxSettings = taxSettings;
            this._captchaSettings = captchaSettings;
            this._addressSettings = addressSettings;
            this._rewardPointsSettings = rewardPointsSettings;

            this._promoSettings = promoSettings;
            this._promoService = promoService;
            this._promoUtilities = promoUtilities;
        }
 public promoService(
     IProductService productService,
     ICategoryService categoryService,
     IManufacturerService manufacturerService,
     IPictureService pictureService,
     ICurrencyService currencyService,
     ISettingService settingService,
     IWorkContext workContext,
     IMeasureService measureService,
     MeasureSettings measureSettings,
     CurrencySettings currencySettings,
     IProductAttributeService productAttributeService,
     IPriceCalculationService priceCalculationService,
     ITaxService taxService,
     ILogger logger,
     IStoreService storeService,
     IPromoUtilities promoUtilities,
     PromoSettings promoSettings,
     IShippingService shippingService,
     IGenericAttributeService genericAttributeService,
     IStoreContext storeContext,
     IProductMappingService productMappingService,
     IShoppingCartService shoppingCartService,
     ICouponService qixolPromosCouponService,
     IAttributeValueService attributeValueService,
     IOrderService orderService,
     ICustomerService customerService,
     ILocalizationService localizationService)
 {
     this._productService = productService;
     this._categoryService = categoryService;
     this._manufacturerService = manufacturerService;
     this._pictureService = pictureService;
     this._currencyService = currencyService;
     this._settingService = settingService;
     this._workContext = workContext;
     this._measureService = measureService;
     this._measureSettings = measureSettings;
     this._currencySettings = currencySettings;
     this._productAttributeService = productAttributeService;
     this._priceCalculationService = priceCalculationService;
     this._taxService = taxService;
     this._logger = logger;
     this._promoUtilities = promoUtilities;
     this._storeService = storeService;
     this._shippingService = shippingService;
     this._genericAttributeService = genericAttributeService;
     this._storeContext = storeContext;
     this._productMappingService = productMappingService;
     this._shoppingCartService = shoppingCartService;
     this._couponService = qixolPromosCouponService;
     this._attributeValueService = attributeValueService;
     this._orderService = orderService;
     this._promoSettings = promoSettings;
     this._customerService = customerService;
     this._localizationService = localizationService;
 }