Compare commits

...

9 Commits

@ -18,18 +18,18 @@ namespace Persistance
public LoaderStub() { }
public List<User> loadUsers() ///CHANGER VISIBILITEE, CAR PAS BIEN DE LAISSER A TOUT LE MONDE
{
List<User> lu = new List<User>();
Monstre monstre = new Monstre(1, "Poule", "passif", "Les poules sont des créatures passives. Elles fournissent des plumes et des oeufs.En moyenne, une poule laisse tomber un oeuf toutes des 5 à 10 minutes.", new List<string> { "Quand une poule est tuée, il y a une faible chance qu'elle laisse tomber un œuf.", "Parfois, les poules apparaissent avec un bébé zombie sur le dos, on l'appelle alors une poule jockey. Il est aussi possible d'avoir un bébé cochon zombie sur son dos, mais seulement par commande." }, new List<string> { "Poule", "Poule jockey", "Poule jockey cochon" }, new ObservableCollection<Conseil> { });
Monstre mouton = new Monstre(2, "Mouton", "passif", "Les moutons sont des créatures passives. Sa principale caractéristique est qu'il peut fournir de la laine, un matériau qui sert à fabriquer des objets, notamment des lits.", new List<string> { "Avec une cisaille, il est possible de rasé la laine d'un mouton, il se retrouvera sans laine.", "Pour faire repousser la laine d'un mouton, il faut qu'il ait de l'herbe sous ses pattes pour qu'il puisse manger. Une fois manger la laine repousse instantanément.", "Les moutons peuvent avoir toutes les couleurs du jeu grâce à des teintures et des mélanges. Mais les seules couleurs de mouton pouvant apparaître sont le blanc, le gris, le marron, le noir et le rose..", "Le rose est une couleur qui a une chance d'apparaître très faible, tellement faible que la probabilité pour qu'un mouton un bébé et soit rose en même temps est la probabilité la plus petite du jeu." }, new List<string> { "Mouton" }, new ObservableCollection<Conseil> { });
List<User> lu = new List<User>();
User user = new User("Admin", "ddd", "ddd", "ddd", new List<Monstre> { monstre });
lu.Add(user);
lu.Add(new User("DedeDu42", "dede", "dodo", "mdp", new List<Monstre> { }));
lu.Add(new User("Moi", "Monchanin", "Liam", "feur", new List<Monstre> { }));
lu.Add(new User("Nikoala", "Blondeau", "Nicolas", "niblondeau", new List<Monstre> {
new Monstre(2,
"Mouton", "passif", "Je suis présent un peu partout, sauf dnas le desert.",
new List<string> { "Avec une cisaille il est possible de raser la laine d'un mouton, il se retrouvera sans laine.","Pour faire repousser la laine d'un mouton, il faut qu'il ait de l'herbe sous ses pattes pour qu'il puisse manger. Une fois l'herbe mangée, la laine repousse instantanément !" },
new List<string> { "Apparence1", "App2", "App3" }
, new ObservableCollection<Conseil> {}) }));
lu.Add(new User("Nikoala", "Blondeau", "Nicolas", "niblondeau", new List<Monstre> { }));
lu.Add(new User("Yadoumir", "Doumir", "Yannis", "mdp", new List<Monstre> { }));
lu.Add(new User("osuplayer123", "Bonetti", "Martin", "oSu!727", new List<Monstre> { }));
return lu;
}

@ -0,0 +1,53 @@
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Model;
namespace Tests
{
public class Conseil_UT
{
User userTest = new User("Moi", "Monchanin", "Liam", "feur", new List<Monstre> { });
Monstre monstreTest = new Monstre(2, "Mouton", "passif", "Les moutons sont des créatures passives.", new List<string> { "Avec une cisaille, il est possible de rasé la laine d'un mouton"}, new List<string> { "Mouton" }, new ObservableCollection<Conseil> { });
[Fact]
public void ConseilConstructorGood()
{
string texte = "Ceci est un conseil.";
Conseil conseil = new Conseil(userTest, texte, monstreTest);
Assert.Equal(userTest, conseil.Auteur);
Assert.Equal(texte, conseil.Texte);
Assert.Equal(monstreTest, conseil.LeMonstre);
}
[Fact]
public void ConseilConstructorNullUser()
{
string texte = "Ceci est un conseil.";
Assert.Throws<ArgumentNullException>(() => new Conseil(null, texte, monstreTest));
}
[Fact]
public void ConseilConstructorNullMonster()
{
string texte = "Ceci est un conseil.";
Assert.Throws<ArgumentNullException>(() => new Conseil(userTest, texte, null));
}
[Fact]
public void ConseilConstructorTextVide()
{
// Arrange
string texte = "";
// Act & Assert
Assert.Throws<ArgumentNullException>(() => new Conseil(userTest, texte, monstreTest));
}
}
}

