public async Task <IList <AffiliateCategory> > GetAllAsync() { var categories = await GetAllCategoriesAsync(); var coupons = await _couponRepository.GetAllAsync(); foreach (var category in categories) { category.CouponsCount = coupons.Count(c => c.Category != null && c.Category.Id == category.Id); } return(_mapper.Map <IList <AffiliateCategory> >(categories)); }
public async Task <IList <AffiliateStore> > GetAllAsync() { var stores = await GetAllLomadeeStoresAsync(); var coupons = await _couponRepository.GetAllAsync(); foreach (var lomadeeStore in stores) { lomadeeStore.CouponsCount = coupons.Count(c => c.Store != null && c.Store.Id == lomadeeStore.Id); } return(_mapper.Map <IList <AffiliateStore> >(stores)); }
public async Task <IList <AffiliateStore> > GetAllAsync() { var response = await GetAllZanoxMedia(); UpdateProperties(response); var stores = _mapper.Map <IList <AffiliateStore> >(response.Admedium.Items); var coupons = await _couponRepository.GetAllAsync(); foreach (var store in stores) { store.CouponsCount = coupons.Count(c => c.Store != null && c.Store.Id == store.StoreId); } return(stores); }
public async Task <IList <AffiliateCategory> > GetAllAsync() { var coupons = await _couponRepository.GetAllAsync(); return(new List <AffiliateCategory> { new AffiliateCategory { CategoryId = 117979, AffiliateProgram = Affiliates.Zanox, Name = "Black Friday", FriendlyName = "Black Friday".ToFriendlyName(), ChangedDate = new DateTime(2019, 11, 19), CouponsCount = coupons.Count } }); }
public async Task Invoke() { var couponsFromPartner = await _repositoryFromPartner.GetAllAsync(); if (!couponsFromPartner.Any()) { return; } var couponsToCreate = new List <AffiliateCoupon>(); var couponsToChange = new List <AffiliateCoupon>(); var couponsToCancel = new List <AffiliateCoupon>(); var cuponicoCoupons = await _cuponicoRepository.GetAllAsync(); foreach (var partnerCoupon in couponsFromPartner) { if (partnerCoupon == null) { continue; } var cuponicoCoupon = cuponicoCoupons?.FirstOrDefault(local => local.CouponId == partnerCoupon.CouponId); if (cuponicoCoupon == null) { couponsToCreate.Add(partnerCoupon); } else { if (!cuponicoCoupon.Equals(partnerCoupon)) { couponsToChange.Add(partnerCoupon); } } } if (cuponicoCoupons != null) { couponsToCancel.AddRange(cuponicoCoupons.Where(localCoupon => couponsFromPartner.All(lomadee => lomadee.CouponId != localCoupon.CouponId))); } if (couponsToCreate.Any()) { var baches = couponsToCreate.BatchesOf(50); foreach (var bach in baches) { var coupons = bach.ToList(); await _cuponicoRepository.SaveAsync(coupons); var createdCoupons = AffiliateCouponCreated.CreateMany(coupons); await _publisher.PublishAsync(createdCoupons); } } if (couponsToChange.Any()) { var baches = couponsToChange.BatchesOf(50); foreach (var bach in baches) { var coupons = bach.ToList(); await _cuponicoRepository.SaveAsync(coupons); var changedCoupons = AffiliateCouponChanged.CreateMany(coupons); await _publisher.PublishAsync(changedCoupons); } } if (couponsToCancel.Any()) { var baches = couponsToCancel.BatchesOf(50); foreach (var bach in baches) { var coupons = bach.ToList(); await _cuponicoRepository.DeleteAsync(coupons.Select(x => x.CouponId).ToList()); var canceledStores = AffiliateCouponCanceled.CreateMany(coupons); await _publisher.PublishAsync(canceledStores); } } }