private static void Main(string[] args) { DateTime startTime = DateTime.Now; var initialMemberships = 10; var initialPurchasesPerMembership = 30; var initialDaysBetweenPurchases = 20; var memberships = 5000; var purchasesPerMembership = 75; var daysBetweenPurchases = 10; if (0 == 1) { var seeder = new DatabaseSeeder(); seeder.CreateInitialData(); seeder.CreateTransactions(initialMemberships, initialPurchasesPerMembership, initialDaysBetweenPurchases); } else if (0 == 1) { var seeder = new DatabaseSeeder(false); seeder.DisplayTransactionDates(); } else if (0 == 0) { var seeder = new DatabaseSeeder(false); seeder.CreateTransactions(memberships, purchasesPerMembership, daysBetweenPurchases); } else if (0 == 1) { var seeder = new DatabaseSeeder(false); seeder.CreateCountries(); } else if (0 == 1) { var seeder = new DatabaseSeeder(); } else if (0 == 1) { var seeder = new DatabaseSeeder(false); seeder.PumpMembershipsViaThreads(memberships, purchasesPerMembership, daysBetweenPurchases); } else if (0 == 1) { var seeder = new DatabaseSeeder(false); seeder.CreateTestMembership("mytesttoken" + Guid.NewGuid(), 1, 5000, 1); } else if (0 == 1) { var context = new YContext(); IYesrRepository yesrRepository = new YesrRepository(context); yesrRepository.RetrieveMonthlyStatsByMembership(22, "AED"); } Console.WriteLine("Completed " + memberships + " memberships at " + DateTime.Now + "! Each has a max of " + purchasesPerMembership + " purchases with " + daysBetweenPurchases + " max days between purchases. The process took: " + DateTime.Now.Subtract(startTime).TotalMinutes + " minutes."); Console.ReadLine(); }
public override void Run() { // This is a sample worker implementation. Replace with your logic. Trace.WriteLine("Global.YESR.Worker entry point called", "Information"); while (true) { // I wanted to make sure that the context is per request!!!! // This is a best practice!! // We may have to place this inside the while loop!! _context = new YContext(); _yesrRepository = new YesrRepository(_context); // Give a priority to test membership pumps // Initially I wanted to create a worker role for each queue. But the local emulator was running really slow and also // the Azure prices are centered around the hours an instance is running! So the more running instances, the more expensive // it becomes. // Currently the role instances cost between .12 cents/hr to .96 cents/hr. So if we have two small instances (Web and Worker), // our monthly bill is about 750 hrs * .24 cents = $180/month!! var msg = _testMembershipsPumpQueue.GetMessage(TimeSpan.FromSeconds(5)); while (msg != null) { var pumpKey = msg.AsString; _yesrRepository.ProcessPumpTestMembership(Int32.Parse(pumpKey)); _testMembershipsPumpQueue.DeleteMessage(msg.Id, msg.PopReceipt); msg = _testMembershipsPumpQueue.GetMessage(TimeSpan.FromSeconds(5)); } msg = _membershipsPumpQueue.GetMessage(TimeSpan.FromSeconds(5)); while (msg != null) { var pumpKey = msg.AsString; _yesrRepository.ProcessPumpMemberships(Int32.Parse(pumpKey)); _membershipsPumpQueue.DeleteMessage(msg.Id, msg.PopReceipt); msg = _membershipsPumpQueue.GetMessage(TimeSpan.FromSeconds(5)); } if (_context != null) { _context.Dispose(); _context = null; } Thread.Sleep(1000); Trace.WriteLine("Working", "Information"); } }
public void PrepareRepositories(bool initialize = false) { // Kick the model creation process if not already created (hence force is false). In other words, do // not wait on any database activities. Without this, nothing happens unless some context activities take // place. _context = new YContext(); if (initialize) { // Kick the model creation process if not already created (hence force is false). In other words, do // not wait on any database activities. Without this, nothing happens unless some context activities take // place. _context.Database.Initialize(force: false); } _timeZonesRepository = new TimeZonesRepository(_context); _channelsRepository = new ChannelsRepository(_context); _contactsRepository = new ContactsRepository(_context); _regionsRepository = new RegionsRepository(_context); _countriesRepository = new CountriesRepository(_context); _currenciesRepository = new CurrenciesRepository(_context); _languagesRepository = new LanguagesRepository(_context); _merchantsRepository = new MerchantsRepository(_context); _memberTypesRepository = new MemberTypesRepository(_context); _investmentSchemesRepository = new InvestmentSchemesRepository(_context); _invoicesRepository = new InvoicesRepository(_context); _periodsRepository = new PeriodsRepository(_context); _sponsorsRepository = new SponsorsRepository(_context, _invoicesRepository); _payoutEventsRepository = new PayoutEventsRepository(_context); _investmentUnitsRepository = new InvestmentUnitsRepository(_context, _sponsorsRepository, _invoicesRepository, _payoutEventsRepository); _instancesRepository = new InstancesRepository(_context, _sponsorsRepository, _countriesRepository, _regionsRepository, _investmentSchemesRepository, _currenciesRepository); _membersRepository = new MembersRepository(_context, _channelsRepository, _contactsRepository, _languagesRepository, _currenciesRepository, _timeZonesRepository, _memberTypesRepository, _merchantsRepository, _sponsorsRepository, _countriesRepository); _enrollmentsRepository = new EnrollmentsRepository(_context, _periodsRepository); _purchasesRepository = new PurchasesRepository(_context, _periodsRepository, _invoicesRepository); _cashBackBonusesRepository = new CashBackBonusesRepository(_context); _adminFeesRepository = new AdminFeesRepository(_context); _accumulationReservesRepository = new AccumulationReservesRepository(_context, _investmentUnitsRepository); _referralBonusesRepository = new ReferralBonusesRepository(_context); _membershipsRepository = new MembershipsRepository(_context, _membersRepository, _enrollmentsRepository, _purchasesRepository, _cashBackBonusesRepository, _adminFeesRepository, _accumulationReservesRepository, _referralBonusesRepository, _instancesRepository, _merchantsRepository, _investmentUnitsRepository, _periodsRepository, _currenciesRepository); _yesrRepository = new YesrRepository(_context); }
public UserService(YContext context) { _context = context; }