Esempio n. 1
0
        public IActionResult Create(CreateMovieListViewModel vm)
        {
            var list = this.mapper.Map <MovieList>(vm);

            this.listService.Create(list, this.User.Identity.Name);

            return(this.RedirectToAction(nameof(this.Index)));
        }
Esempio n. 2
0
        public IActionResult CreateMovieList(CreateMovieListViewModel model)
        {
            if (!TryValidateModel(model))
            {
                return(View(model));
            }

            var userName = User.FindFirstValue(ClaimTypes.NameIdentifier);

            var newPlaylist = new MoviePlaylist
            {
                Name   = model.Name,
                UserId = userName,
            };

            _applicationDbContext.MoviePlaylists.Add(newPlaylist);
            _applicationDbContext.SaveChanges();

            return(RedirectToAction("MyMovieIndex"));
        }
Esempio n. 3
0
        public async Task <IActionResult> MovieList(CreateMovieListViewModel model)
        {
            var user = await _userManager.GetUserAsync(User);

            var lists = await _traktRepository.Get(user);

            if (lists.Count >= _limitConfigurationList.LimitConfigurations.First(x => x.Level == user.Level).ListLimit)
            {
                return(View("Error"));
            }

            var dbGenres = await _traktMovieRepository.GetGenres();

            var dbCertifications = await _traktMovieRepository.GetCertifications();

            var dbCountryCodes = await _traktCodesRepository.GetCountryCodes();

            var dbLanguageCodes = await _traktCodesRepository.GetLanguageCodes();

            model.Genres                = new MultiSelectList(dbGenres, nameof(TraktMovieGenre.Slug), nameof(TraktMovieGenre.Slug));
            model.Certifications        = new MultiSelectList(dbCertifications, nameof(TraktMovieCertification.Slug), nameof(TraktMovieCertification.Description));
            model.Countries             = new MultiSelectList(dbCountryCodes, nameof(CountryCode.Code), nameof(CountryCode.Name));
            model.Languages             = new MultiSelectList(dbLanguageCodes, nameof(LanguageCode.Code), nameof(LanguageCode.Description));
            model.Translations          = new MultiSelectList(dbLanguageCodes, nameof(LanguageCode.Code), nameof(LanguageCode.Description));
            model.ReverseGenres         = new MultiSelectList(dbGenres, nameof(TraktMovieGenre.Slug), nameof(TraktMovieGenre.Name));
            model.ReverseCertifications = new MultiSelectList(dbCertifications, nameof(TraktMovieCertification.Slug), nameof(TraktMovieCertification.Description));
            model.ReverseCountries      = new MultiSelectList(dbCountryCodes, nameof(CountryCode.Code), nameof(CountryCode.Name));
            model.ReverseLanguages      = new MultiSelectList(dbLanguageCodes, nameof(LanguageCode.Code), nameof(LanguageCode.Description));
            model.ReverseTranslations   = new MultiSelectList(dbLanguageCodes, nameof(LanguageCode.Code), nameof(LanguageCode.Description));

            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            var result = await _traktService.Create(new TraktList
            {
                Name                        = model.Name,
                Query                       = model.Query ?? "",
                Type                        = ListType.Movie,
                Filter_Years                = model.Filter_Years,
                Filter_Ratings              = model.Filter_Ratings,
                Filter_Runtimes             = model.Filter_Runtimes,
                SearchByAlias               = model.SearchByAlias,
                SearchByBiography           = model.SearchByBiography,
                SearchByDescription         = model.SearchByDescription,
                SearchByName                = model.SearchByName,
                SearchByOverview            = model.SearchByOverview,
                SearchByPeople              = model.SearchByPeople,
                SearchByTitle               = model.SearchByTitle,
                SearchByTranslations        = model.SearchByTranslations,
                SearchByTagline             = model.SearchByTagline,
                Filter_Genres               = new GenresCommonFilter(model.Filter_Genres),
                Filter_Languages            = new LanguagesCommonFilter(model.Filter_Languages),
                Filter_Translations         = new TranslationsBasicFilter(model.Filter_Translations),
                Filter_Certifications_Movie = new CertificationsMovieFilter(model.Filter_Certifications),
                Filter_Countries            = new CountriesCommonFilter(model.Filter_Countries),
                ContentType                 = ListContentType.Filters,
                Owner                       = user
            });

            if (user.IsDonor)
            {
                result.ReverseFilter_Genres               = new GenresCommonFilter(model.ReverseFilter_Genres);
                result.ReverseFilter_Languages            = new LanguagesCommonFilter(model.ReverseFilter_Languages);
                result.ReverseFilter_Countries            = new CountriesCommonFilter(model.ReverseFilter_Countries);
                result.ReverseFilter_Translations         = new TranslationsBasicFilter(model.ReverseFilter_Translations);
                result.ReverseFilter_Certifications_Movie = new CertificationsMovieFilter(model.ReverseFilter_Certifications);
            }

            await _traktRepository.Create(result);

            _backgroundJobQueueService.Queue(result);

            return(RedirectToAction(nameof(MovieList)));
        }
