/// <summary> /// Permet d'enregistrer le score de l'adversaire en base /// </summary> /// <param name="e"></param> protected override void OnNavigatedTo(NavigationEventArgs e) { RetourAccueilBouton.IsEnabled = false; //Récupération de la photo DefiService defi = (DefiService)PhoneApplicationService.Current.State["defi"]; TaquinTermineImage.Source = new WriteableBitmap(Photo.DecodeImage(defi.ImageDefi)); //Récupération du score Partie partieTermine = (Partie)PhoneApplicationService.Current.State["partie"]; ScoreTextBlock.Text = "Votre score : " + partieTermine.Score + " Pts"; Defi defiTermine = new Defi(); defiTermine.id_defi = defi.IdDefi; defiTermine.score_adversaire_defi = partieTermine.Score; defiTermine.resolu = true; ServiceTaqnshareClient serviceTaqnshareClient = new ServiceTaqnshareClient(); serviceTaqnshareClient.ModifierDefiCompleted += DefiModifie; serviceTaqnshareClient.ModifierDefiAsync(defiTermine, App.UtilisateurCourant); base.OnNavigatedTo(e); }
public DefiAffiche(DefiService defi) { IdDefi = defi.IdDefi; NomDefi = defi.NomDefi; NomCreateur = defi.NomUtilisateur; PrenomCreateur = defi.PrenomUtilisateur; }
/// <summary> /// Permet d'afficher le défi /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void AfficherDefi(object sender, RecupererDefiCompletedEventArgs e) { if (e.Result != null) { AccepterDefiBouton.IsEnabled = true; RetourAccueilBouton.IsEnabled = true; DeclinerDefiBouton.IsEnabled = true; _defi = e.Result; PhoneApplicationService.Current.State["defi"] = _defi; DefiImage.Source = new WriteableBitmap(Photo.DecodeImage(_defi.ImageDefi)); CreateurDefiTextBlock.Text = "Votre ami " + _defi.PrenomUtilisateur + " " + _defi.NomUtilisateur + " vous a défié !"; NombreDecoupageDefiTextBlock.Text = "Découpages : " + (_defi.Composition.Count + 1); NombreFiltreDefiTextBlock.Text = "Filtres : " + _defi.NombreFiltre; } else { MessageBox.Show("Une erreur s'est produite lors de la récupération du défi!"); RetourAccueilBouton.IsEnabled = true; } }
/// <summary> /// Permet de préparer l'image pour un défi /// </summary> private async void PreparerImageDefi() { //Récupération du défi DefiService defi = (DefiService)PhoneApplicationService.Current.State["defi"]; _partieEnCours = new Partie(defi.NombreFiltre); //Spécification du dataContext pour le Binding DataContext = _partieEnCours; //Calcul de la taille de la grille en fonction switch (defi.Composition.Count) { case 8: _partieEnCours.TailleGrille = 3; break; case 15: _partieEnCours.TailleGrille = 4; break; case 24: _partieEnCours.TailleGrille = 5; break; } CreerGrille(_partieEnCours.TailleGrille); int compteur = 0; for (int i = 0; i < _partieEnCours.TailleGrille; i++) { for (int j = 0; j < _partieEnCours.TailleGrille; j++) { if (!(i == _partieEnCours.TailleGrille - 1 && j == _partieEnCours.TailleGrille - 1)) { //Découpage de la UtilisateurImage Photo photoDecoupe = new Photo(new WriteableBitmap(Photo.DecodeImage(defi.ImageDefi)).Crop(i * _largeurPiece, j * _hauteurPiece, _largeurPiece, _hauteurPiece), _largeurPiece, _hauteurPiece); CompositionService composer = null; foreach (var c in defi.Composition) { if (c.IdPiece == compteur) { composer = c; } } if (defi.Composition[compteur].IdFiltre != 0) { FilterEffect filterEffect = new FilterEffect(photoDecoupe.PhotoBuffer); Filtre filtre = null; foreach (var filtre1 in _listeFiltre) { if (composer != null && filtre1.Id == composer.IdFiltre) { filtre = filtre1; } } if (filtre != null) { filterEffect.Filters = new[] { filtre.Type } } ; var renderer = new WriteableBitmapRenderer(filterEffect, photoDecoupe.PhotoSelectionne); photoDecoupe.PhotoSelectionne = await renderer.RenderAsync(); } Image image = new Image { Name = compteur.ToString(CultureInfo.InvariantCulture), Source = photoDecoupe.PhotoSelectionne }; //TODO Determiner les coordonees en fonction de l'index int[] coordonnees = Piece.CalculerCoordonnees(composer.IndexPosition, _partieEnCours.TailleGrille); Grid.SetColumn(image, coordonnees[0]); Grid.SetRow(image, coordonnees[1]); JeuGrid.Children.Add(image); Piece piece = new Piece(image, composer.IndexPosition); _partieEnCours.ListePieces.Add(piece); compteur++; } } } foreach (var piece in _partieEnCours.ListePieces) { piece.Image.Tap += ImageTap; } _indicator.IsIndeterminate = false; _indicator.IsVisible = false; }