Esempio n. 1
0
        public void SendLotteryResetMails(LotteryDrawing drawing, OrganiserMember member)
        {
            // alles wird rückgesetzt => jeder bekommt eine Mail
            foreach (var game in Drawing.Games)
            {
                var email = new LotteryDrawingStudentEmail("LotteryResetStudent")
                {
                    Subject = "[nine] Wahlverfahren " + Drawing.Lottery.Name,
                    Game    = game,
                    User    = UserService.GetUser(game.Student.UserId),
                    Drawing = drawing,
                    Member  = member
                };

                try
                {
                    if (email.User != null)
                    {
                        EmailService.Send(email);
                        Logger.InfoFormat("E-Mail an {0} erfolgreich versendet", email.User.Email);
                    }
                }
                catch (Exception exMail)
                {
                    Logger.ErrorFormat("Fehler bei E-Mail Versand an: {0} - Ursache {1}", email.User.Email,
                                       exMail.Message);
                }
            }
        }
Esempio n. 2
0
        public void SendLotteryClearedMails(LotteryDrawing drawing, OrganiserMember member)
        {
            foreach (var game in Drawing.Games)
            {
                var nNeeded = game.CoursesWanted - game.Seats.Count;

                // Versand nur an jene, die Plätze auf der Warteliste haben
                if (nNeeded > 0)
                {
                    var email = new LotteryDrawingStudentEmail("LotteryClearedStudent")
                    {
                        Subject = "[nine] Wahlverfahren " + Drawing.Lottery.Name,
                        Game    = game,
                        User    = UserService.GetUser(game.Student.UserId),
                        Drawing = drawing,
                        Member  = member
                    };

                    try
                    {
                        if (email.User != null)
                        {
                            EmailService.Send(email);
                            Logger.InfoFormat("E-Mail an {0} erfolgreich versendet", email.User.Email);
                        }
                    }
                    catch (Exception exMail)
                    {
                        Logger.ErrorFormat("Fehler bei E-Mail Versand an: {0} - Ursache {1}", email.User.Email,
                                           exMail.Message);
                    }
                }
            }
        }
Esempio n. 3
0
        public void SendLotteryRemoveMail(LotteryDrawing drawing, OrganiserMember member, Lottery lottery, Course course, OccurrenceSubscription subscription)
        {
            var email = new LotteryDrawingStudentEmail("LotteryRemoveStudent")
            {
                Subject      = "[nine] Wahlverfahren " + Drawing.Lottery.Name,
                Game         = null,
                User         = UserService.GetUser(subscription.UserId),
                Lottery      = lottery,
                Drawing      = drawing,
                Member       = member,
                Course       = course,
                Subscription = subscription,
            };

            try
            {
                if (email.User != null)
                {
                    EmailService.Send(email);
                    Logger.InfoFormat("E-Mail an {0} erfolgreich versendet", email.User.Email);
                }
            }
            catch (Exception exMail)
            {
                Logger.ErrorFormat("Fehler bei E-Mail Versand an: {0} - Ursache {1}", email.User.Email,
                                   exMail.Message);
            }
        }
Esempio n. 4
0
        public void SendDrawingMails(LotteryDrawing drawing)
        {
            foreach (var game in Drawing.Games)
            {
                var nNeeded = game.CoursesWanted - game.Seats.Count;

                // Versand nur an jene, die noch Plätze brauchen
                if (nNeeded > 0)
                {
                    var email = new LotteryDrawingStudentEmail("LotteryDrawingStudent")
                    {
                        Subject = "[nine] Wahlverfahren " + Drawing.Lottery.Name,
                        Game    = game,
                        User    = UserService.GetUser(game.Student.UserId),
                        Drawing = drawing
                    };

                    try
                    {
                        EmailService.Send(email);
                        Logger.InfoFormat("E-Mail an {0} erfolgreich versendet", email.User.Email);
                    }
                    catch (Exception exMail)
                    {
                        Logger.ErrorFormat("Fehler bei E-Mail Versand an: {0} - Ursache {1}", email.User.Email,
                                           exMail.Message);
                    }
                }
            }
        }
