Ejemplo n.º 1
0
        public async Task <IActionResult> ShowList()
        {
            ViewData["Message"] = "Create a new list for shows";

            var dbGenres = await _traktShowRepository.GetGenres();

            var dbStatus = await _traktShowRepository.GetStatuses();

            var dbNetworks = await _traktShowRepository.GetNetworks();

            var dbCertifications = await _traktShowRepository.GetCertifications();

            var dbCountryCodes = await _traktCodesRepository.GetCountryCodes();

            var dbLanguageCodes = await _traktCodesRepository.GetLanguageCodes();

            var model = new CreateShowListViewModel
            {
                Genres                = new MultiSelectList(dbGenres, nameof(TraktShowGenre.Slug), nameof(TraktShowGenre.Name)),
                Certifications        = new MultiSelectList(dbCertifications, nameof(TraktShowCertification.Slug), nameof(TraktShowCertification.Description)),
                Countries             = new MultiSelectList(dbCountryCodes, nameof(CountryCode.Code), nameof(CountryCode.Name)),
                Languages             = new MultiSelectList(dbLanguageCodes, nameof(LanguageCode.Code), nameof(LanguageCode.Description)),
                Translations          = new MultiSelectList(dbLanguageCodes, nameof(LanguageCode.Code), nameof(LanguageCode.Description)),
                Networks              = new MultiSelectList(dbNetworks, nameof(TraktShowNetwork.Name), nameof(TraktShowNetwork.Name)),
                Status                = new MultiSelectList(dbStatus, nameof(TraktShowStatus.Name), nameof(TraktShowStatus.Name)),
                ReverseGenres         = new MultiSelectList(dbGenres, nameof(TraktShowGenre.Slug), nameof(TraktShowGenre.Name)),
                ReverseCertifications = new MultiSelectList(dbCertifications, nameof(TraktShowCertification.Slug), nameof(TraktShowCertification.Description)),
                ReverseCountries      = new MultiSelectList(dbCountryCodes, nameof(CountryCode.Code), nameof(CountryCode.Name)),
                ReverseLanguages      = new MultiSelectList(dbLanguageCodes, nameof(LanguageCode.Code), nameof(LanguageCode.Description)),
                ReverseTranslations   = new MultiSelectList(dbLanguageCodes, nameof(LanguageCode.Code), nameof(LanguageCode.Description)),
                ReverseNetworks       = new MultiSelectList(dbNetworks, nameof(TraktShowNetwork.Name), nameof(TraktShowNetwork.Name)),
                ReverseStatus         = new MultiSelectList(dbStatus, nameof(TraktShowStatus.Name), nameof(TraktShowStatus.Name)),
            };

            return(View(model));
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> ShowList()
        {
            ViewData["Message"] = "Create a new list for shows";

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

            var dbCertifications = await _appDbContext.TraktShowCertifications.OrderBy(x => x.Description).ToListAsync();

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

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

            var dbNetworks = await _appDbContext.TraktShowNetworks.OrderBy(x => x.Name).ToListAsync();

            var dbStatus = await _appDbContext.TraktShowStatuses.OrderBy(x => x.Name).ToListAsync();

            var model = new CreateShowListViewModel()
            {
                Genres                = new MultiSelectList(dbGenres, nameof(TraktShowGenre.Slug), nameof(TraktShowGenre.Name)),
                Certifications        = new MultiSelectList(dbCertifications, nameof(TraktShowCertification.Slug), nameof(TraktShowCertification.Description)),
                Countries             = new MultiSelectList(dbCountryCodes, nameof(CountryCode.Code), nameof(CountryCode.Name)),
                Languages             = new MultiSelectList(dbLanguageCodes, nameof(LanguageCode.Code), nameof(LanguageCode.Description)),
                Translations          = new MultiSelectList(dbLanguageCodes, nameof(LanguageCode.Code), nameof(LanguageCode.Description)),
                Networks              = new MultiSelectList(dbNetworks, nameof(TraktShowNetwork.Name), nameof(TraktShowNetwork.Name)),
                Status                = new MultiSelectList(dbStatus, nameof(TraktShowStatus.Name), nameof(TraktShowStatus.Name)),
                ReverseGenres         = new MultiSelectList(dbGenres, nameof(TraktShowGenre.Slug), nameof(TraktShowGenre.Name)),
                ReverseCertifications = new MultiSelectList(dbCertifications, nameof(TraktShowCertification.Slug), nameof(TraktShowCertification.Description)),
                ReverseCountries      = new MultiSelectList(dbCountryCodes, nameof(CountryCode.Code), nameof(CountryCode.Name)),
                ReverseLanguages      = new MultiSelectList(dbLanguageCodes, nameof(LanguageCode.Code), nameof(LanguageCode.Description)),
                ReverseTranslations   = new MultiSelectList(dbLanguageCodes, nameof(LanguageCode.Code), nameof(LanguageCode.Description)),
                ReverseNetworks       = new MultiSelectList(dbNetworks, nameof(TraktShowNetwork.Name), nameof(TraktShowNetwork.Name)),
                ReverseStatus         = new MultiSelectList(dbStatus, nameof(TraktShowStatus.Name), nameof(TraktShowStatus.Name)),
            };

            return(View(model));
        }
Ejemplo n.º 3
0
        public async Task <IActionResult> ShowList(CreateShowListViewModel 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 _traktShowRepository.GetGenres();

            var dbStatus = await _traktShowRepository.GetStatuses();

            var dbNetworks = await _traktShowRepository.GetNetworks();

            var dbCertifications = await _traktShowRepository.GetCertifications();

            var dbCountryCodes = await _traktCodesRepository.GetCountryCodes();

            var dbLanguageCodes = await _traktCodesRepository.GetLanguageCodes();

            model.Genres                = new MultiSelectList(dbGenres, nameof(TraktShowGenre.Slug), nameof(TraktShowGenre.Name));
            model.Certifications        = new MultiSelectList(dbCertifications, nameof(TraktShowCertification.Slug), nameof(TraktShowCertification.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.Networks              = new MultiSelectList(dbNetworks, nameof(TraktShowNetwork.Name), nameof(TraktShowNetwork.Name));
            model.Status                = new MultiSelectList(dbStatus, nameof(TraktShowStatus.Name), nameof(TraktShowStatus.Name));
            model.ReverseGenres         = new MultiSelectList(dbGenres, nameof(TraktShowGenre.Slug), nameof(TraktShowGenre.Name));
            model.ReverseCertifications = new MultiSelectList(dbCertifications, nameof(TraktShowCertification.Slug), nameof(TraktShowCertification.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));
            model.ReverseNetworks       = new MultiSelectList(dbNetworks, nameof(TraktShowNetwork.Name), nameof(TraktShowNetwork.Name));
            model.ReverseStatus         = new MultiSelectList(dbStatus, nameof(TraktShowStatus.Name), nameof(TraktShowStatus.Name));

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

            var result = await _traktService.Create(new TraktList
            {
                Name                       = model.Name,
                Query                      = model.Query ?? "",
                Type                       = ListType.Show,
                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,
                Filter_Genres              = new GenresCommonFilter(model.Filter_Genres),
                Filter_Languages           = new LanguagesCommonFilter(model.Filter_Languages),
                Filter_Translations        = new TranslationsBasicFilter(model.Filter_Translations),
                Filter_Certifications_Show = new CertificationsShowFilter(model.Filter_Certifications),
                Filter_Countries           = new CountriesCommonFilter(model.Filter_Countries),
                Filter_Networks            = new NetworksShowFilter(model.Filter_Networks),
                Filter_Status              = new StatusShowFilter(model.Filter_Status),
                Owner                      = user
            });

            if (user.IsDonor)
            {
                result.ReverseFilter_Status              = new StatusShowFilter(model.ReverseFilter_Status);
                result.ReverseFilter_Genres              = new GenresCommonFilter(model.ReverseFilter_Genres);
                result.ReverseFilter_Networks            = new NetworksShowFilter(model.ReverseFilter_Networks);
                result.ReverseFilter_Countries           = new CountriesCommonFilter(model.ReverseFilter_Countries);
                result.ReverseFilter_Languages           = new LanguagesCommonFilter(model.ReverseFilter_Languages);
                result.ReverseFilter_Translations        = new TranslationsBasicFilter(model.ReverseFilter_Translations);
                result.ReverseFilter_Certifications_Show = new CertificationsShowFilter(model.ReverseFilter_Certifications);
            }

            await _traktRepository.Create(result);

            _backgroundJobQueueService.Queue(result);

            return(RedirectToAction(nameof(ShowList)));
        }
Ejemplo n.º 4
0
        public async Task <IActionResult> ShowList(CreateShowListViewModel model)
        {
            ViewData["Message"] = "Create a new list for shows";

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

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

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

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

            var dbNetworks = await _appDbContext.TraktShowNetworks.ToListAsync();

            var dbStatus = await _appDbContext.TraktShowStatuses.ToListAsync();

            model.Genres                = new MultiSelectList(dbGenres, nameof(TraktShowGenre.Slug), nameof(TraktShowGenre.Name));
            model.Certifications        = new MultiSelectList(dbCertifications, nameof(TraktShowCertification.Slug), nameof(TraktShowCertification.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.Networks              = new MultiSelectList(dbNetworks, nameof(TraktShowNetwork.Name), nameof(TraktShowNetwork.Name));
            model.Status                = new MultiSelectList(dbStatus, nameof(TraktShowStatus.Name), nameof(TraktShowStatus.Name));
            model.ReverseGenres         = new MultiSelectList(dbGenres, nameof(TraktShowGenre.Slug), nameof(TraktShowGenre.Name));
            model.ReverseCertifications = new MultiSelectList(dbCertifications, nameof(TraktShowCertification.Slug), nameof(TraktShowCertification.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));
            model.ReverseNetworks       = new MultiSelectList(dbNetworks, nameof(TraktShowNetwork.Name), nameof(TraktShowNetwork.Name));
            model.ReverseStatus         = new MultiSelectList(dbStatus, nameof(TraktShowStatus.Name), nameof(TraktShowStatus.Name));

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

            var result = await _traktService.Create(new TraktList()
            {
                Name                              = model.Name,
                Query                             = model.Query ?? "",
                Type                              = ListType.Show,
                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,
                Filter_Genres                     = new GenresCommonFilter(model.Filter_Genres),
                Filter_Languages                  = new LanguagesCommonFilter(model.Filter_Languages),
                Filter_Translations               = new TranslationsBasicFilter(model.Filter_Translations),
                Filter_Certifications_Show        = new CertificationsShowFilter(model.Filter_Certifications),
                Filter_Countries                  = new CountriesCommonFilter(model.Filter_Countries),
                Filter_Networks                   = new NetworksShowFilter(model.Filter_Networks),
                Filter_Status                     = new StatusShowFilter(model.Filter_Status),
                ReverseFilter_Genres              = new GenresCommonFilter(model.ReverseFilter_Genres),
                ReverseFilter_Languages           = new LanguagesCommonFilter(model.ReverseFilter_Languages),
                ReverseFilter_Translations        = new TranslationsBasicFilter(model.ReverseFilter_Translations),
                ReverseFilter_Certifications_Show = new CertificationsShowFilter(model.ReverseFilter_Certifications),
                ReverseFilter_Countries           = new CountriesCommonFilter(model.ReverseFilter_Countries),
                ReverseFilter_Networks            = new NetworksShowFilter(model.ReverseFilter_Networks),
                ReverseFilter_Status              = new StatusShowFilter(model.ReverseFilter_Status),
                Owner                             = await _userManager.GetUserAsync(User)
            });

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

            return(RedirectToAction(nameof(ShowList)));
        }