示例#1
0
        public async Task <IActionResult> MovieList()
        {
            var dbGenres = await _traktMovieRepository.GetGenres();

            var dbCertifications = await _traktMovieRepository.GetCertifications();

            var dbCountryCodes = await _traktCodesRepository.GetCountryCodes();

            var dbLanguageCodes = await _traktCodesRepository.GetLanguageCodes();

            var model = new CreateMovieListViewModel
            {
                Genres                = new MultiSelectList(dbGenres, nameof(TraktMovieGenre.Slug), nameof(TraktMovieGenre.Slug)),
                Certifications        = new MultiSelectList(dbCertifications, nameof(TraktMovieCertification.Slug), nameof(TraktMovieCertification.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)),
                ReverseGenres         = new MultiSelectList(dbGenres, nameof(TraktMovieGenre.Slug), nameof(TraktMovieGenre.Name)),
                ReverseCertifications = new MultiSelectList(dbCertifications, nameof(TraktMovieCertification.Slug), nameof(TraktMovieCertification.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))
            };

            return(View(model));
        }
        public async Task Execute(PerformContext context)
        {
            var countries = new List <RegionInfo>();

            foreach (var culture in CultureInfo.GetCultures(CultureTypes.SpecificCultures))
            {
                try
                {
                    var country = new RegionInfo(culture.LCID);
                    if (countries.All(p => p.Name != country.Name))
                    {
                        countries.Add(country);
                    }
                }
                catch (Exception e)
                {
                    Console.WriteLine(e);
                }
            }

            var dbCountryCodes = await _traktCodeRepository.GetCountryCodes();

            foreach (var regionInfo in countries)
            {
                var countryCode = dbCountryCodes.FirstOrDefault(x => x.Code == regionInfo.TwoLetterISORegionName.ToLower(CultureInfo.InvariantCulture));

                if (countryCode != null)
                {
                    continue;
                }
                if (regionInfo.TwoLetterISORegionName.Length != 2)
                {
                    continue;
                }

                await _traktCodeRepository.CreateCountryCode(
                    new CountryCode()
                {
                    Code = regionInfo.TwoLetterISORegionName.ToLower(CultureInfo.InvariantCulture),
                    Name = regionInfo.DisplayName
                }
                    );
            }
        }