public static void RegisterGiveaways() { List <Giveaway> closedGiveaways = new List <Giveaway>(); using (AppIdentityDbContext context = AppIdentityDbContext.Create()) //using (IUnitOfWork unitOfWork = new UnitOfWork(context)) { IUnitOfWork unitOfWork = new UnitOfWork(context); IGiveawayRepository giveawayRepository = new GiveawayRepository(unitOfWork); IListingRepository listingRepository = new ListingRepository(unitOfWork); IUserRepository userRepository = new UserRepository(unitOfWork); IUserService userService = new UserService(listingRepository, userRepository, null, giveawayRepository, null, null, unitOfWork); //List<Auction> openAuctions = auctionService.GetAuctions().Where(a => a.IsOpen()).ToList(); // get auctions that: are not open (have ended), have some bids (which are assumed to be valid), and has no winners assigned yet closedGiveaways = userService.GetGiveaways().Where(a => a.IsOpen() == false && String.IsNullOrWhiteSpace(a.WinnerID) == true).ToList(); userService.Dispose(); giveawayRepository.Dispose(); listingRepository.Dispose(); userRepository.Dispose(); unitOfWork.Dispose(); } foreach (Giveaway giveaway in closedGiveaways) { BackgroundJob.Enqueue(() => RegisterGiveaways(giveaway.GiveawayID)); } }
public static void CloseGiveaway(int giveawayId) { using (AppIdentityDbContext context = AppIdentityDbContext.Create()) { IUnitOfWork unitOfWork = new UnitOfWork(context); IGiveawayRepository giveawayRepository = new GiveawayRepository(unitOfWork); IListingRepository listingRepository = new ListingRepository(unitOfWork); IUserRepository userRepository = new UserRepository(unitOfWork); IUserService userService = new UserService(listingRepository, userRepository, null, giveawayRepository, null, null, unitOfWork); userService.DrawGiveawayWinners(giveawayId); userService.Dispose(); giveawayRepository.Dispose(); listingRepository.Dispose(); userRepository.Dispose(); unitOfWork.Dispose(); } }