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); }
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); }
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)); } }
//Edit private void StartEditMovie() { EditableMovie = SelectedMovie.ShallowClone(); StartingMovieEdit?.Invoke(this, EventArgs.Empty); }
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); } }); }