Esempio n. 5
0
        /// <summary>
        /// Aufruf durch JobScheduler
        /// </summary>
        /// <param name="id"></param>
        public void RunLottery(Guid id)
        {
            var lotteryService = new DrawingService(db, id);

            lottery = lotteryService.Lottery;

            // Nachsehen, ob es die Lottery noch gibt
            if (lottery == null)
            {
                logger.ErrorFormat("Lottery with id {0} does not exist.", id);
                RemoveJob(id);
                return;
            }

            // schauen, ob es passt
            var today = DateTime.Today;

            if (lottery.FirstDrawing > today)
            {
                // Vor der ersten Ausführung => nix machen
                logger.InfoFormat("Verlosung {0} startet erst am {1}", lottery.Name, lottery.FirstDrawing.ToShortDateString());
                return;
            }

            if (lottery.LastDrawing < today)
            {
                logger.InfoFormat("Verlosung {0} wurde beendet am {1}", lottery.Name, lottery.LastDrawing.ToShortDateString());
                // Jon löschen, wird nicht mehr benötigt
                RemoveJob(id);
                return;
            }

            logger.InfoFormat("Start Verlosung {0}", lottery.Name);

            lotteryService.InitLotPots();
            var rounds = lotteryService.ExecuteDrawing();

            db.SaveChanges();

            logger.InfoFormat("Ende Verlosung {0} - mit {1} Iterationen", lottery.Name, rounds);
            logger.InfoFormat("Start Mailversand {0}", lottery.Name);

            var drawing = new LotteryDrawing();

            drawing.Start   = DateTime.Now;
            drawing.Lottery = lottery;

            var mailService = new LotteryMailService(lotteryService);

            mailService.SendDrawingMails(drawing);
            logger.InfoFormat("Ende Mailversand {0}", lottery.Name);

            if (lottery.LastDrawing.Date == today)
            {
                // nach der letzen Verlosung den Job löschen
                RemoveJob(id);
            }
        }
        public void Setup()
        {
            _randomNumberGenerator = new Mock<Random>();

            _lotteryDrawing = new LotteryDrawing(LotteryType.Normal, _jackpot);
            _lotteryDrawing.ChanceMachine = _randomNumberGenerator.Object;

            _randomNumberGenerator
                .Setup(x => x.Next(1, 25000001))
                .Returns(() => 12345);
        }
        public void Setup()
        {
            _luckyBuyer = new Person();
            _unluckyBuyer = new Person();

            _randomNumberGenerator = new Mock<Random>();

            _lotteryDrawing = new LotteryDrawing(LotteryType.Normal, _jackpot);
            _lotteryDrawing.ChanceMachine = _randomNumberGenerator.Object;

            _lotteryDrawing.SoldTickets.Add(new LotteryTicket(12345, _luckyBuyer));
            _lotteryDrawing.SoldTickets.Add(new LotteryTicket(54321, _unluckyBuyer));
        }
Esempio n. 8
0
        private static void StartTheDraws(InputReader inputReader)
        {
            LotteryDrawings = new List <LotteryDrawing>();
            for (int i = 1; i <= inputReader.NumberOfSimulatedDraws; i++)
            {
                Console.Write("\r{0} / {1}", i, inputReader.NumberOfSimulatedDraws);

                LotteryDrawing draw = new LotteryDrawing();

                NumbersContainer numbersContainer = new NumbersContainer(inputReader.SmallestNumber, inputReader.BiggestNumber);
                draw.Numbers = numbersContainer.DrawNumbers(inputReader.NumberOfNumbersToDrawn);

                if (inputReader.HasSuperNumbers)
                {
                    NumbersContainer superNumbersContainer = new NumbersContainer(inputReader.SmallestSuperNumber, inputReader.BiggestSuperNumber);
                    draw.SuperNumbers = superNumbersContainer.DrawNumbers(inputReader.NumberOfSuperNumbersToDrawn);
                }
                LotteryDrawings.Add(draw);
            }
            Console.Write("\n");
        }