Пример #1
0
        public async Task <IActionResult> Films()
        {
            FilmsViewModel vm = new FilmsViewModel();

            var categories = db.FilmCategories.OrderBy(fc => fc.Description).Where(fc => fc.IsViewable && fc.FilmCategoryID != 8).OrderBy(fc => fc.OrderPosition).ToList().Select(fc => new FilmCategoryViewModel()
            {
                Category = fc,
                Films    = db.Films.Where(f => fc.FilmCategoryID == f.FilmCategoryID && f.FilmCollectionID == null).OrderBy(f => f.Showing).ToList()
            }).ToList();

            foreach (var cat in categories)
            {
                foreach (var film in cat.Films)
                {
                    film.FilmDetails = db.FilmDetails.Where(fd => fd.FilmID == film.FilmID).FirstOrDefault();
                }
            }

            vm.Categories = categories;

            bool loggedIn = CurrentMember != null;

            ViewBag.LoggedIn = loggedIn;

            if (loggedIn)
            {
                var bookedFilms = db.MemberFilms.Where(mf => mf.MemberID == CurrentMember.MemberID).ToList();
                ViewBag.BookedFilms = bookedFilms;
            }

            ViewBag.CurrentTime = await GetLocationTime();

            return(View(vm));
        }
Пример #2
0
        public Films()
        {
            InitializeComponent();
            var films = new FilmsViewModel();

            DataContext = films;
        }
Пример #3
0
        public ViewResult StartPage()
        {
            ViewBag.Title = "FilmFinder";
            FilmsViewModel fvm = new FilmsViewModel();

            fvm.AddRange(filmsExtractor.AllFilms);
            return(View(fvm));
        }
Пример #4
0
        public new async void IsLoaded(object sender, RoutedEventArgs e)
        {
            FilmViewModel = DataContext as FilmsViewModel;
            await FilmViewModel.InitData();

            ShowFilm();
            await FilmViewModel.InitGenre();

            Genre.SelectedIndex = 0;
        }
Пример #5
0
        public FilmsPage()
        {
            InitializeComponent();
            var VM = new FilmsViewModel();

            BindingContext = VM;

            async void PopulatePicker()
            {
                await VM.GetFilmsAsync();
            }

            PopulatePicker();
        }
Пример #6
0
        private void CreateFilmsList(int page, string genre_filter, string search, string sortby)
        {
            var whereStatement = new StringBuilder("WHERE is_rent = 1");
            var parameters     = new List <NpgsqlParameter>();

            if (!string.IsNullOrWhiteSpace(search))
            {
                whereStatement.Append(" AND LOWER(title) LIKE '%' || @title || '%'");
                parameters.Add(new NpgsqlParameter("title", search.ToLower()));
            }

            if (!string.IsNullOrWhiteSpace(sortby))
            {
                whereStatement.Append(" ORDER BY");
                switch (sortby)
                {
                case "date": whereStatement.Append(" release_year");
                    break;

                case "rating": whereStatement.Append(" raiting");
                    break;
                }

                whereStatement.Append(" DESC");
            }

            var films = FilmViewModelDAO.GetFilms(whereStatement.ToString(), false, parameters.ToArray());

            if (!string.IsNullOrWhiteSpace(genre_filter))
            {
                var genres = genre_filter.Split(',')
                             .Select(genre => genre.Trim().ToLower())
                             .ToHashSet();

                films = films
                        .Where(film => film.Genres
                               .Any(genre => genres.Contains(genre)))
                        .ToList();
            }

            var filmsPerPage = 10;
            var totalPages   = films.Count / filmsPerPage + (films.Count % filmsPerPage > 0 ? 1 : 0);

            FilmsViewModel = new FilmsViewModel(
                films.Skip(filmsPerPage * (page - 1)).Take(filmsPerPage),
                page,
                totalPages);
        }
