Пример #1
0
        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();
        }
Пример #2
0
        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");
            }
        }
Пример #3
0
        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);
        }
Пример #4
0
 public UserService(YContext context)
 {
     _context = context;
 }