Exemple #1
0
        public async Task <IActionResult> CheckCardNumber(CheckReservationModel model)
        {
            UserGetDetailsRes user = await _userRepository.GetCurrentUser();

            String error1 = "Sorry, You don't have enough credits on your CineMagic Credit Card to buy this ticket.";
            String error2 = "You entered wrong credit card number, click on a button and try again.";

            long cardNumber = Convert.ToInt64(model.cardNumber);

            if (user.CinemaCreditCard == null || cardNumber != user.CinemaCreditCard.CardNumber)
            {
                model.Error = error2;
                return(View("Unsuccessfully", model));
            }
            else if (user.CinemaCreditCard.Balance < 7.0)
            {
                model.Error = error1;
                return(View("Unsuccessfully", model));
            }
            else
            {
                await _userRepository.CreateReservationAsync(model);

                return(View("Successfully"));
            }
        }
        public async Task <UserGetDetailsRes> GetCurrentUser()
        {
            var          userId = _httpContextAccessor.HttpContext.User.FindFirstValue(ClaimTypes.NameIdentifier);
            IdentityUser user   = await _dbContext.Users
                                  .Where(u => u.Id == userId)
                                  .FirstOrDefaultAsync();

            CinemaCreditCardGetDetailsReq req = new CinemaCreditCardGetDetailsReq
            {
                UserId = userId
            };

            CinemaCreditCardGetDetailsRes creditCard = await _cinemaCreditCardRepository.GetCreditCard(req);

            UserGetDetailsRes userDetails = new UserGetDetailsRes
            {
                User             = user,
                CinemaCreditCard = creditCard
            };

            return(userDetails);
        }