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))); }
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")); }
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))); }
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))); }