Exemplo n.º 1
0
        public ActionResult History(String customerId)
        {
            var currentUser = Membership.GetUser();
            var customer    = this.customerService.GetCustomerById((Guid)currentUser.ProviderUserKey);


            List <TicketModelView> tickets = new List <TicketModelView>();

            foreach (var ticket in customer.Tickets)
            {
                var ticketModelView = new TicketModelView()
                {
                    Event = new EventModelView()
                    {
                        Id      = ticket.Event.Id,
                        Name    = ticket.Event.Name,
                        Price   = ticket.Event.Price,
                        Picture = ticket.Event.Picture
                    },
                    DtEvent  = ticket.DtEvent,
                    Quantity = ticket.Quantity,
                    Status   = ticket.Status
                };

                tickets.Add(ticketModelView);
            }

            return(View(tickets));
        }
Exemplo n.º 2
0
        public ActionResult Save(TicketModelView model)
        {
            try
            {
                var ticket      = Mapper.Map <TicketModelView, CustomerTicket>(model);
                var currentUser = Membership.GetUser();
                var eventModel  = this.eventService.GetById(model.EventId);

                var customer = this.customerService.GetCustomerById((Guid)currentUser.ProviderUserKey);

                var customerPayment = new CustomerPayment()
                {
                    CreditCardNumber = model.CreditCardNumber,
                    SecurityCode     = model.SecurityCode,
                    HolderName       = model.HolderName,
                    Expiration       = model.Expiration,
                    CreditCardBrand  = (CreditCardBrandEnum)Convert.ToInt32(model.CreditCardBrand),
                    KeepSave         = model.KeepSave
                };

                ticket.Event = eventModel;

                this.customerService.CreateTicket(ticket, customerPayment, customer);
                return(JsonSuccess());
            }
            catch (System.Exception ex)
            {
                return(JsonError(ex.Message));
            }
        }
Exemplo n.º 3
0
        public ActionResult SaveQuick(TicketModelView model)
        {
            try
            {
                var ticket = new CustomerTicket()
                {
                    Quantity = model.Quantity,
                    DtEvent  = model.DtEvent,
                };

                var currentUser = Membership.GetUser();
                var eventModel  = this.eventService.GetById(model.EventId);
                var customer    = this.customerService.GetCustomerById((Guid)currentUser.ProviderUserKey);

                var customerPayment = new CustomerPayment()
                {
                    InstantBuy   = Guid.Parse(model.PaymentToken),
                    SecurityCode = model.SecurityCode
                };

                ticket.Event = eventModel;

                this.customerService.CreateQuickTicket(ticket, customerPayment, customer);

                return(JsonSuccess());
            }
            catch (System.Exception ex)
            {
                return(JsonError(ex.Message));
            }
        }
Exemplo n.º 4
0
        public ActionResult Index(Guid ticketId)
        {
            var eventDomain    = this.eventService.GetById(ticketId);
            var eventModelView = Mapper.Map <Event, EventModelView>(eventDomain);

            var currentUser = Membership.GetUser();
            var customer    = this.customerService.GetCustomerById(new Guid(currentUser.ProviderUserKey.ToString()));
            List <PaymentTokenModelView> paymentTokens = new List <PaymentTokenModelView>();

            if (customer.PaymentTokenizer != null && customer.PaymentTokenizer.Count > 0)
            {
                foreach (var paymentToken in customer.PaymentTokenizer)
                {
                    var payment = this.customerPaymentService.GetCustomerPaymentByToken(paymentToken);

                    if (payment != null)
                    {
                        paymentTokens.Add(new PaymentTokenModelView()
                        {
                            CreditCardBrand  = payment.CreditCardBrand,
                            CreditCardNumber = payment.CreditCardNumber,
                            InstantBuy       = payment.InstantBuy,
                            SecurityCode     = payment.SecurityCode
                        });
                    }
                }
            }

            var enumSource = EnumerationUtils.GetAll <CreditCardBrandEnum>();

            ViewBag.CreditCardBrandEnum = enumSource.Select(x => new SelectListItem
            {
                Text  = x.Value,
                Value = x.Key.ToString()
            });

            if (paymentTokens.Count > 0)
            {
                ViewBag.PaymentTokens = paymentTokens.Select(x => new SelectListItem
                {
                    Text  = $"{x.CreditCardBrand.ToString()} - {x.CreditCardNumber}",
                    Value = x.InstantBuy.ToString()
                }).ToList();
            }

            TicketModelView ticket = new TicketModelView()
            {
                Event = eventModelView,
            };

            return(View(ticket));
        }
Exemplo n.º 5
0
        public async Task <ActionResult <TicketModel> > PostTicketModel([FromBody] TicketModelView ticketModelView)
        {
            if (ticketModelView.CountTickets == null || ticketModelView.CountTickets <= 0 || ticketModelView.SessionId == null)
            {
                return(StatusCode(400));
            }
            SessionModel session = await _context.Sessions.Include(a => a.Tickets).FirstOrDefaultAsync(a => a.Id.Equals(ticketModelView.SessionId));

            if (session == null)
            {
                return(StatusCode(400));
            }
            int countNowSeats = 0;

            foreach (var ticketSeat in session.Tickets)
            {
                countNowSeats += ticketSeat.CountTickets;
            }
            if (countNowSeats + ticketModelView.CountTickets > session.NumberSeats)
            {
                return(StatusCode(406));
            }

            TicketModel ticket = new TicketModel
            {
                Id           = Guid.NewGuid().ToString(),
                DateBuy      = DateTime.Now,
                Price        = session.PriceTicket * ticketModelView.CountTickets,
                SessionId    = ticketModelView.SessionId,
                CountTickets = ticketModelView.CountTickets,
            };

            _context.Tickets.Add(ticket);
            await _context.SaveChangesAsync();

            return(Ok(ticket));
        }