Exemplo n.º 1
0
        /// <summary>
        /// After ticket registration, immediately verify if it's a lottery ticket.
        /// </summary>
        public async Task ReportOnLottery(MovieTicket ticket, string connectionId)
        {
            var movieId   = Guid.Parse(ticket.MovieId);
            var theaterId = Guid.Parse(ticket.TheaterId);

            var movie = db.Query <Movie>()
                        .Where(s => s.Id == movieId)
                        .Single();

            if (movie.TicketType == TicketType.DrawingTicket)
            {
                var theater = TheatersContext.GetTheaters().Single(s => s.Id == theaterId);

                var message = new
                {
                    Theater         = theater.Name,
                    MovieTitle      = movie.Title,
                    Time            = ticket.Time,
                    NumberOfTickets = ticket.NumberOfTickets,
                    DrawingDate     = DateTime.Now.AddDays(14).ToString("dddd, dd MMMM", CultureInfo.InvariantCulture)
                };

                logger.LogInformation("Sending OrderedLotteryTicket", message);

                await hub.Clients.Client(connectionId).SendAsync("OrderedLotteryTicket", message);
            }
        }
Exemplo n.º 2
0
        public async Task Handle(OrderSubmission message, IMessageHandlerContext context)
        {
            if (!context.MessageHeaders.TryGetValue("SignalRConnectionId", out var userConnectionId))
            {
                logger.LogError("Could not find SignalR ConnectionId from message headers.");
                return;
            }

            var movie   = db.Query <Movie>().Where(s => s.Id == message.Movie).SingleOrDefault();
            var theater = TheatersContext.GetTheaters().Single(s => s.Id == message.Theater);

            if (movie.TicketType == TicketType.DrawingTicket)
            {
                return;
            }

            var ticket = new
            {
                TheaterId       = theater.Id.ToString(),
                Theater         = theater.Name,
                MovieId         = movie.Id.ToString(),
                MovieTitle      = movie.Title,
                Time            = message.MovieTime,
                NumberOfTickets = message.NumberOfTickets
            };

            await ticketHubContext.Clients.Client(userConnectionId).SendAsync("OrderedRegularTicket", ticket);
        }
        public Task Handle(OrderSubmission message, IMessageHandlerContext context)
        {
            var movie   = db.Query <Movie>().Where(s => s.Id == message.Movie).SingleOrDefault();
            var theater = TheatersContext.GetTheaters().Single(s => s.Id == message.Theater);

            var screenMessage = "Thank you for your order.<br /><br />";

            screenMessage += "<table>";
            screenMessage += $"<tr><td><b>Movie</b></td><td>: {movie.Title}</td></tr>";
            screenMessage += $"<tr><td><b>Theater</b></td><td>: {theater.Name}</td></tr>";
            screenMessage += $"<tr><td><b>Time</b></td><td>: {message.MovieTime}</td></tr>";
            screenMessage += $"<tr><td><b>Tickets</b></td><td>: {message.NumberOfTickets}</td></tr>";
            screenMessage += "</tr></table><br /><br />";

            if (message.Approved)
            {
                screenMessage +=
                    $"Your order will soon arrive in your email.";
            }
            else
            {
                // For simplicity, it's always 2 weeks in advance.
                screenMessage += $"On <b>{DateTime.Now.AddDays(14):M}</b>, you'll receive an email and hear if you have been selected.";
            }

            var returnMessage = new
            {
                MovieTitle = movie.Title
            };

            return(ticketHubContext.Clients.All.SendAsync("OrderSubmission", screenMessage));
        }
Exemplo n.º 4
0
        public ActionResult Movie(string movieurl)
        {
            var movie = db.Query <Movie>()
                        .Where(s => s.UrlTitle == movieurl)
                        .SingleOrDefault();

            var vm = new MovieViewModel();

            vm.Movie    = movie;
            vm.Theaters = TheatersContext.GetTheaters();

            return(View(vm));
        }
 public NewsMessagesController(TheatersContext context, IStringLocalizer <NewsMessagesController> localizer)
 {
     _context   = context;
     _localizer = localizer;
 }