@ -21,6 +21,7 @@ namespace Vues
private async void Invite_Clicked(object sender, EventArgs e)
{
(Application.Current as App).User = null;
await Navigation.PushAsync(new SearchMob());
}
}

@ -1,33 +1,29 @@
<?xml version="1.0" encoding="UTF-8" ?>
<Shell
x:Class="Vues.AppShell"
xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:Vues"
Shell.FlyoutBehavior="Disabled"
Shell.FlyoutWidth="60">
<ShellContent
ContentTemplate="{DataTemplate local:Accueil}"
FlyoutIcon="home.png"
Route="Accueil" />
<ShellContent
ContentTemplate="{DataTemplate local:Connexion}"
FlyoutIcon="cadena.png"
Route="Connexion" />
<ShellContent
ContentTemplate="{DataTemplate local:Inscription}"
FlyoutIcon="cadena.png"
Route="Inscriiption" />
<ShellContent
ContentTemplate="{DataTemplate local:SearchMob}"
FlyoutIcon="cadena.png"
Route="SearchMob" />
<ShellContent
ContentTemplate="{DataTemplate local:Favoris}"
FlyoutIcon="star.png"
Route="Favoris" />
<ShellContent
ContentTemplate="{DataTemplate local:Collection}"
FlyoutIcon="star.png"
Route="Collection" />
</Shell>
<?xml version="1.0" encoding="UTF-8" ?>
<Shell
x:Class="Vues.AppShell"
xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:Vues"
Shell.FlyoutBehavior="Disabled"
Shell.FlyoutWidth="60">
<ShellContent
ContentTemplate="{DataTemplate local:Accueil}"
FlyoutIcon="home.png"
Route="Accueil" />
<ShellContent
ContentTemplate="{DataTemplate local:Connexion}"
FlyoutIcon="cadena.png"
Route="Connexion" />
<ShellContent
ContentTemplate="{DataTemplate local:Inscription}"
FlyoutIcon="cadena.png"
Route="Inscriiption" />
<ShellContent
ContentTemplate="{DataTemplate local:SearchMob}"
FlyoutIcon="cadena.png"
Route="SearchMob" />
<ShellContent
ContentTemplate="{DataTemplate local:Collection}"
FlyoutIcon="star.png"
Route="Collection" />
</Shell>

@ -7,6 +7,10 @@
<VerticalStackLayout>
<HorizontalStackLayout BackgroundColor="{StaticResource buttonBackgroundColor}">
<ImageButton Source="arrow.png" WidthRequest="40"
BackgroundColor="{StaticResource buttonBackgroundColor}"
Clicked="ImageButton_Clicked"/>
<Line X1="0" Y1="0" X2="0" Y2="70" Stroke="Black" StrokeThickness="2"/>
<Label Text=" Monstre déjà vu"></Label>
<CheckBox x:Name="CheckboxdejaVu"
Color="{StaticResource BleuFonce}"
@ -18,15 +22,21 @@
CheckedChanged="CheckedPasVu"></CheckBox>
</HorizontalStackLayout>
<Line X1="0" Y1="0" X2="1500" Y2="0" Stroke="Black" StrokeThickness="2"/>
<FlexLayout>
<ListView ItemsSource="{Binding listMobs}" BackgroundColor="White">
<VerticalStackLayout >
<ListView x:Name="ListViewMonsters" ItemsSource="{Binding MonstresDejaVu}" Grid.Row="1">
<ListView.ItemTemplate>
<DataTemplate>
<TextCell Text="{Binding Nom}" />
<ViewCell>
<VerticalStackLayout>
<Image Source="{Binding ImageLink}"
HeightRequest="50"
Margin="20, 20, 20, 20"/>
</VerticalStackLayout>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</FlexLayout>
</VerticalStackLayout>
</VerticalStackLayout>
</ContentPage>

