Exemple #1
0
        private void buttonX1_Click(object sender, EventArgs e)
        {
            MyQRCode qrcode = new MyQRCode();
            //qrcode.EncodeToCtrl(this.qrCodeGraphicControl1.Text + 1, this.qrCodeGraphicControl1);

            //qrcode.EncodeToPng("aa","aa",QRCodeSaveSize.Size165X165);
            //qrcode.EncodeToImage(QRCodeSaveSize.Size165X165);
        }
        public List <TicketDTO> BuyTickets(string username, TicketRequest ticketRequest)
        {
            ticketRequest.Seats = FormatSeats(ticketRequest.Seats);

            CheckTicketValid(ticketRequest);

            List <Ticket> ticketsToAdd = new List <Ticket>();

            foreach (var seat in ticketRequest.Seats)
            {
                var promotionFound = dbContext.Promotions.FirstOrDefault(x => x.Code == seat.PromotionCode && x.IsActive == true);
                var ticket         = new Ticket()
                {
                    Username    = username,
                    ShowtimeId  = ticketRequest.ShowtimeId,
                    TicketType  = seat.TicketType,
                    Seat        = seat.Seat,
                    PromotionId = promotionFound != null ? promotionFound.Id : (int?)null,
                    Price       = GetTicketPrice(ticketRequest.ShowtimeId, seat.TicketType, promotionFound),
                    ModifiedAt  = DateTime.Now,
                };
                ticketsToAdd.Add(ticket);
            }

            dbContext.AddRange(ticketsToAdd);
            Save();

            List <int> ticketIds = ticketsToAdd.Select((x) => x.Id).ToList();
            var        user      = dbContext.Users.Where(u => u.Username == username).FirstOrDefault();
            var        showtime  = dbContext.Showtime.Where(s => s.Id == ticketRequest.ShowtimeId).Include(m => m.Movie).FirstOrDefault();
            Thread     thread    = new Thread(() => EmailService.SendEmail(MyQRCode.GenerateQRCodeImage(ticketIds), user, showtime.Movie));

            thread.Start();

            List <TicketDTO> resultList = ticketsToAdd.Select((x) => new TicketDTO(x)).ToList();

            return(resultList);
        }