示例#1
0
        public async Task <IActionResult> PurchasesMovieAction(PurchaseMovieRequestModel purchase)
        {
            //get userId from CurrentUser and create a row in Purchase table
            await _userService.PurchaseMovie(purchase);

            return(LocalRedirect("~/"));
        }
示例#2
0
        public async Task PurchaseMovie(PurchaseMovieRequestModel purchaseMovieRequest)
        {
            if (_currentUserService.UserId != purchaseMovieRequest.UserId)
            {
                throw new HttpException(HttpStatusCode.Unauthorized, "You are not Authorized to purchase");
            }

            purchaseMovieRequest.UserId = _currentUserService.UserId;
            // See if Movie is already purchased.
            if (await IsMoviePurchased(purchaseMovieRequest))
            {
                throw new ConflictException("Movie already Purchased");
            }
            // Get Movie Price from Movie Table
            var movie = await _movieService.GetMovieDetailsById(purchaseMovieRequest.MovieId);

            var purchase = new Purchase
            {
                UserId           = _currentUserService.UserId,
                PurchaseNumber   = (Guid)purchaseMovieRequest.PurchaseNumber,
                TotalPrice       = (decimal)movie.Price,
                PurchaseDateTime = (DateTime)purchaseMovieRequest.PurchaseDateTime,
                MovieId          = purchaseMovieRequest.MovieId
            };

            await _purchaseRepository.Add(purchase);
        }
示例#3
0
        public async Task <ActionResult> CreatePurchase([FromBody] PurchaseMovieRequestModel model)
        {
            await _userService.PurchaseMovie(model);

            return(Ok());
        }
示例#4
0
 public async Task <bool> IsMoviePurchased(PurchaseMovieRequestModel purchaseRequest)
 {
     return(await _purchaseRepository.GetExists(p =>
                                                p.UserId == purchaseRequest.UserId && p.MovieId == purchaseRequest.MovieId));
 }