private async Task <List <MoviesOnCategoriesModel> > LoadMovie(int categoryId      = 0,
                                                                       bool showOnHomePage = false, int pageIndex = 1, int pageSize = 12)
        {
            var model = new List <MoviesOnCategoriesModel>();

            try
            {
                var categories = _categoryService.Categories(showOnHomePage);
                foreach (var item in categories)
                {
                    var subs             = _categoryService.Categories().Where(c => c.ParentCategoryId == item.Id);
                    var moviesOnCategory = new MoviesOnCategoriesModel()
                    {
                        CategoryName   = item.Name,
                        CategoryId     = item.Id,
                        CategorySeName = item.GetSeName(),
                        Categories     = PrepareCategoryModel(subs.ToList())
                    };
                    foreach (var c in moviesOnCategory.Categories)
                    {
                        if (c.Id == categoryId)
                        {
                            c.IsActive = true;
                            break;
                        }
                    }
                    if (categoryId > 0)
                    {
                        subs = subs.Where(c => c.Id == categoryId).ToList();
                    }
                    var categoryIds = subs.Select(x => x.Id).ToList();
                    var movies      = await _movieService.SearchMoviesWithAsync(pageSize : pageSize, categoryIds : categoryIds);

                    moviesOnCategory.Movies = movies.Select(x => _movieModelFactory.PrepareMovieModel(x)).ToList();

                    model.Add(moviesOnCategory);
                }
            }
            catch (Exception e)
            {
                throw;
            }
            return(model);
        }
예제 #2
0
        public async Task <JsonResult> LoadMore(MoviePagingFilteringModel command, int categoryId = 0)
        {
            if (command.PageSize <= 0)
            {
                command.PageSize = 12;
            }
            if (command.PageNumber <= 0)
            {
                command.PageNumber = 1;
            }
            var model = new MoviesOnCategoriesModel();

            try
            {
                var categories = _categoryService.Categories().ToList();
                foreach (var item in categories)
                {
                    var subs             = _categoryService.Categories().Where(c => c.ParentCategoryId == item.Id);
                    var moviesOnCategory = new MoviesOnCategoriesModel()
                    {
                        CategoryName   = item.Name,
                        CategoryId     = item.Id,
                        CategorySeName = item.GetSeName(),
                    };

                    var movies = await _movieService.SearchMoviesWithAsync("", command.PageNumber, command.PageSize,
                                                                           categoryIds : new List <int> {
                        categoryId
                    });

                    model.Movies = movies.Select(x => _movieModelFactory.PrepareMovieModel(x)).ToList();

                    string modelString = await RenderToStringAsync("Movie/_LoadMore", model);

                    return(Json(new { ModelString = modelString, pageNumber = command.PageNumber }));
                }
            }
            catch (Exception e)
            {
                throw;
            }
            return(Json(model));
        }
예제 #3
0
        public async Task <IViewComponentResult> InvokeAsync(
            int pageIndex = 1, int pageSize = 12)
        {
            int categoryId = ViewData["categoryId"] != null ? (int)ViewData["categoryId"] : 0;

            var model = new MoviesOnCategoriesModel();

            //string key = "";
            //key = string.Format(ModelCacheEventConsumer.MOVIES_ON_CATEGORY, categoryId);

            // var cachedEntry = await _cacheManager.Get(key, async () =>
            //{
            model = await LoadMovie(categoryId, pageIndex, pageSize);     //should not use cache here

            //return model;
            //});

            return(View(model));
        }
예제 #4
0
        private async Task <MoviesOnCategoriesModel> LoadMovie(int categoryId = 0,
                                                               int pageIndex  = 1, int pageSize = 12)
        {
            var model = new MoviesOnCategoriesModel();

            try
            {
                var category = _categoryService.GetCategoryById(categoryId);
                model.CategoryName   = category.Name;
                model.CategoryId     = category.Id;
                model.CategorySeName = category.GetSeName();

                var movies = await _movieService.SearchMoviesWithAsync(pageSize : pageSize, categoryIds : new List <int> {
                    categoryId
                });

                model.Movies = movies.ToList().Select(x => _movieModelFactory.PrepareMovieModel(x, 400)).ToList();
            }
            catch (Exception e)
            {
                throw;
            }
            return(model);
        }