Пример #7
0
        public async Task <IActionResult> GetFilms(int pageIndex = 0, PageSize pageSize = PageSize.PS10)
        {
            var user = await _userManager.GetUserAsync(this.User);

            var size   = (int)pageSize;
            var offset = pageIndex * size;
            var count  = await _repository.CountAsync();

            var model = new FilmsViewModel()
            {
                Films     = _repository.GetFilms(offset, size).Select(f => GetFilmViewModel(f, user, false)),
                PageIndex = pageIndex,
                PageCount = (int)Math.Ceiling((double)count / size),
                PageSize  = pageSize
            };

            return(View("Films", model));
        }
Пример #8
0
        public ViewResult StartPage(string name, string genre, string actor)
        {
            ViewBag.Title = "FilmFinder";
            FilmsViewModel fvm  = new FilmsViewModel();
            FilmsViewModel fvm1 = new FilmsViewModel();
            FilmsViewModel fvm2 = new FilmsViewModel();
            FilmsViewModel fvm3 = new FilmsViewModel();

            if (name != null)
            {
                fvm1.AddRange(filmsExtractor.FilmsWithName(name));
            }
            else
            {
                fvm1.AddRange(filmsExtractor.AllFilms);
            }
            if (genre != null)
            {
                var genres = genresExtractor.GenresWithName(genre);
                foreach (var g in genres)
                {
                    fvm2.AddRange(filmsExtractor.FilmsWithGenre(g).Except(fvm2.Films));
                }
            }
            else
            {
                fvm2.AddRange(filmsExtractor.AllFilms);
            }
            if (actor != null)
            {
                var actors = actorsExtractor.ActorsWithName(actor);
                foreach (var a in actors)
                {
                    fvm3.AddRange(filmsExtractor.FilmsWithActor(a).Except(fvm3.Films));
                }
            }
            else
            {
                fvm3.AddRange(filmsExtractor.AllFilms);
            }
            fvm.AddRange(fvm1.Films.Intersect(fvm2.Films.Intersect(fvm3.Films)));
            return(View(fvm));
        }
Пример #9
0
        public async Task <IActionResult> Index(int pageNumber = FilmsCatalogModelsConstants.PAGE_NUMBER,
                                                int pageSize   = FilmsCatalogModelsConstants.PAGE_SIZE)
        {
            var films = await _filmsService.ListFilms(pageNumber, pageSize);

            foreach (var film in films)
            {
                film.IsEditingAllowed = GetIsEditingAllowed(film.CreatedByUserId);
            }

            FilmsViewModel model = new FilmsViewModel
            {
                Films           = films,
                IsAuthenticated = User.Identity.IsAuthenticated,
                PageNumber      = pageNumber,
                PageSize        = pageSize,
                AllCount        = await _filmsService.GetAllFilmsCount()
            };

            return(base.View(model));
        }
Пример #10
0
        // GET: Film
        public ActionResult FilmIndex(int page = 1)
        {
            var films = _repository.GetFilms();
            IEnumerable <Film> filmsOnPage = films.Skip((page - 1) * _pageSize).Take(_pageSize);

            bool flPrevPages     = false;
            bool flNextPages     = true;
            int  pageCount       = (int)Math.Ceiling((decimal)films.Count() / _pageSize);
            int  beginPageNumber = ((page - 1) / _pageTotalOnView) * _pageTotalOnView + 1;
            int  endPageNumber   = beginPageNumber + _pageTotalOnView - 1;

            if (beginPageNumber > _pageTotalOnView)
            {
                flPrevPages = true;
            }
            if (endPageNumber > pageCount)
            {
                endPageNumber = pageCount;
            }
            if (endPageNumber == pageCount)
            {
                flNextPages = false;
            }

            var filmsViewModel = new FilmsViewModel
            {
                Title    = "Список фильмов",
                Films    = filmsOnPage,
                PageInfo = new PageInfo()
                {
                    PageActiveNumber = page,
                    BeginPageNumber  = beginPageNumber,
                    EndPageNumber    = endPageNumber,
                    FlPrevPages      = flPrevPages,
                    FlNextPages      = flNextPages
                }
            };

            return(View("FilmIndex", filmsViewModel));
        }
        public async Task <IActionResult> FilmsInfo(int ID)

        {
            var status   = false;
            var username = User.Identity.Name;

            if (username != null)
            {
                var user = await _userManager.FindByNameAsync(username);

                var profile = await _profileService.GetProfileByUserId(user.Id);

                status = await _filmsService.CheckAddFilm(ID, profile);
            }

            var FilmInfo = await _IApiService.GetInfoFilmsAsync(ID);

            var pic = "https://image.tmdb.org/t/p/w500" + FilmInfo.poster_path;

            if (FilmInfo.poster_path == null)
            {
                pic = "/img/noposter.jpg";
            }
            var FilmInfoModel = new FilmsViewModel
            {
                FilmsName = FilmInfo.title,
                Duration  = FilmInfo.overview,
                //Premiere = FilmInfo.release_date,
                Budget  = FilmInfo.budget,
                Picture = pic,
                Id      = ID,
                Button  = status
            };

            return(View(FilmInfoModel));
        }
