public override void WireMessages()
        {
            Messenger.Default.Register <NotificationMessage>(this, m =>
            {
                if (m.Notification.Equals(Constants.Messages.RefreshResumeMsg))
                {
                    var id    = (string)m.Sender;
                    var ticks = (long)m.Target;
                    if (id == SelectedMovie.Id)
                    {
                        if (SelectedMovie.UserData == null)
                        {
                            SelectedMovie.UserData = new UserItemDataDto();
                        }

                        SelectedMovie.UserData.PlaybackPositionTicks = ticks;

                        SelectedMovie.HasPlayed();

                        CanResume = SelectedMovie.CanResume;
                    }
                }
            });

            Messenger.Default.Register <SyncNotificationMessage>(this, m =>
            {
                if (m.Notification.Equals(Constants.Messages.SyncJobFinishedMsg))
                {
                    if (m.ItemType.Equals("Movie") && SelectedMovie != null && SelectedMovie.Id == m.ItemId)
                    {
                        SelectedMovie.IsSynced = true;
                    }
                }
            });
        }
        protected async void ToggleSeen()
        {
            await _ApplicationService.ToggleSeen(UserId, SelectedMovie.ToString());

            SelectedMovie = await _ApplicationService.GetUpdatedMovie(UserId, SelectedMovie);

            // Let MovieWrapper know movie has been updated
            await OnMovieUpdated.InvokeAsync(SelectedMovie);
        }
Example #3
0
 private async void SaveMovieEdit()
 {
     try
     {
         if (!EditableMovie.IsValid())
         {
             OnMessageApplication("Minden mezőt ki kell tölteni.");
             return;
         }
         SelectedMovie.CopyFrom(EditableMovie);
         await _service.UpdateMovieAsync((MovieDto)SelectedMovie);
     }
     catch (Exception ex) when(ex is NetworkException || ex is HttpRequestException)
     {
         OnMessageApplication($"Unexpected error occured! ({ex.Message})");
     }
     FinishingMovieEdit?.Invoke(this, EventArgs.Empty);
 }
Example #4
0
        private async void Function_Selected(object sender, SelectedItemChangedEventArgs e)
        {
            if (string.IsNullOrEmpty(TextTickets.Text))
            {
                await DisplayAlert(Languages.Validation, Languages.ValidationMsgTicket, Languages.OK);

                TextTickets.Focus();
                return;
            }
            else
            {
                Function      function      = (Function)e.SelectedItem;
                SelectedMovie selectedMovie = new SelectedMovie();
                selectedMovie.Nombre              = movie.Nombre;
                selectedMovie.FechaEstreno        = movie.FechaEstreno;
                selectedMovie.Imagen              = movie.Imagen;
                selectedMovie.FuncionSeleccionada = function;
                selectedMovie.Tiquetes            = System.Convert.ToInt32(TextTickets.Text);
                selectedMovie.PrecioTotal         = selectedMovie.Tiquetes * function.Precio;
                await Navigation.PushAsync(new CheckInPage(selectedMovie));
            }
        }
Example #5
0
 //Edit
 private void StartEditMovie()
 {
     EditableMovie = SelectedMovie.ShallowClone();
     StartingMovieEdit?.Invoke(this, EventArgs.Empty);
 }
Example #6
0
 public CheckInPage(SelectedMovie selectedMovie)
 {
     InitializeComponent();
     this.selectedMovie = selectedMovie;
     BindingContext     = selectedMovie;
 }
        private void WireCommands()
        {
            MoviePageLoaded = new RelayCommand(async() =>
            {
                if (SelectedMovie != null && NavigationService.IsNetworkAvailable)
                {
                    SetProgressBar(AppResources.SysTrayGettingMovieInfo);

                    await GetMovieDetails();

                    if (SelectedMovie.ProviderIds != null)
                    {
                        if (SelectedMovie != null && SelectedMovie.ProviderIds != null && SelectedMovie.ProviderIds.ContainsKey("Imdb"))
                        {
                            ImdbId = SelectedMovie.ProviderIds["Imdb"];
                        }
                    }

                    if (SelectedMovie.RunTimeTicks.HasValue)
                    {
                        var ts      = TimeSpan.FromTicks(SelectedMovie.RunTimeTicks.Value);
                        var runtime = ts.Hours == 0 ? string.Format("{0}m", ts.Minutes) : string.Format("{0}h {1}m", ts.Hours, ts.Minutes);
                        RunTime     = runtime;
                    }

                    if (SelectedMovie.UserData == null)
                    {
                        SelectedMovie.UserData = new UserItemDataDto();
                    }

                    SetProgressBar();
                }
            });

            AddRemoveFavouriteCommand = new RelayCommand(async() =>
            {
                try
                {
                    SetProgressBar(AppResources.SysTrayAddingToFavourites);

                    CanUpdateFavourites = false;

                    SelectedMovie.UserData = await ApiClient.UpdateFavoriteStatusAsync(SelectedMovie.Id, AuthenticationService.Current.LoggedInUserId, !SelectedMovie.UserData.IsFavorite);
                }
                catch (HttpException ex)
                {
                    Utils.HandleHttpException("AddRemoveFavouriteCommand (Movies)", ex, NavigationService, Log);
                    App.ShowMessage(AppResources.ErrorMakingChanges);
                }

                SetProgressBar();

                CanUpdateFavourites = true;
            });

            ShowOtherFilmsCommand = new RelayCommand <BaseItemPerson>(person =>
            {
                App.SelectedItem = person;
                NavigationService.NavigateTo(Constants.Pages.ActorView);
            });

            NavigateTopage = new RelayCommand <BaseItemDto>(NavigationService.NavigateTo);

            SetPosterAsLockScreenCommand = new RelayCommand(async() =>
            {
                if (!LockScreenService.Current.IsProvidedByCurrentApplication)
                {
                    var result = await LockScreenService.Current.RequestAccessAsync();

                    if (result == LockScreenServiceRequestResult.Denied)
                    {
                        return;
                    }
                }

                var url = ApiClient.GetImageUrl(SelectedMovie, LockScreenService.Current.SinglePosterOptions);

                LockScreenService.Current.ManuallySet = true;
                await LockScreenService.Current.SetLockScreenImage(url);
            });

            SyncItemCommand = new RelayCommand(async() =>
            {
                if (!SelectedMovie.CanTakeOffline())
                {
                    return;
                }

                var request = SyncRequestHelper.CreateRequest(SelectedMovie.Id, SelectedMovie.Name);

                await SyncService.Current.AddJobAsync(request);
            }, () => SelectedMovie != null && SelectedMovie.SupportsSync.HasValue && SelectedMovie.SupportsSync.Value);

            UnsyncItemCommand = new RelayCommand(async() =>
            {
                try
                {
                    if (SelectedMovie.IsSynced.HasValue && !SelectedMovie.IsSynced.Value)
                    {
                        return;
                    }

                    await SyncService.Current.UnsyncItem(SelectedMovie.Id);
                }
                catch (HttpException ex)
                {
                    Utils.HandleHttpException("UnsyncItemCommand", ex, NavigationService, Log);
                }
            });
        }