Exemple #1
0
        public void Execute(IJobExecutionContext context)
        {
            Settings settings = (Settings)context.MergedJobDataMap["settings"];

            try
            {
                UnityContainer container = (UnityContainer)context.MergedJobDataMap["unityContainer"];

                var resolver   = new BbCouponsResolver(new HtmlWeb());
                var couponRepo = container.Resolve <ICouponRepository>();

                context.RescheduleJob(settings.ResolveMinInterval, settings.ResolveMaxInterval);

                List <Coupon>        couponsInPlay   = couponRepo.GetCouponsInPlay().ToList();
                IEnumerable <Coupon> resolvedCoupons = resolver.ResolveCoupons(couponsInPlay);

                couponRepo.UpdateCoupons(resolvedCoupons);
            }
            catch (JobExecutionException ex)
            {
                var logger = LogManager.GetLogger("errors");
                logger.Info($"Exception : {ex}");
                throw;
            }
        }
Exemple #2
0
        public void ResolveCouponsTest()
        {
            var wonCoupons        = 0;
            var lostCoupons       = 0;
            var unresolvedContent = File.ReadAllText(couponsFilePath, Encoding.UTF8);
            var unresolvedCoupons = JsonConvert.DeserializeObject <List <Coupon> >(unresolvedContent);

            var resolvedCoupons = resolver.ResolveCoupons(unresolvedCoupons);

//            foreach (var coupon in resolvedCoupons)
//            {
//                if (coupon.IsWon)
//                {
//                    wonCoupons = wonCoupons + 1;
//                }
//                else
//                {
//                    lostCoupons = lostCoupons + 1;
//                }
//            }

            Assert.AreEqual(wonCoupons, expectedWonCoupons);
            Assert.AreEqual(lostCoupons, expectedLostCoupons);
        }