protected virtual IQueryable <PromotionUsageEntity> GetPromotionUsageQuery(IMarketingRepository repository, PromotionUsageSearchCriteria criteria)
        {
            var query = repository.PromotionUsages;

            if (!string.IsNullOrEmpty(criteria.PromotionId))
            {
                query = query.Where(x => x.PromotionId == criteria.PromotionId);
            }
            if (!string.IsNullOrEmpty(criteria.CouponCode))
            {
                query = query.Where(x => x.CouponCode == criteria.CouponCode);
            }
            if (!string.IsNullOrEmpty(criteria.ObjectId))
            {
                query = query.Where(x => x.ObjectId == criteria.ObjectId);
            }
            if (!string.IsNullOrEmpty(criteria.ObjectType))
            {
                query = query.Where(x => x.ObjectType == criteria.ObjectType);
            }
            if (!string.IsNullOrWhiteSpace(criteria.UserId))
            {
                query = query.Where(x => x.UserId == criteria.UserId);
            }
            if (!string.IsNullOrWhiteSpace(criteria.UserName))
            {
                query = query.Where(x => x.UserName == criteria.UserName);
            }

            return(query);
        }
示例#2
0
        protected virtual IQueryable <Model.PromotionEntity> GetPromotionsQuery(IMarketingRepository repository, PromotionSearchCriteria criteria)
        {
            var query = repository.Promotions;

            if (!string.IsNullOrEmpty(criteria.Store))
            {
                query = query.Where(x => !x.Stores.Any() || x.Stores.Any(s => s.StoreId == criteria.Store));
            }

            if (!criteria.StoreIds.IsNullOrEmpty())
            {
                query = query.Where(x => !x.Stores.Any() || x.Stores.Any(s => criteria.StoreIds.Contains(s.StoreId)));
            }

            if (criteria.OnlyActive)
            {
                var now = DateTime.UtcNow;
                query = query.Where(x => x.IsActive && (x.StartDate == null || now >= x.StartDate) && (x.EndDate == null || x.EndDate >= now));
            }
            if (!string.IsNullOrEmpty(criteria.Keyword))
            {
                query = query.Where(x => x.Name.Contains(criteria.Keyword) || x.Description.Contains(criteria.Keyword));
            }

            return(query);
        }
		public DefaultPromotionEvaluator(IMarketingRepository repository, IPromotionUsageProvider usageProvider, IEvaluationPolicy[] policies, ICacheRepository cache)
			:base(cache)
		{
			_repository = repository;
			_usageProvider = usageProvider;
			_policies = policies;

            _isEnabled = MarketingConfiguration.Instance.Cache.IsEnabled;
            Cache = new CacheHelper(cache);
		}
 /// <summary>
 ///     Initializes the <see cref="PromotionClient" /> class.
 /// </summary>
 /// <param name="marketingRepository">The marketing repository.</param>
 /// <param name="customerSession">The customer session.</param>
 /// <param name="evaluator"></param>
 /// <param name="cacheRepository">The cache repository.</param>
 public PromotionClient(IMarketingRepository marketingRepository,
                        ICustomerSessionService customerSession,
                        IPromotionEvaluator evaluator,
                        ICacheRepository cacheRepository)
 {
     _marketingRepository = marketingRepository;
     _cacheRepository     = cacheRepository;
     _customerSession     = customerSession;
     _evaluator           = evaluator;
 }
        public DefaultPromotionEvaluator(IMarketingRepository repository, IPromotionUsageProvider usageProvider, IEvaluationPolicy[] policies, ICacheRepository cache)
            : base(cache)
        {
            _repository    = repository;
            _usageProvider = usageProvider;
            _policies      = policies;

            _isEnabled = MarketingConfiguration.Instance.Cache.IsEnabled;
            Cache      = new CacheHelper(cache);
        }
	    /// <summary>
	    ///     Initializes the <see cref="PromotionClient" /> class.
	    /// </summary>
	    /// <param name="marketingRepository">The marketing repository.</param>
	    /// <param name="customerSession">The customer session.</param>
	    /// <param name="evaluator"></param>
	    /// <param name="cacheRepository">The cache repository.</param>
	    public PromotionClient(IMarketingRepository marketingRepository, 
            ICustomerSessionService customerSession,
            IPromotionEvaluator evaluator, 
            ICacheRepository cacheRepository)
		{
			_marketingRepository = marketingRepository;
			_cacheRepository = cacheRepository;
			_customerSession = customerSession;
	        _evaluator = evaluator;
		}