@ -1,53 +1,71 @@
using Model;
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.Linq;
namespace Vues;
public partial class Collection : ContentPage, INotifyPropertyChanged
{
public ObservableCollection<Monstre> MnstrTemp = (Application.Current as App).monsterManager.ListMonsters;
public ObservableCollection<Monstre> MonstresDejaVu { get; set; }
public Collection()
{
InitializeComponent();
BindingContext = this;
}
private void UpdateListMobs()
{
var monstresDejaVu = MnstrTemp.Where(monstre => (Application.Current as App).User.monstresDejaVu.Contains(monstre)).ToList();
var monstresPasVu = MnstrTemp.Except((Application.Current as App).User.monstresDejaVu).ToList();
var listMobs = new ObservableCollection<Monstre>();
listMobs.Clear();
InitializeComponent();
User toto = (Application.Current as App).User;
MonstresDejaVu = new ObservableCollection<Monstre>(toto.monstresDejaVu);
var MnstrTemp = new ObservableCollection<Monstre> { };
MnstrTemp = new ObservableCollection<Monstre>((Application.Current as App).monsterManager.ListMonsters.Except(MonstresDejaVu));
ListViewMonsters.BindingContext = this;
}
private void UpdateListMobs(ObservableCollection<Monstre> Monstres) // /!\ Qd on décoche Monstre déjà vu et re coche ils ne veulent pas réapparaître sauf si on clique aussi sur monstre pas vu
{
var monstresDejaVu = Monstres.Where(monstre => (Application.Current as App).User.monstresDejaVu.Contains(monstre)).ToList();
var monstresPasVu = (Application.Current as App).monsterManager.ListMonsters.Except(monstresDejaVu).ToList();
Monstres.Clear();
if (CheckboxdejaVu.IsChecked && CheckboxpasVu.IsChecked)
{
var concatMonstres = monstresDejaVu.Concat(monstresPasVu);
listMobs = new ObservableCollection<Monstre>(concatMonstres);
}
else if (CheckboxdejaVu.IsChecked)
{
listMobs = new ObservableCollection<Monstre>(monstresDejaVu);
foreach (var monstre in monstresDejaVu.Concat(monstresPasVu))
{
Monstres.Add(monstre);
}
}
else if (CheckboxpasVu.IsChecked)
// Si monstres déjà vu checked et monstres pas vu pas checked alors on l'ajoute à la collection et on supprime les monstres pas vu
else if (CheckboxdejaVu.IsChecked && !CheckboxpasVu.IsChecked)
{
listMobs = new ObservableCollection<Monstre>(monstresPasVu);
foreach (var monstre in monstresDejaVu)
{
Monstres.Add(monstre);
}
}
else
// Si monstres pas vu checked alors on l'ajoute à la collection
else if (CheckboxpasVu.IsChecked && !CheckboxdejaVu.IsChecked)
{
listMobs = new ObservableCollection<Monstre>();
foreach (var monstre in monstresPasVu)
{
if (!monstresDejaVu.Contains(monstre))
{
Monstres.Add(monstre);
}
}
}
}
private void CheckedVu(object sender, CheckedChangedEventArgs e)
{
UpdateListMobs();
UpdateListMobs(MonstresDejaVu);
}
private void CheckedPasVu(object sender, CheckedChangedEventArgs e)
{
UpdateListMobs();
UpdateListMobs(MonstresDejaVu);
}
private async void ImageButton_Clicked(object sender, EventArgs e)
{
await Navigation.PopAsync();
}
}

@ -1,12 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="Vues.Favoris">
<VerticalStackLayout
VerticalOptions="Center">
<Label
Text="THIS IS THE FAVS PAGE"
VerticalOptions="Center"
HorizontalOptions="Center" />
</VerticalStackLayout>
</ContentPage>

@ -1,9 +0,0 @@
namespace Vues;
public partial class Favoris : ContentPage
{
public Favoris()
{
InitializeComponent();
}
}

@ -1,54 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:toolkit="http://schemas.microsoft.com/dotnet/2022/maui/toolkit"
x:Class="Vues.PageConnexion"
BackgroundImageSource="back.png">
<toolkit:DockLayout
>
<FlexLayout
Direction="Column"
JustifyContent="Center"
AlignItems="Center">
<Label
Text="Bienvenue !"
VerticalOptions="Center"
HorizontalOptions="Center"
FontSize="38"
HeightRequest="100" />
<Button
Text="Se connecter"
FontSize="20"
WidthRequest="250"
HeightRequest="70"
BorderColor="Black"
BorderWidth="2"
Margin="5"
BackgroundColor="#6193b7"/>
<Button
Text="Créer un compte"
FontSize="20"
WidthRequest="250"
HeightRequest="70"
BorderColor="Black"
BorderWidth="2"
Margin="5"
BackgroundColor="#6193b7"/>
</FlexLayout>
</toolkit:DockLayout>
</ContentPage>

