private async Task <IActionResult> GetMovie(MovieRequestDTO req) { try { var apiResponse = await client.GetMovieAsync(req); if (apiResponse.Contains("Movie not found!")) { return(NotFound()); } var responseDto = JsonConvert.DeserializeObject <MovieResponseDTO>(apiResponse); if (responseDto == null) { return(BadRequest("Something went wrong with the request")); } return(Ok(responseDto)); } catch (System.Exception e) { return(BadRequest(e.Message)); } }
public MovieInfo SaveEditMovieInfo(MovieRequestDTO movie) { if (movie.MovieId > 0) { return(UpdateMovieInfo(movie)); } return(SaveMovieInfo(movie)); }
public HttpResponseMessage CreateEditMovie(MovieRequestDTO request) { if (ModelState.IsValid) { var result = new ResponseContext <MovieResponseDTO>() { Status = ResponseStatus.Warning }; DeltaMovieBL bussiness = new DeltaMovieBL(); try { var response = bussiness.SaveEditMovieInfo(request); if (response != null) { result.Item = new MovieResponseDTO() { MovieId = response.MovieId, Name = response.Name }; result.Status = ResponseStatus.Success; result.Message = string.Format("Movie <b>{0}</b> is successfully save/updated.", response.Name).ToSuccessMessage(); } } catch (Exception Error) { return(Request.CreateResponse(HttpStatusCode.OK, new ResponseContext <MovieResponseDTO>() { Status = ResponseStatus.Error, Message = Error.Message.ToErrorMessage(), Item = new MovieResponseDTO() { } })); } return(Request.CreateResponse(HttpStatusCode.OK, result)); } else { string messages = string.Join(string.Empty, ModelState.Values .SelectMany(x => x.Errors) .Select(x => string.Format("<p>{0}</p>", x.ErrorMessage))); return(Request.CreateResponse(HttpStatusCode.OK, new ResponseContext <MovieResponseDTO>() { Status = ResponseStatus.Error, Message = messages.ToErrorMessage(), Item = new MovieResponseDTO() { } })); } }
private MovieInfo UpdateMovieInfo(MovieRequestDTO movie) { var movieInfo = dbContext.MovieInfoes.Where(m => m.MovieId == movie.MovieId).FirstOrDefault(); if (movieInfo != null) { using (var transaction = dbContext.Database.BeginTransaction()) { //update movie details. try { movieInfo.Name = movie.MovieName; movieInfo.Plot = movie.Plot; movieInfo.Poster = movie.PosterImage; movieInfo.ProducedBy = movie.ProducedBy; movieInfo.Status = true; movieInfo.YearOfRelease = movie.YearOfRelease; movieInfo.ModifiedDate = DateTime.Now; dbContext.SaveChanges(); var mappedActors = dbContext.ActorInMovies.Where(m => m.MovieId == movie.MovieId).ToList(); if (mappedActors.IsNotNullOrEmpty()) { dbContext.ActorInMovies.RemoveRange(mappedActors); dbContext.SaveChanges(); } if (movie.Actors.Length > 0) { var actorinMovie = movie.Actors.Distinct().Select(a => new ActorInMovie() { ActorId = a, MovieId = movieInfo.MovieId }).ToList(); dbContext.ActorInMovies.AddRange(actorinMovie); dbContext.SaveChanges(); } transaction.Commit(); } catch (Exception) { transaction.Rollback(); throw; } } return(movieInfo); } throw new Exception("No such movie found by your search to update the details."); }
private MovieInfo SaveMovieInfo(MovieRequestDTO movie) { using (var transaction = dbContext.Database.BeginTransaction()) { try { var movieInfo = new MovieInfo() { Name = movie.MovieName, Plot = movie.Plot, Poster = movie.PosterImage, ProducedBy = movie.ProducedBy, Status = true, YearOfRelease = movie.YearOfRelease, CreatedDate = DateTime.Now }; dbContext.MovieInfoes.Add(movieInfo); dbContext.SaveChanges(); if (movieInfo.MovieId > 0) { if (movie.Actors.Length > 0) { var actorinMovie = movie.Actors.Distinct().Select(a => new ActorInMovie() { ActorId = a, MovieId = movieInfo.MovieId }).ToList(); dbContext.ActorInMovies.AddRange(actorinMovie); dbContext.SaveChanges(); } } transaction.Commit(); return(movieInfo); } catch (Exception) { transaction.Rollback(); throw; } } }
public async Task <string> GetMovieAsync(MovieRequestDTO request) { var queryParams = GetParameters(request); if (!queryParams.ContainsKey("apikey")) { throw new ArgumentException("apikey was not defined"); } var url = QueryHelpers.AddQueryString("http://www.omdbapi.com/", queryParams); var respons = await client.GetAsync(url); if (respons.IsSuccessStatusCode) { return(respons.Content.ReadAsStringAsync()?.Result); } else { return(string.Empty); } }
private Dictionary <string, string> GetParameters(MovieRequestDTO re) { var queryParams = new Dictionary <string, string>(); queryParams.Add("apikey", options.Value.ApiKey); if (!string.IsNullOrEmpty(re.Title)) { queryParams.Add("t", re.Title); } if (re.Year.HasValue) { queryParams.Add("y", re.Year.Value.ToString()); } if (re.Plot.HasValue) { queryParams.Add("plot", re.Plot.Value.ToString()); } return(queryParams); }
public MovieInfo SaveEditMovieInfo(MovieRequestDTO movie) { var result = new MovieInfo(); using (var unitOfWork = new UnitOfWork()) { if (movie.PosterImage.IsNullOrEmpty()) { movie.PosterImage = AppSettings.NoImageFilePath; } else { movie.PosterImage = string.Format("{0}/{1}", AppSettings.PosterFilePath.Replace("~", ""), movie.PosterImage.Replace(AppSettings.PosterFilePath.Replace("~", ""), "")); } var response = unitOfWork.movieRepository.SaveEditMovieInfo(movie); if (response != null) { result = response; } } return(result); }
public async Task <IActionResult> Get([FromQuery] MovieRequestDTO req) { return(await GetMovie(req)); }
public Task <string> GetMovieAsync(MovieRequestDTO request) { throw new ArgumentException(); }
public Task <string> GetMovieAsync(MovieRequestDTO request) { return(Task.Run(() => "Movie not found!")); }
public Task <string> GetMovieAsync(MovieRequestDTO request) { return(Task.Run(() => "{\"Title\":\"Titanic\"}")); }