示例#7
0
        public MarketingController(IMarketingRepository marketingRepository, IMapper mapper,
                                   IReadModelDatabase database, IUnitOfWork unitOfWork,
                                   IUserProfileRepository userProfileRepository) :

            base(mapper, database,
                 userProfileRepository,
                 unitOfWork)
        {
            _database            = database;
            _mapper              = mapper;
            _marketingRepository = marketingRepository;
            _unitOfWork          = unitOfWork;
        }
示例#8
0
        private async Task RemoveChildren(DynamicContentFolderEntity[] folders, IMarketingRepository repository)
        {
            var childrenIds = repository.Folders
                              .Where(x => folders
                                     .Select(q => q.Id)
                                     .Contains(x.ParentFolderId))
                              .ToArray();

            if (!childrenIds.IsNullOrEmpty())
            {
                await RemoveChildren(childrenIds, repository);
            }

            await repository.RemoveFoldersAsync(folders);
        }
 public CalculateDiscountsActivity(ICatalogRepository catalogRepository,
                                   cust.ICustomerSessionService customerService,
                                   IMarketingRepository marketingRepository,
                                   IPricelistRepository priceListRepository,
                                   IPromotionEntryPopulate entryPopulate,
                                   ICatalogOutlineBuilder catalogOutlineBuilder,
                                   IPromotionEvaluator evaluator)
 {
     _catalogRepository      = catalogRepository;
     _marketingRepository    = marketingRepository;
     _promotionEntryPopulate = entryPopulate;
     _priceListRepository    = priceListRepository;
     _customerSessionService = customerService;
     _catalogOutlineBuilder  = catalogOutlineBuilder;
     _promotionEvaluator     = evaluator;
 }
 public RemoveExpiredPromotionReservations(IMarketingRepository marketingRepository)
 {
     _marketingRepository = marketingRepository;
 }
        protected virtual IQueryable <DynamicContentItemEntity> BuildQuery(DynamicContentItemSearchCriteria criteria, IMarketingRepository repository)
        {
            var query = repository.Items;

            if (!string.IsNullOrEmpty(criteria.FolderId))
            {
                query = query.Where(x => x.FolderId == criteria.FolderId);
            }

            if (!string.IsNullOrEmpty(criteria.Keyword))
            {
                query = query.Where(q => q.Name.Contains(criteria.Keyword));
            }
            return(query);
        }
		public CalculateDiscountsActivity(ICatalogRepository catalogRepository,
			cust.ICustomerSessionService customerService,
			IMarketingRepository marketingRepository,
			IPricelistRepository priceListRepository,
			IPromotionEntryPopulate entryPopulate,
            ICatalogOutlineBuilder catalogOutlineBuilder,
            IPromotionEvaluator evaluator)
		{
			_catalogRepository = catalogRepository;
			_marketingRepository = marketingRepository;
			_promotionEntryPopulate = entryPopulate;
			_priceListRepository = priceListRepository;
			_customerSessionService = customerService;
		    _catalogOutlineBuilder = catalogOutlineBuilder;
            _promotionEvaluator = evaluator;
		}
 public CouponService GetCouponService(IPlatformMemoryCache platformMemoryCache, IMarketingRepository repository)
 {
     return(new CouponService(
                () => repository,
                _eventPublisherMock.Object,
                platformMemoryCache));
 }
示例#14
0
 public ServicioCampanas()
 {
     _contexto = new EFMarketingRepository();
 }
        public RemoveExpiredPromotionReservations(IMarketingRepository marketingRepository)
		{
			_marketingRepository = marketingRepository;
		}
