Example #1
0
        public async Task <IActionResult> Index()
        {
            try
            {
                List <Movie>    newCmdbMovies = new List <Movie>();
                List <MovieDTO> cmdbList      = cmdbRepository.GetMoviesCmdb().Result.ToList();
                if (string.IsNullOrEmpty(HttpContext.Session.GetString("MovieList")))
                {
                    viewModel = await cmdbRepository.PresentIndex();

                    HttpContext.Session.SetString("MovieList", JsonConvert.SerializeObject(viewModel.MovieList));
                }
                else if (!string.IsNullOrEmpty(HttpContext.Session.GetString("MovieList")))
                {
                    sessionList = JsonConvert.DeserializeObject <List <Movie> >(HttpContext.Session.GetString("MovieList"));
                    if (listHandler.CheckForNewMovies(cmdbList, sessionList))
                    {
                        newCmdbMovies = await listHandler.AddNewMovies(cmdbList, sessionList);
                    }
                }
                viewModel           = new HomeViewModel(JsonConvert.DeserializeObject <List <Movie> >(HttpContext.Session.GetString("MovieList")));
                viewModel.SavedList = JsonConvert.DeserializeObject <List <Movie> >(HttpContext.Session.GetString("MovieList"));
                viewModel           = listHandler.UpdateChangesHome(newCmdbMovies, cmdbList, viewModel);
                HttpContext.Session.SetString("MovieList", JsonConvert.SerializeObject(viewModel.SavedList));
                return(View(viewModel));
            }
            catch (Exception ex)
            {
                ErrorViewModel viewModel = new ErrorViewModel();
                viewModel.ErrorMessage = ex.InnerException.Message;
                return(View("Error", viewModel));
            }
        }