public async Task CancelReservation(CancelReservationModel model)
        {
            var userId = _httpContextAccessor.HttpContext.User.FindFirstValue(ClaimTypes.NameIdentifier);

            Reservation reservation = await _dbContext.Reservations
                                      .Where(rs => rs.UserId == userId && rs.TicketId == model.TicketId)
                                      .FirstOrDefaultAsync();

            Ticket ticket = await _dbContext.Tickets
                            .Where(t => t.Id == model.TicketId)
                            .FirstOrDefaultAsync();

            AvailableSeat availableSeat = new AvailableSeat
            {
                ProjectionId = model.ProjectionId,
                SeatId       = model.SeatId
            };

            CinemaCreditCard card = await _dbContext.CinemaCreditCards
                                    .Where(u => u.UserId == userId)
                                    .FirstOrDefaultAsync();

            card.Balance = card.Balance + 7;

            _dbContext.Reservations.Remove(reservation);
            _dbContext.Tickets.Remove(ticket);
            _dbContext.AvailableSeats.Add(availableSeat);
            await _dbContext.SaveChangesAsync();
        }
Beispiel #2
0
        private async Task AddReservation(CheckReservationModel model, int seatId)
        {
            var userId = _httpContextAccessor.HttpContext.User.FindFirstValue(ClaimTypes.NameIdentifier);

            CinemaCreditCard cinemaCreditCard = await _dbContext.CinemaCreditCards
                                                .Where(c => c.UserId == userId)
                                                .FirstOrDefaultAsync();

            double balance = cinemaCreditCard.Balance;

            cinemaCreditCard.Balance = balance - 7.0;


            Ticket ticket = await _dbContext.Tickets
                            .Where(t => t.ProjectionId == model.ProjectionId && t.SeatId == seatId)
                            .FirstOrDefaultAsync();

            Reservation reservation = new Reservation
            {
                TicketId = ticket.Id,
                UserId   = userId
            };

            _dbContext.Reservations.Add(reservation);
            await _dbContext.SaveChangesAsync();
        }
Beispiel #3
0
        public async Task AddFunds(AddFundsModel res)
        {
            CinemaCreditCard card = await _dbContext.CinemaCreditCards
                                    .Where(u => u.CinemaCreditCardNumber == res.CardNumber)
                                    .FirstOrDefaultAsync();

            card.Balance = card.Balance + res.Balance;

            await _dbContext.SaveChangesAsync();
        }
Beispiel #4
0
        public async Task <CinemaCreditCardGetDetailsRes> GetUserCreditCard(CreditCardModel res)
        {
            IdentityUser user = await _dbContext.Users
                                .Where(u => u.Email == res.UserMail)
                                .FirstOrDefaultAsync();

            CinemaCreditCard card = await _dbContext.CinemaCreditCards
                                    .Where(u => u.UserId == user.Id)
                                    .FirstOrDefaultAsync();

            return(new CinemaCreditCardGetDetailsRes
            {
                CardNumber = card.CinemaCreditCardNumber
            });
        }
Beispiel #5
0
        public async Task AddCreditCard(CreditCardModel res)
        {
            string userId = await _dbContext.Users
                            .Where(u => u.Email == res.UserMail)
                            .Select(u => u.Id)
                            .FirstOrDefaultAsync();

            CinemaCreditCard card = new CinemaCreditCard
            {
                UserId  = userId,
                Balance = res.Balance,
                CinemaCreditCardNumber = GetCardNumber()
            };

            _dbContext.Add(card);
            await _dbContext.SaveChangesAsync();
        }