示例#16
0
 public DynamicContentService GetPromotionService(IPlatformMemoryCache platformMemoryCache, IMarketingRepository repository)
 {
     return(new DynamicContentService(() => repository, _eventPublisherMock.Object, platformMemoryCache));
 }
 public RecordPromotionUsageActivity(ICustomerSessionService customerService, IMarketingRepository marketingRepository)
 {
     _marketingRepository    = marketingRepository;
     _customerSessionService = customerService;
 }
        protected virtual IQueryable <DynamicContentPublishingGroupEntity> BuildQuery(DynamicContentPublicationSearchCriteria criteria, IMarketingRepository repository)
        {
            var query = repository.PublishingGroups;

            if (!string.IsNullOrEmpty(criteria.Store))
            {
                query = query.Where(x => x.StoreId == criteria.Store);
            }

            if (criteria.OnlyActive)
            {
                query = query.Where(x => x.IsActive == true);
            }

            if (criteria.StartDate != null)
            {
                query = query.Where(x => x.StartDate == null || criteria.StartDate >= x.StartDate);
            }

            if (criteria.EndDate != null)
            {
                query = query.Where(x => x.EndDate == null || x.EndDate >= criteria.EndDate);
            }

            if (!string.IsNullOrEmpty(criteria.PlaceName))
            {
                query = query.Where(x => x.ContentPlaces.Any(y => y.ContentPlace.Name == criteria.PlaceName));
            }

            if (!string.IsNullOrEmpty(criteria.Keyword))
            {
                query = query.Where(q => q.Name.Contains(criteria.Keyword));
            }
            return(query);
        }
示例#19
0
 public ServicioStands()
 {
     _contexto = new EFMarketingRepository();
 }
示例#20
0
        protected virtual IQueryable <CouponEntity> BuildQuery(CouponSearchCriteria criteria, IMarketingRepository repository)
        {
            var query = repository.Coupons;

            if (!string.IsNullOrEmpty(criteria.PromotionId))
            {
                query = query.Where(c => c.PromotionId == criteria.PromotionId);
            }

            if (!string.IsNullOrEmpty(criteria.Code))
            {
                query = query.Where(c => c.Code == criteria.Code);
            }

            if (!criteria.Codes.IsNullOrEmpty())
            {
                query = query.Where(c => criteria.Codes.Contains(c.Code));
            }

            return(query);
        }
 public MarketingService(IMarketingRepository marketingRepository,
                         IPromotionEvaluator evaluator)
 {
     _marketingRepository = marketingRepository;
     _evaluator           = evaluator;
 }
示例#22
0
 public ServicioClientes()
 {
     _contexto = new EFMarketingRepository();
 }
 public MarketingController(IMarketingRepository marketingRepo, ISmsRepository smsRepo, IHostingEnvironment env)
 {
     _smsRepo       = smsRepo;
     _marketingRepo = marketingRepo;
     _env           = env;
 }
        public RecordPromotionUsageActivity(ICustomerSessionService customerService, IMarketingRepository marketingRepository)
		{
			_marketingRepository = marketingRepository;
			_customerSessionService = customerService;
		}
 public MarketingDataController(IMarketingRepository marketingRepo, ISmsRepository smsRepo)
 {
     _marketingRepo = marketingRepo;
     _smsRepo       = smsRepo;
 }
		public MarketingService(IMarketingRepository marketingRepository,
								IPromotionEvaluator evaluator)
		{
			_marketingRepository = marketingRepository;
			_evaluator = evaluator;
		}
示例#27
0
 public PromotionUsageService GetPromotionUsageService(IPlatformMemoryCache platformMemoryCache, IMarketingRepository repository)
 {
     return(new PromotionUsageService(
                () => repository,
                _eventPublisherMock.Object,
                platformMemoryCache));
 }
		public RemoveDiscountActivity(IMarketingRepository marketingRepository)
		{
			_marketingRepository = marketingRepository;
		}
 public PromotionUsageProvider(IMarketingRepository repository)
 {
     _repository = repository;
 }
		public PromotionUsageProvider(IMarketingRepository repository)
		{
			_repository = repository;
		}
示例#31
0
 public RemoveDiscountActivity(IMarketingRepository marketingRepository)
 {
     _marketingRepository = marketingRepository;
 }