Esempio n. 4
0
        public async Task <IActionResult> MovieList(CreateMovieListViewModel model)
        {
            ViewData["Message"] = "Create a new list for movies";

            var dbGenres = await _appDbContext.TraktMovieGenres.ToListAsync();

            var dbCertifications = await _appDbContext.TraktMovieCertifications.ToListAsync();

            var dbCountryCodes = await _appDbContext.CountryCodes.OrderBy(x => x.Name).ToListAsync();

            var dbLanguageCodes = await _appDbContext.LanguageCodes.OrderBy(x => x.Code).ToListAsync();

            model.Genres                = new MultiSelectList(dbGenres, nameof(TraktMovieGenre.Slug), nameof(TraktMovieGenre.Slug));
            model.Certifications        = new MultiSelectList(dbCertifications, nameof(TraktMovieCertification.Slug), nameof(TraktMovieCertification.Description));
            model.Countries             = new MultiSelectList(dbCountryCodes, nameof(CountryCode.Code), nameof(CountryCode.Name));
            model.Languages             = new MultiSelectList(dbLanguageCodes, nameof(LanguageCode.Code), nameof(LanguageCode.Description));
            model.Translations          = new MultiSelectList(dbLanguageCodes, nameof(LanguageCode.Code), nameof(LanguageCode.Description));
            model.ReverseGenres         = new MultiSelectList(dbGenres, nameof(TraktMovieGenre.Slug), nameof(TraktMovieGenre.Name));
            model.ReverseCertifications = new MultiSelectList(dbCertifications, nameof(TraktMovieCertification.Slug), nameof(TraktMovieCertification.Description));
            model.ReverseCountries      = new MultiSelectList(dbCountryCodes, nameof(CountryCode.Code), nameof(CountryCode.Name));
            model.ReverseLanguages      = new MultiSelectList(dbLanguageCodes, nameof(LanguageCode.Code), nameof(LanguageCode.Description));
            model.ReverseTranslations   = new MultiSelectList(dbLanguageCodes, nameof(LanguageCode.Code), nameof(LanguageCode.Description));

            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            var result = await _traktService.Create(new TraktList()
            {
                Name                               = model.Name,
                Query                              = model.Query ?? "",
                Type                               = ListType.Movie,
                Filter_Years                       = model.Filter_Years,
                Filter_Ratings                     = model.Filter_Ratings,
                Filter_Runtimes                    = model.Filter_Runtimes,
                SearchByAlias                      = model.SearchByAlias,
                SearchByBiography                  = model.SearchByBiography,
                SearchByDescription                = model.SearchByDescription,
                SearchByName                       = model.SearchByName,
                SearchByOverview                   = model.SearchByOverview,
                SearchByPeople                     = model.SearchByPeople,
                SearchByTitle                      = model.SearchByTitle,
                SearchByTranslations               = model.SearchByTranslations,
                SearchByTagline                    = model.SearchByTagline,
                Filter_Genres                      = new GenresCommonFilter(model.Filter_Genres),
                Filter_Languages                   = new LanguagesCommonFilter(model.Filter_Languages),
                Filter_Translations                = new TranslationsBasicFilter(model.Filter_Translations),
                Filter_Certifications_Movie        = new CertificationsMovieFilter(model.Filter_Certifications),
                Filter_Countries                   = new CountriesCommonFilter(model.Filter_Countries),
                ReverseFilter_Genres               = new GenresCommonFilter(model.ReverseFilter_Genres),
                ReverseFilter_Languages            = new LanguagesCommonFilter(model.ReverseFilter_Languages),
                ReverseFilter_Translations         = new TranslationsBasicFilter(model.ReverseFilter_Translations),
                ReverseFilter_Certifications_Movie = new CertificationsMovieFilter(model.ReverseFilter_Certifications),
                ReverseFilter_Countries            = new CountriesCommonFilter(model.ReverseFilter_Countries),
                Owner                              = await _userManager.GetUserAsync(User)
            });

            Hangfire.BackgroundJob.Enqueue <ProcessMovieListBackgroundJob>(x => x.Execute(result.Id));

            return(RedirectToAction(nameof(MovieList)));
        }