Пример #12
0
        public FilmsView()
        {
            InitializeComponent();

            BindingContext = new FilmsViewModel(this);
        }
 public FilmsView()
 {
     InitializeComponent();
     DataContext = new FilmsViewModel();
 }
Пример #14
0
        public FilmsPage()
        {
            InitializeComponent();

            BindingContext = viewModel = new FilmsViewModel();
        }
Пример #15
0
 private async void Page_Loaded(object sender, RoutedEventArgs e)
 {
     _filmViewModel = DataContext as FilmsViewModel;
     await _filmViewModel.LoadFilms();
 }
 public void SetUp()
 {
     _pageService    = new Mock <IPageService>();
     _filmsViewModel = new FilmsViewModel(_pageService.Object);
 }
Пример #17
0
        public ActionResult FilmTable(int page = 1, int type = 1)
        {
            var films = _repository.GetFilms();
            IEnumerable <Film> filmsOnPage = films.Skip((page - 1) * _pageSize).Take(_pageSize);

            bool flPrevPages     = false;
            bool flNextPages     = true;
            int  pageCount       = (int)Math.Ceiling((decimal)films.Count() / _pageSize);
            int  beginPageNumber = ((page - 1) / _pageTotalOnView) * _pageTotalOnView + 1;
            int  endPageNumber   = beginPageNumber + _pageTotalOnView - 1;

            if (beginPageNumber > _pageTotalOnView)
            {
                flPrevPages = true;
            }
            if (endPageNumber > pageCount)
            {
                endPageNumber = pageCount;
            }
            if (endPageNumber == pageCount)
            {
                flNextPages = false;
            }

            //var fFilmsName = filmsOnPage.Select(f => f.Name);

            var filmsViewModel = new FilmsViewModel
            {
                Title     = "Список фильмов",
                Films     = filmsOnPage,
                FilmsName = filmsOnPage.Select(f => f.Name),
                PageInfo  = new PageInfo()
                {
                    PageActiveNumber = page,
                    BeginPageNumber  = beginPageNumber,
                    EndPageNumber    = endPageNumber,
                    FlPrevPages      = flPrevPages,
                    FlNextPages      = flNextPages
                }
            };

            var filmsViewModelMin = new
            {
                Title    = "Список фильмов",
                Films    = filmsOnPage.Select(f => f.Name),
                PageInfo = new PageInfo()
                {
                    PageActiveNumber = page,
                    BeginPageNumber  = beginPageNumber,
                    EndPageNumber    = endPageNumber,
                    FlPrevPages      = flPrevPages,
                    FlNextPages      = flNextPages
                }
            };

            if (type == 1)
            {
                return(View("FilmIndex", filmsViewModel));
            }
            if (type == 2)
            {
                return(PartialView(filmsViewModel));
            }
            if (type == 3)
            {
                return(Json(filmsViewModelMin, JsonRequestBehavior.AllowGet));
            }
            //if (type == 3) return Json(filmsOnPage.Select(f => f.Name), JsonRequestBehavior.AllowGet);

            return(RedirectToAction("Index", "Home"));
        }
Пример #18
0
 public Films()
 {
     BindingContext = new FilmsViewModel(new PageService());
     InitializeComponent();
     FilmsViewModel.DisplayFilmsListCommand.Execute(null);
 }