@ -1,9 +0,0 @@
namespace Vues;
public partial class PageConnexion : ContentPage
{
public PageConnexion()
{
InitializeComponent();
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

@ -3,6 +3,7 @@
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:toolkit="http://schemas.microsoft.com/dotnet/2022/maui/toolkit"
xmlns:shape="Microsoft.Maui.Controls.Shapes"
xmlns:model="clr-namespace:Model;assembly=Modèle"
x:Class="Vues.SearchMob"
BackgroundImageSource="backcollection.jpg">
<!--BackgroundImageSource="backcollection.jpg"-->
@ -137,7 +138,7 @@
<Grid RowDefinitions="Auto,Auto,Auto,Auto" BindingContext="{Binding SelectedItem, Source={x:Reference ListViewMonsters}}">
<Grid ColumnDefinitions="3*, *" Grid.Row="0">
<!-- Checkbox "Déjà Vu-->
<HorizontalStackLayout Grid.Column="0" VerticalOptions="Start">
<HorizontalStackLayout x:Name="dejaVuContainer" IsVisible="false" Grid.Column="0" VerticalOptions="Start">
<Label Text="Déjà vu ?" FontSize="20" TextColor="White" Margin="7"/>
<CheckBox Color="Green" CheckedChanged="CheckBox_CheckedChanged" x:Name="CheckDejaVu"/>
</HorizontalStackLayout>
@ -200,6 +201,29 @@
<Label TextDecorations="Underline" Text="Conseils :" FontSize="Medium"/>
<!-- Bouton d'ajout de conseil -->
<Button x:Name="ButtonAddConseil" Margin="8" HorizontalOptions="End" IsVisible="False" Text="Ajouter un conseil" Grid.Row="0" Grid.Column="1" Clicked="OnAddConseilClicked" />
<HorizontalStackLayout>
<!-- On devrait faire des styles globaux pour ces boutons, comme en haut du XAML -->
<ImageButton
x:Name="ConseilOptionModify"
IsVisible="False"
IsEnabled="False"
CornerRadius="5"
Scale="0.7"
Source="pencil.png"
HeightRequest="12" WidthRequest="12"
CommandParameter="{Binding .}"
Clicked="ConseilOptionModify_Clicked"/>
<ImageButton
x:Name="ConseilOptionDelete"
IsVisible="False"
IsEnabled="False"
CornerRadius="5"
Scale="0.7"
Source="bin.png"
HeightRequest="12" WidthRequest="12"
CommandParameter="{Binding .}"
Clicked="ConseilOptionDelete_Clicked"/>
</HorizontalStackLayout>
<VerticalStackLayout x:Name="AddConseilLayout" Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2" IsVisible="False">
<Editor x:Name="texteConseilEntry" TextChanged="texteConseilEntry_TextChanged" AutoSize="TextChanges" Placeholder="Texte du conseil" PlaceholderColor="{StaticResource Gray500}"/>
<Grid ColumnDefinitions="*,*" Padding="8" HorizontalOptions="CenterAndExpand">
@ -207,51 +231,30 @@
<Button Grid.Column="1" Text="Annuler" Clicked="OnExitConseilClicked" />
</Grid>
</VerticalStackLayout>
<ListView x:Name="ListViewConseils" VerticalOptions="Fill" ItemsSource="{Binding ListConseils}">
<VerticalStackLayout x:Name="ModifyConseilLayout" Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2" IsVisible="False">
<Editor x:Name="conseilEditor" TextChanged="conseilEditor_TextChanged" AutoSize="TextChanges" Placeholder="Texte du conseil" PlaceholderColor="{StaticResource Gray500}"/>
<Grid ColumnDefinitions="*,*" Padding="8" HorizontalOptions="CenterAndExpand">
<Button Grid.Column="0" Text="Valider" Clicked="OnValiderModifConseilClicked" />
<Button Grid.Column="1" Text="Annuler" Clicked="OnExitModifConseilClicked" />
</Grid>
</VerticalStackLayout>
<ListView x:Name="ListViewConseils" VerticalOptions="Fill" ItemsSource="{Binding ListConseils}" ItemTapped="ListViewConseils_ItemTapped">
<ListView.ItemTemplate>
<DataTemplate>
<!-- x:DataType="model:Conseil" Besoin de préciser pour pouvoir passer
l'objet en tant que Conseil en paramètre -->
<ViewCell>
<Border BackgroundColor="AntiqueWhite" StrokeThickness="2" StrokeShape="RoundRectangle 10">
<VisualStateManager.VisualStateGroups>
<VisualStateGroupList>
<VisualStateGroup x:Name="CommonStates">
<VisualState x:Name="PointerOver">
<VisualState.Setters>
<Setter TargetName="ConseilOptions" Property="IsVisible"
Value="true" />
</VisualState.Setters>
</VisualState>
<VisualState x:Name="Normal">
<VisualState.Setters>
<Setter TargetName="ConseilOptions" Property="IsVisible"
Value="false" />
</VisualState.Setters>
</VisualState>
</VisualStateGroup>
</VisualStateGroupList>
</VisualStateManager.VisualStateGroups>
<Grid ColumnDefinitions="*,90" RowDefinitions="*" Padding="0" MinimumHeightRequest="50" HorizontalOptions="Fill" VerticalOptions="Fill">
<Grid ColumnDefinitions="*,70,70" RowDefinitions="*" Padding="0" MinimumHeightRequest="50" HorizontalOptions="Fill" VerticalOptions="Fill">
<!-- LA je ne comprends pas : pour que les VisualStates
fonctionnent sur tout le grid, et pas que sur le texte du label, il faut rajouter un background?? Bizarre...-->
fonctionnent sur tout le grid, et pas que sur le texte du label, il faut rajouter un background?? Bizarre-->
<VerticalStackLayout Padding="15,10,10,10" Grid.Column="0" VerticalOptions="Center">
<Label BindingContext="{Binding Auteur}" Text="{Binding Pseudo, StringFormat='{0} :'}"/>
<Label VerticalOptions="Fill" LineBreakMode="WordWrap" Text="{Binding Texte, StringFormat='{0}'}" />
<Label x:Name="labelConseil" VerticalOptions="Fill" LineBreakMode="WordWrap" Text="{Binding Texte, StringFormat='{0}'}" />
<Editor x:Name="editorConseil" IsVisible="false" VerticalOptions="Fill" Text="{Binding Texte, StringFormat='{0}'}" />
</VerticalStackLayout>
<!-- Les boutons de modifications et de suppression-->
<HorizontalStackLayout x:Name="ConseilOptions" Grid.Column="1" HorizontalOptions="End" IsVisible="False">
<ImageButton x:Name="lolilol" CornerRadius="5" Scale="0.7" Source="bin.png" HeightRequest="12" WidthRequest="12"/>
<ImageButton CornerRadius="5" Scale="0.7" Source="pencil.png" HeightRequest="12" WidthRequest="12" Clicked="ImageButton_Clicked"/>
<VerticalStackLayout x:Name="VerticalModifConseil" Grid.Row="2" IsVisible="False">
<Editor Text="{Binding ListConseils}"></Editor>
<Button x:Name="BoutonValidModif" Text="Confirmer les modifications"/>
</VerticalStackLayout>
</HorizontalStackLayout>
</Grid>
</Border>
</ViewCell>

@ -12,6 +12,7 @@ public partial class SearchMob : ContentPage, INotifyPropertyChanged
{
public ObservableCollection<Monstre> MnstrTemp { get; set; }
private string searchText;
private Conseil conseilSelectionne { get; set; }
public string SearchText
{
get
@ -42,6 +43,10 @@ public partial class SearchMob : ContentPage, INotifyPropertyChanged
if ((Application.Current as App).User != null)
{
ButtonAddConseil.IsVisible = true;
ConseilOptionModify.IsVisible = true;
ConseilOptionDelete.IsVisible = true;
dejaVuContainer.IsVisible = true;
CheckDejaVu.IsChecked = false;
}
}
@ -55,6 +60,22 @@ public partial class SearchMob : ContentPage, INotifyPropertyChanged
(App.Current as App).MonstreSelectionne = e.Item as Monstre;
imageCollection.Source = imageLinkConverter((App.Current as App).MonstreSelectionne.AppearanceList.First());
AddConseilLayout.IsVisible = false;
conseilSelectionne = null;
if ((Application.Current as App).User != null)
{
foreach (Monstre m in (App.Current as App).User.monstresDejaVu)
{
if (m.Name.Equals((App.Current as App).MonstreSelectionne.Name))
{
CheckDejaVu.IsChecked = true;
break;
}
else
{
CheckDejaVu.IsChecked = false;
}
}
}
refreshScrollView();
}
private void OnAddConseilClicked(object sender, EventArgs e)
@ -159,17 +180,16 @@ public partial class SearchMob : ContentPage, INotifyPropertyChanged
private async void QuitClicked(object sender, EventArgs e)
{
(Application.Current as App).User = null;
await Navigation.PushAsync(new Accueil());
await Navigation.PopToRootAsync(); //Pour retourner à la page racine
}
private void CheckBox_CheckedChanged(object sender, CheckedChangedEventArgs e)
{
/*
if (CheckDejaVu.IsChecked)
{
if ((App.Current as App).User != null)
{
(Application.Current as App).MonstreSelectionne.IsChecked = true;
CheckDejaVu.IsChecked = true;
(Application.Current as App).User.monstresDejaVu.Add((Application.Current as App).MonstreSelectionne);
}
}
@ -177,14 +197,81 @@ public partial class SearchMob : ContentPage, INotifyPropertyChanged
{
if ((App.Current as App).User != null)
{
(Application.Current as App).MonstreSelectionne.IsChecked = false;
CheckDejaVu.IsChecked = false;
(Application.Current as App).User.monstresDejaVu.Remove((Application.Current as App).MonstreSelectionne);
}
}
*/
}
private void ConseilOptionDelete_Clicked(object sender, EventArgs e)
{
if (conseilSelectionne != null)
{
if ((App.Current as App).User.Pseudo.Equals(conseilSelectionne.Auteur.Pseudo))
{
(App.Current as App).MonstreSelectionne.ListConseils.Remove(conseilSelectionne);
ConseilOptionModify.IsEnabled = false;
ConseilOptionDelete.IsEnabled = false;
}
}
}
private void ConseilOptionModify_Clicked(object sender, EventArgs e)
{
if (!ModifyConseilLayout.IsVisible)
{
ModifyConseilLayout.IsVisible = true;
conseilEditor.Text = conseilSelectionne.Texte;
refreshScrollView();
}
}
private void ListViewConseils_ItemTapped(object sender, ItemTappedEventArgs e)
{
if((App.Current as App).User != null)
{
conseilSelectionne = e.Item as Conseil;
if (conseilSelectionne != null && (App.Current as App).User.Pseudo.Equals(conseilSelectionne.Auteur.Pseudo))
{
ConseilOptionModify.IsEnabled = true;
ConseilOptionDelete.IsEnabled = true;
}
else
{
ConseilOptionModify.IsEnabled = false;
ConseilOptionDelete.IsEnabled = false;
}
}
}
private void conseilEditor_TextChanged(object sender, TextChangedEventArgs e)
{
(ScrollLayoutThatNeedsToBeRefreshed as IView).InvalidateMeasure();
}
///Si checkbox check
///add le monstre courant à la liste des monstre du user
///si unchecked, retirer le monsrte
private void OnValiderModifConseilClicked(object sender, EventArgs e)
{
if (ModifyConseilLayout != null)
{
string texteConseil = conseilEditor.Text;
var selectedMonstre = (App.Current as App).MonstreSelectionne;
if (selectedMonstre != null && !string.IsNullOrWhiteSpace(texteConseil) && !conseilSelectionne.Texte.Equals(texteConseil))
{
selectedMonstre.ListConseils.Remove(conseilSelectionne);
selectedMonstre.ListConseils.Add(new Conseil((App.Current as App).User, texteConseil, selectedMonstre));
}
conseilEditor.Text = null;
ModifyConseilLayout.IsVisible = false;
ConseilOptionModify.IsEnabled = false;
ConseilOptionDelete.IsEnabled = false;
}
refreshScrollView();
}
private void OnExitModifConseilClicked(object sender, EventArgs e)
{
conseilEditor.Text = null;
ModifyConseilLayout.IsVisible = false;
}
}

Binary file not shown.
Loading…
Cancel
Save