public async Task <IActionResult> PurchasesMovieAction(PurchaseMovieRequestModel purchase) { //get userId from CurrentUser and create a row in Purchase table await _userService.PurchaseMovie(purchase); return(LocalRedirect("~/")); }
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); }
public async Task <ActionResult> CreatePurchase([FromBody] PurchaseMovieRequestModel model) { await _userService.PurchaseMovie(model); return(Ok()); }
public async Task <bool> IsMoviePurchased(PurchaseMovieRequestModel purchaseRequest) { return(await _purchaseRepository.GetExists(p => p.UserId == purchaseRequest.UserId && p.MovieId == purchaseRequest.MovieId)); }