public async Task <bool> LoanRequestAsync(MovieLoanRequest request) { var requestedMovie = await _dataContext.MovieLibrary.SingleOrDefaultAsync(m => m.MovieId == request.MovieId); if (requestedMovie.Avaliable < 1) { return(false); } var movie = await(from m in _dataContext.Movies where m.MovieGuid == request.MovieId select m).FirstOrDefaultAsync(); var studio = await(from s in _dataContext.Studios where s.StudioGuid == request.StudioId select s).FirstOrDefaultAsync(); var loanInstance = new MovieLoanInstance { MovieId = movie.Id, StudioId = studio.Id, TimeOfLoan = DateTime.Now }; requestedMovie.Avaliable--; await _dataContext.MovieLoans.AddAsync(loanInstance); var created = await _dataContext.SaveChangesAsync(); return(created > 0); }
public async Task <ActionResult> ReturnRequest(MovieLoanRequest request) { var response = await _movieLibraryService.ReturnRequestAsync(request); if (response == false) { return(NotFound(new { Error = "Loan not active" })); } return(Ok(new { Success = "Movie returned" })); }
public async Task <ActionResult <MovieResponse> > LoanRequest(MovieLoanRequest request) { var response = await _movieLibraryService.LoanRequestAsync(request); if (response == false) { return(NotFound(new { Error = "Movie not avaliable for the moment" })); } return(Ok(new { Success = "Movie loan registered" })); }
public async Task <bool> ReturnRequestAsync(MovieLoanRequest request) { var movieLoanToReturn = await _dataContext.MovieLoans.SingleOrDefaultAsync(m => m.Movie.MovieGuid == request.MovieId && m.Studio.StudioGuid == request.StudioId); var requestedMovieLibraryInstance = await _dataContext.MovieLibrary.SingleOrDefaultAsync(m => m.MovieId == request.MovieId); if (movieLoanToReturn == null) // No loan instance found { return(false); } movieLoanToReturn.IsReturned = true; movieLoanToReturn.TimeOfReturn = DateTime.Now; requestedMovieLibraryInstance.Avaliable++; var created = await _dataContext.SaveChangesAsync(); return(created > 0); }