コード例 #1
0
        private PrizeWinnerModel DrawWinner(int prizeId)
        {
            PrizeTicket winningTicket   = null;
            Attendee    winningAttendee = null;

            // Check to see if there are any prizes that are not won
            if (_prizeDataAccessor.GetNumberPrizesAvailbleToDraw(prizeId) > 0)
            {
                // Draw a prize winner
                winningTicket = _prizeDataAccessor.DrawPrizeWinner(prizeId);

                // Check if winning ticket is not null to prevent NullReferenceException
                if (winningTicket != null)
                {
                    winningAttendee = _attendeeDataAccessor.Get(winningTicket.AttendeeId);
                }
            }

            PrizeWinnerModel winnerModel = null;

            if (winningTicket != null)
            {
                winnerModel = new PrizeWinnerModel
                {
                    Name             = winningAttendee.FirstName + " " + winningAttendee.LastName,
                    OrganizationName = winningAttendee.Company,
                    AttendeeId       = winningAttendee.Id
                };
            }

            return(winnerModel);
        }
コード例 #2
0
ファイル: TicketPrintService.cs プロジェクト: melfallas/SILO
        // Método para imprimir la lista de los números premiados y ganadores
        public void printPrizeTicket(LTD_LotteryDraw pDraw, string[] pWinningNumberArray, bool pSendToPrint, bool pShowInPanel)
        {
            // Configurar impresión para Ticket de Venta
            TicketPrinter ticketPrinter = new TicketPrinter();
            PrizeTicket   prizeTicket   = new PrizeTicket();

            prizeTicket.companyName = UtilityService.getCompanyName();
            prizeTicket.title       = "NÚMEROS PREMIADOS";
            // Obtener datos del punto de venta
            LPS_LotteryPointSale pointSale = UtilityService.getPointSale();

            prizeTicket.pointSaleName = pointSale.LPS_DisplayName;
            prizeTicket.drawDate      = pDraw.LTD_CreateDate;
            // Obtener datos de tipo de sorteo
            LotteryDrawTypeRepository drawTypeRepo = new LotteryDrawTypeRepository();
            LDT_LotteryDrawType       drawType     = drawTypeRepo.getById(pDraw.LDT_LotteryDrawType);

            prizeTicket.drawTypeCode = drawType.LDT_Code;
            // Llenar datos del número de lista
            prizeTicket.createDate = DateTime.Now;
            // Obtener datos de los premios
            PrizeFactorService     prizeFactorService = new PrizeFactorService();
            LPF_LotteryPrizeFactor prizeFactor        = prizeFactorService.getByGroup(drawType.LDT_Id);

            if (prizeFactor != null)
            {
                prizeTicket.prizeFactorArray[0] = prizeFactor.LPF_FirtsPrizeFactor;
                prizeTicket.prizeFactorArray[1] = prizeFactor.LPF_SecondPrizeFactor;
                prizeTicket.prizeFactorArray[2] = prizeFactor.LPF_ThirdPrizeFactor;
            }
            // Obtener listado de información de ganadores
            LotteryListRepository listRepository = new LotteryListRepository();

            prizeTicket.listWinningInfo = listRepository.getWinningNumbersList(pDraw, pWinningNumberArray);
            prizeTicket.winnerNumbers   = pWinningNumberArray;
            ticketPrinter.prizeTicket   = prizeTicket;
            // Obtener nombre de impresora y enviar impresión
            string printerName = UtilityService.getTicketPrinterName();

            ticketPrinter.printPrizeTicket(printerName, pSendToPrint);
            // Almacenar importe de premio para el sorteo
            DrawBalanceService drawBalanceService = new DrawBalanceService();

            drawBalanceService.saveBalance(pDraw.LDT_LotteryDrawType, pDraw.LTD_CreateDate, 0, ticketPrinter.prizeImport);
            if (pShowInPanel)
            {
                //Console.Write(ticketPrinter.ticketStringText);
                MessageBox.Show(ticketPrinter.ticketStringText);
            }
        }
コード例 #3
0
        /// <summary>
        /// DrawPrizeWinners - Draws winners for all instances of of a prize
        /// </summary>
        /// <param name="prizeId"></param>
        /// <returns>List of tickets that were drawn as winners</returns>
        public IList <PrizeTicket> DrawPrizeWinners(int prizeId)
        {
            IList <PrizeTicket> winningTickets = new List <PrizeTicket>();

            int numberOfAvailiblePrizes = GetNumberPrizesAvailbleToDraw(prizeId);

            for (int i = 0; i < numberOfAvailiblePrizes; i++)
            {
                PrizeTicket winningTicket = DrawPrizeWinner(prizeId);
                if (winningTicket != null)
                {
                    winningTickets.Add(winningTicket);
                }
            }

            return(winningTickets);
        }
コード例 #4
0
        /// <summary>
        /// DrawPrizeWinner - Draw prize winner
        /// </summary>
        /// <param name="prizeId">prize id</param>
        /// <returns>PrizeTicket, ticket for attendee</returns>
        public PrizeTicket DrawPrizeWinner(int prizeId)
        {
            if (GetNumberPrizesAvailbleToDraw(prizeId) < 1)
            {
                throw new Exception("Attempted to draw for prize with no instances available");
            }

            IList <PrizeTicket> prizeTickets = GetEligiblePrizeTickets(prizeId);

            PrizeTicket winningTicket   = null;
            int         numberOfTickets = prizeTickets.Count();

            if (numberOfTickets > 0)
            {
                int winner = _randomGenerator.Next(numberOfTickets);
                winningTicket = prizeTickets[winner];

                InsertPrizeWinner(winningTicket.PrizeId, winningTicket.AttendeeId);
            }

            return(winningTicket);
        }