Ejemplo n.º 1
0
        public MovieCustomPage()
        {
            InitializeComponent();
            BindingContext = ViewModel = new MovieCustomViewModel(UserMoviePreferences.getInstance(), new Services.RestClient());

            var prevItem = new ToolbarItem
            {
                Text             = "**Prev**",
                IconImageSource  = "prev",
                CommandParameter = false
            };

            prevItem.SetBinding(MenuItem.CommandProperty, nameof(ViewModel.PanPositionChangedCommand));

            var nextItem = new ToolbarItem
            {
                Text             = "**Next**",
                IconImageSource  = "next",
                CommandParameter = true
            };

            nextItem.SetBinding(MenuItem.CommandProperty, nameof(ViewModel.PanPositionChangedCommand));

            ToolbarItems.Add(prevItem);
            ToolbarItems.Add(nextItem);
        }
 public SelectGenresViewModel()
 {
     ClickGenre  = new Command <string>(ToggleGenre);
     preferences = UserMoviePreferences.getInstance();
     nextButtonBackgroundColor = Color.Transparent;
     buttonBorder = (Color)Application.Current.Resources["AccentColor"];
 }
Ejemplo n.º 3
0
 public SearchViewModel(ErrorHandler errorHandler, RestClient backend)
 {
     this.errorHandler = errorHandler;
     Title             = "Search Movies";
     this.backend      = backend;
     preferences       = UserMoviePreferences.getInstance();
 }
Ejemplo n.º 4
0
 public UserMoviePreferencesViewModel(ErrorHandler errorHandler, UserMoviePreferences preferences)
 {
     Contract.Requires(preferences != null);
     Title                          = "Liked Movies";
     this.errorHandler              = errorHandler;
     this.preferences               = preferences;
     likedMovies                    = new ObservableCollection <Movie>(preferences.GetAllPreferences());
     preferences.CollectionChanged += Preferences_CollectionChanged;
 }
 public MovieDetailViewModel(Movie movie, UserMoviePreferences preferences)
 {
     Contract.Requires(preferences != null);
     this.preferences               = preferences;
     Movie                          = movie;
     MovieLikeButtonImageSource     = IsMovieLiked() ? likedMovieIcon : notLikedMovieIcon;
     LikeClicked                    = new Command <Movie>(ToggleLike);
     preferences.CollectionChanged += UpdateMovieLikeButtonSource;
 }
 public BrowseViewModel(ErrorHandler errorHandler, UserMoviePreferences preferences, RestClient backend)
 {
     Title                  = "Browse Movies";
     this.errorHandler      = errorHandler;
     this.backend           = backend;
     this.preferences       = preferences;
     popularActionMovies    = new List <MovieDetailViewModel>();
     popularComedyMovies    = new List <MovieDetailViewModel>();
     popularAnimationMovies = new List <MovieDetailViewModel>();
     RecommendedMovies      = new ObservableCollection <MovieDetailViewModel>();
     this.UpdatePopularMovies();
     OnPullDownRefresh = new Command(async() => await RefreshRequestRecommendations().ConfigureAwait(true));
 }
Ejemplo n.º 7
0
 public BrowsePage()
 {
     InitializeComponent();
     BindingContext = ViewModel = new BrowseViewModel(async ex => await this.DisplayAlert("Error", ex.Message, "Ok").ConfigureAwait(false), UserMoviePreferences.getInstance(), new Services.RestClient());
 }
Ejemplo n.º 8
0
 public void Setup()
 {
     testPreference = new UserMoviePreferencesTestObject();
 }
Ejemplo n.º 9
0
 public FavoritesPage()
 {
     InitializeComponent();
     BindingContext = viewModel = new UserMoviePreferencesViewModel(async ex => await this.DisplayAlert("Error", ex.Message, "Ok").ConfigureAwait(false), UserMoviePreferences.getInstance());
     viewModel.UpdatePairedListForGenre(preferences.GetFilters());
 }
Ejemplo n.º 10
0
        /// <summary>
        /// Gets a list of recommended movies based off of the user's movie preferences
        /// </summary>
        /// <param name="preferences">The user's list of liked movies</param>
        /// <returns>The list of recommended movies</returns>
        public virtual async Task <IList <Movie> > GetMovieRecommendationsFromPreferences(UserMoviePreferences preferences)
        {
            Dictionary <string, List <Movie> > movieList = null;
            HttpResponseMessage response = null;

            Contract.Requires(preferences != null);
            try
            {
                var builder = new UriBuilder(Resources.RecommendationEndpoint);
                builder.Query = "movies=" + HttpUtility.UrlPathEncode(string.Join("|", preferences.GetListOfMovieIDs().ToArray())) + "&alg=" + App.algorithm;
                response      = await _client.GetAsync(builder.Uri).ConfigureAwait(false);

                if (response.IsSuccessStatusCode)
                {
                    string content = await response.Content.ReadAsStringAsync().ConfigureAwait(false);

                    movieList = JsonConvert.DeserializeObject <Dictionary <string, List <Movie> > >(content);
                }
                else
                {
                    throw new HttpRequestException(response.ReasonPhrase);
                }
            }
            catch (Exception ex)
            {
                throw HTTPExceptionHandler(ex);
            }
            return(movieList["Movies"]);
        }