Ajout suppression Jeu et autres
continuous-integration/drone/push Build was killed Details

pull/72/head
Cedric CHARBONNEL 2 years ago
parent 6215a81ec0
commit 57bd1ac5a2

@ -14,7 +14,6 @@ public partial class BoutonVoir : ContentView
var selectedjeu = (sender as Button)?.BindingContext as Jeu; var selectedjeu = (sender as Button)?.BindingContext as Jeu;
if (selectedjeu != null) if (selectedjeu != null)
{ {
//await Shell.Current.GoToAsync(nameof(PageJeu(selectedjeu)); ---- Ne marche pas ----
await Navigation.PushAsync(new PageJeu(selectedjeu)); await Navigation.PushAsync(new PageJeu(selectedjeu));
} }
} }

@ -35,7 +35,7 @@
</LinearGradientBrush> </LinearGradientBrush>
</Frame.Background> </Frame.Background>
<Frame HeightRequest="48" WidthRequest="48" CornerRadius="24" VerticalOptions="Center" HorizontalOptions="Center" IsClippedToBounds="True"> <Frame HeightRequest="48" WidthRequest="48" CornerRadius="24" VerticalOptions="Center" HorizontalOptions="Center" IsClippedToBounds="True">
<Image Source="default_user.png" Aspect="AspectFill"/> <Image Source="{Binding AccueilManager.ConnectedUser.PhotoProfil}" Aspect="AspectFill"/>
</Frame> </Frame>
</Frame> </Frame>
<Label Text="{Binding AccueilManager.ConnectedUser.Pseudo}" FontSize="18" FontFamily="AladinRegular" TextColor="{StaticResource Black}" VerticalTextAlignment="Center"/> <Label Text="{Binding AccueilManager.ConnectedUser.Pseudo}" FontSize="18" FontFamily="AladinRegular" TextColor="{StaticResource Black}" VerticalTextAlignment="Center"/>
@ -105,7 +105,7 @@
Padding="25,25,0,25" Padding="25,25,0,25"
/> />
<Grid Grid.Row="6"> <Grid Grid.Row="6" Padding="0,0,0,20">
<VerticalStackLayout Spacing="30" BindableLayout.ItemsSource="{Binding AccueilManager.TopRatedGames}"> <VerticalStackLayout Spacing="30" BindableLayout.ItemsSource="{Binding AccueilManager.TopRatedGames}">
<BindableLayout.ItemTemplate> <BindableLayout.ItemTemplate>
<DataTemplate> <DataTemplate>

@ -15,7 +15,7 @@
</LinearGradientBrush> </LinearGradientBrush>
</Grid.Background> </Grid.Background>
<Grid RowDefinitions="166,*" ColumnDefinitions="30,*,30" Padding="10,20,10,0"> <Grid Padding="10,20,10,0">
<Image Source="arrowback" VerticalOptions="Start" WidthRequest="30"> <Image Source="arrowback" VerticalOptions="Start" WidthRequest="30">
<Image.GestureRecognizers> <Image.GestureRecognizers>
<TapGestureRecognizer Tapped="Back_Tapped"/> <TapGestureRecognizer Tapped="Back_Tapped"/>
@ -29,9 +29,9 @@
<Button Grid.Row="2" Grid.Column="1" HeightRequest="50" Text="Ajouter un Jeu" TextColor="Black" FontFamily="PTSansCaption-Bold" FontSize="14" Clicked="OnButtonClicked"/> <Button Grid.Row="2" Grid.Column="1" HeightRequest="50" Text="Ajouter un Jeu" TextColor="Black" FontFamily="PTSansCaption-Bold" FontSize="14" Clicked="OnButtonClicked"/>
<Button Grid.Row="3" Grid.Column="1" HeightRequest="50" Text="Gérer un jeu" TextColor="Black" FontFamily="PTSansCaption-Bold" FontSize="14"/> <Button IsEnabled="False" Grid.Row="3" Grid.Column="1" HeightRequest="50" Text="Gérer un jeu" TextColor="Black" FontFamily="PTSansCaption-Bold" FontSize="14"/>
<Button Grid.Row="4" Grid.Column="1" HeightRequest="50" Text="Supprimer un jeu" TextColor="Black" FontFamily="PTSansCaption-Bold" FontSize="14"/> <Button Grid.Row="4" Grid.Column="1" HeightRequest="50" Text="Supprimer un jeu" TextColor="Black" FontFamily="PTSansCaption-Bold" FontSize="14" Clicked="OnDeleteClicked"/>
</Grid> </Grid>

@ -49,7 +49,7 @@ public partial class PageAdmin : ContentPage
int etape = 1; int etape = 1;
bool annuler = false; bool annuler = false;
while (etape <= 9 && !annuler) while (etape <= 10 && !annuler)
{ {
switch (etape) switch (etape)
{ {
@ -61,7 +61,7 @@ public partial class PageAdmin : ContentPage
} }
break; break;
case 2: case 2:
resume = await DisplayPromptAsync("Informations sur le Jeu [2/10]", "Résumé du jeu", accept: "Terminer", cancel: "Annuler", placeholder: "Résumé du jeu"); resume = await DisplayPromptAsync("Informations sur le Jeu [2/10]", "Résumé du jeu", accept: "Suivant", cancel: "Annuler", placeholder: "Résumé du jeu");
if (string.IsNullOrEmpty(resume)) if (string.IsNullOrEmpty(resume))
{ {
annuler = true; annuler = true;
@ -96,7 +96,7 @@ public partial class PageAdmin : ContentPage
} }
break; break;
case 7: case 7:
note = await DisplayPromptAsync("Informations sur le Jeu [7/10]", "Note de 0 à 10", accept: "Suivant", cancel: "Annuler", maxLength: 3, placeholder: "4,5"); note = await DisplayPromptAsync("Informations sur le Jeu [7/10]", "Note de 0 à 10",accept: "Suivant", cancel: "Annuler", maxLength: 3, placeholder: "4,5");
if (string.IsNullOrEmpty(note)) if (string.IsNullOrEmpty(note))
{ {
annuler = true; annuler = true;
@ -144,4 +144,33 @@ public partial class PageAdmin : ContentPage
Debug.WriteLine("Annulation de l'ajout du jeu."); Debug.WriteLine("Annulation de l'ajout du jeu.");
} }
} }
private async void OnDeleteClicked(object sender, EventArgs e)
{
var gameNames = GetGameNames().ToArray();
string action = await DisplayActionSheet("Sélectionnez un jeu à supprimer", "Annuler", null, gameNames);
if (action != null && action != "Annuler")
{
var jeuASupprimer = GetGameByName(action);
if (jeuASupprimer != null)
{
AdminManager.ListJeux.Remove(jeuASupprimer);
AdminManager.SauvegardeDonnees();
await DisplayAlert("Succès",$"{jeuASupprimer.Nom} a bien été supprimé de l'application.", "Ok");
Debug.WriteLine($"Le jeu {jeuASupprimer.Nom} a été supprimé");
}
}
}
private List<string> GetGameNames()
{
return AdminManager.ListJeux.Select(jeu => jeu.Nom).ToList();
}
private Jeu GetGameByName(string name)
{
return AdminManager.ListJeux.FirstOrDefault(jeu => jeu.Nom == name);
}
} }

@ -31,11 +31,13 @@
<Entry x:Name="mdp" Placeholder="Mot de passe" IsPassword="True" ClearButtonVisibility="WhileEditing" BackgroundColor="White" PlaceholderColor="#5E5E5E" /> <Entry x:Name="mdp" Placeholder="Mot de passe" IsPassword="True" ClearButtonVisibility="WhileEditing" BackgroundColor="White" PlaceholderColor="#5E5E5E" />
</Border> </Border>
<Button Text="Sélectionner une photo de profil" TextColor="{StaticResource Black}" HorizontalOptions="Center" VerticalOptions="Center" BackgroundColor="#DFE4FF" Clicked="OnSelectPhotoClicked"/>
<Button Text="S'inscrire" <Button Text="S'inscrire"
VerticalOptions="Center" VerticalOptions="Center"
HorizontalOptions="Center" HorizontalOptions="Center"
BackgroundColor="#FAD05D" BackgroundColor="#FAD05D"
TextColor="Black" TextColor="{StaticResource Black}"
FontFamily="RobotoBold" FontFamily="RobotoBold"
Margin="0,50,0,10" Margin="0,50,0,10"
Padding="60,0,60,0" Padding="60,0,60,0"

@ -10,7 +10,7 @@ using Font = Microsoft.Maui.Font;
public partial class PageInscription : ContentPage public partial class PageInscription : ContentPage
{ {
string ImagePath { get; set; } = "default_user.png";
public Manager InscriptionManager => (App.Current as App).MyManager; public Manager InscriptionManager => (App.Current as App).MyManager;
public PageInscription() public PageInscription()
@ -46,6 +46,7 @@ public partial class PageInscription : ContentPage
} }
Utilisateur utilisateur = new Utilisateur(mail, username, password); Utilisateur utilisateur = new Utilisateur(mail, username, password);
utilisateur.PhotoProfil = ImagePath;
InscriptionManager.AddUtilisateur(utilisateur); InscriptionManager.AddUtilisateur(utilisateur);
InscriptionManager.SauvegardeDonnees(); InscriptionManager.SauvegardeDonnees();
Debug.WriteLine(InscriptionManager.Utilisateurs.Count); Debug.WriteLine(InscriptionManager.Utilisateurs.Count);
@ -86,7 +87,19 @@ public partial class PageInscription : ContentPage
return hasUppercase && hasLowercase && hasDigit; return hasUppercase && hasLowercase && hasDigit;
} }
} }
private async void OnSelectPhotoClicked(object sender, EventArgs e)
{
var photo = await MediaPicker.PickPhotoAsync();
if (photo != null)
{
ImagePath = photo.FullPath;
}
else
{
ImagePath = "default_user.png";
}
}
} }

@ -16,7 +16,7 @@
</Grid.Background> </Grid.Background>
<ScrollView> <ScrollView>
<Grid RowDefinitions="166,*" ColumnDefinitions="30,*,30" Padding="10,20,10,0"> <Grid RowDefinitions="170,*" ColumnDefinitions="30,*,30" Padding="10,20,10,0">
<Image Source="arrowback" VerticalOptions="Start" WidthRequest="30"> <Image Source="arrowback" VerticalOptions="Start" WidthRequest="30">
<Image.GestureRecognizers> <Image.GestureRecognizers>

@ -19,8 +19,6 @@
<VerticalStackLayout> <VerticalStackLayout>
<StackLayout Padding="0,30,0,0" HorizontalOptions="Center" VerticalOptions="Center" Grid.Row="2"> <StackLayout Padding="0,30,0,0" HorizontalOptions="Center" VerticalOptions="Center" Grid.Row="2">
<Frame HeightRequest="40" WidthRequest="300" CornerRadius="8"> <Frame HeightRequest="40" WidthRequest="300" CornerRadius="8">
<SearchBar Placeholder="Rechercher" TextColor="Black" BackgroundColor="#D9D9D9" TextChanged="SearchBar_TextChanged"/> <SearchBar Placeholder="Rechercher" TextColor="Black" BackgroundColor="#D9D9D9" TextChanged="SearchBar_TextChanged"/>

@ -26,7 +26,7 @@
</LinearGradientBrush> </LinearGradientBrush>
</Frame.Background> </Frame.Background>
<Frame HeightRequest="48" WidthRequest="48" CornerRadius="24" VerticalOptions="Center" HorizontalOptions="Center" IsClippedToBounds="True"> <Frame HeightRequest="48" WidthRequest="48" CornerRadius="24" VerticalOptions="Center" HorizontalOptions="Center" IsClippedToBounds="True">
<Image Source="default_user.png" Aspect="AspectFill"/> <Image Source="{Binding ConnectedUser.PhotoProfil}" Aspect="AspectFill"/>
</Frame> </Frame>
</Frame> </Frame>
</Grid> </Grid>

@ -37,6 +37,12 @@ namespace Models
[DataMember] [DataMember]
public string Mdp { get; private set; } public string Mdp { get; private set; }
/// <summary>
/// Obtient ou définit la photo de profil de l'utilisateur.
/// </summary>
[DataMember]
public string PhotoProfil { get; set; }
/// <summary> /// <summary>
/// Obtient la date de création de l'utilisateur. /// Obtient la date de création de l'utilisateur.
/// </summary> /// </summary>
@ -78,6 +84,7 @@ namespace Models
Mail = mail; Mail = mail;
Pseudo = pseudo; Pseudo = pseudo;
Mdp = mdp; Mdp = mdp;
PhotoProfil = "default_user.png";
DateCreation = DateTime.Today.ToString("d"); DateCreation = DateTime.Today.ToString("d");
ListePossedes = new ObservableCollection<Jeu>(); ListePossedes = new ObservableCollection<Jeu>();
ListeFavoris = new ObservableCollection<Jeu>(); ListeFavoris = new ObservableCollection<Jeu>();

@ -28,6 +28,10 @@ namespace Stub
Jeu Hogwarts = new Jeu("Hogwarts Legacy : L'Héritage de Poudlard", "Hogwarts Legacy est un jeu de rôle d'action et d'aventure solo basé sur l'univers de Harry Potter, dans lequel le joueur incarne un nouveau venu dans le château enchanté tant apprécié des fans des livres et de la franchise cinématographique.", "10 Février 2023", "PC Switch XOne", "Avalanche Software", "Warner Bros. Games", 5, 100, "Solo Action Aventure RPG", "cover_hogwarts.png"); Jeu Hogwarts = new Jeu("Hogwarts Legacy : L'Héritage de Poudlard", "Hogwarts Legacy est un jeu de rôle d'action et d'aventure solo basé sur l'univers de Harry Potter, dans lequel le joueur incarne un nouveau venu dans le château enchanté tant apprécié des fans des livres et de la franchise cinématographique.", "10 Février 2023", "PC Switch XOne", "Avalanche Software", "Warner Bros. Games", 5, 100, "Solo Action Aventure RPG", "cover_hogwarts.png");
Jeu RE4 = new Jeu("Resident Evil 4", "Six ans se sont écoulés depuis la catastrophe biologique de Raccoon City. L'agent Leon S. Kennedy, l'un des survivants du drame, est envoyé secourir la fille du président qui a été kidnappée. Son enquête le mène jusqu'à un village européen isolé, dont les habitants cachent un effroyable secret. Et ainsi se lève le rideau d'une histoire de sauvetage audacieux et d'horreur atroce, où se mêlent vie, mort, terreur et catharsis.", "24 Mars 2023", "PC XSeries", "CAPCOM Co., Ltd.", "CAPCOM Co., Ltd.", 8, 100, "Solo Action Aventure", "cover_residentevil4.png"); Jeu RE4 = new Jeu("Resident Evil 4", "Six ans se sont écoulés depuis la catastrophe biologique de Raccoon City. L'agent Leon S. Kennedy, l'un des survivants du drame, est envoyé secourir la fille du président qui a été kidnappée. Son enquête le mène jusqu'à un village européen isolé, dont les habitants cachent un effroyable secret. Et ainsi se lève le rideau d'une histoire de sauvetage audacieux et d'horreur atroce, où se mêlent vie, mort, terreur et catharsis.", "24 Mars 2023", "PC XSeries", "CAPCOM Co., Ltd.", "CAPCOM Co., Ltd.", 8, 100, "Solo Action Aventure", "cover_residentevil4.png");
Jeu JediSurvivor = new Jeu("Star Wars Jedi: Survivor", "Poussé aux confins de la galaxie par l'Empire, Cal devra faire face à toujours plus de menaces, parmi lesquelles l'attendent des adversaires au visage familier. En tant qu'un des derniers représentants encore en vie des Chevaliers Jedi, Cal devra faire un choix pendant cette période sombre de l'histoire de la galaxie. Mais jusqu'où sera-t-il prêt à aller pour assurer sa survie et celle de son équipage, et défendre l'héritage de l'Ordre Jedi ?", "28 Avril 2023", "PC XSeries", "Respawn", "Electronic Arts", 5.5, 100, "Solo Action Aventure", "cover_starwarsjedisurvivor.png"); Jeu JediSurvivor = new Jeu("Star Wars Jedi: Survivor", "Poussé aux confins de la galaxie par l'Empire, Cal devra faire face à toujours plus de menaces, parmi lesquelles l'attendent des adversaires au visage familier. En tant qu'un des derniers représentants encore en vie des Chevaliers Jedi, Cal devra faire un choix pendant cette période sombre de l'histoire de la galaxie. Mais jusqu'où sera-t-il prêt à aller pour assurer sa survie et celle de son équipage, et défendre l'héritage de l'Ordre Jedi ?", "28 Avril 2023", "PC XSeries", "Respawn", "Electronic Arts", 5.5, 100, "Solo Action Aventure", "cover_starwarsjedisurvivor.png");
Jeu Temp = new Jeu("A", "Poussé aux confins de la galaxie par l'Empire, Cal devra faire face à toujours plus de menaces, parmi lesquelles l'attendent des adversaires au visage familier. En tant qu'un des derniers représentants encore en vie des Chevaliers Jedi, Cal devra faire un choix pendant cette période sombre de l'histoire de la galaxie. Mais jusqu'où sera-t-il prêt à aller pour assurer sa survie et celle de son équipage, et défendre l'héritage de l'Ordre Jedi ?", "28 Avril 2023", "PC XSeries", "Respawn", "Electronic Arts", 5.5, 100, "Solo Action Aventure", "cover_starwarsjedisurvivor.png");
Jeu Temp2 = new Jeu("B", "Poussé aux confins de la galaxie par l'Empire, Cal devra faire face à toujours plus de menaces, parmi lesquelles l'attendent des adversaires au visage familier. En tant qu'un des derniers représentants encore en vie des Chevaliers Jedi, Cal devra faire un choix pendant cette période sombre de l'histoire de la galaxie. Mais jusqu'où sera-t-il prêt à aller pour assurer sa survie et celle de son équipage, et défendre l'héritage de l'Ordre Jedi ?", "28 Avril 2023", "PC XSeries", "Respawn", "Electronic Arts", 5.5, 100, "Solo Action Aventure", "cover_starwarsjedisurvivor.png");
Jeu Temp3 = new Jeu("C", "Poussé aux confins de la galaxie par l'Empire, Cal devra faire face à toujours plus de menaces, parmi lesquelles l'attendent des adversaires au visage familier. En tant qu'un des derniers représentants encore en vie des Chevaliers Jedi, Cal devra faire un choix pendant cette période sombre de l'histoire de la galaxie. Mais jusqu'où sera-t-il prêt à aller pour assurer sa survie et celle de son équipage, et défendre l'héritage de l'Ordre Jedi ?", "28 Avril 2023", "PC XSeries", "Respawn", "Electronic Arts", 5.5, 100, "Solo Action Aventure", "cover_starwarsjedisurvivor.png");
Jeu Temp4 = new Jeu("D", "Poussé aux confins de la galaxie par l'Empire, Cal devra faire face à toujours plus de menaces, parmi lesquelles l'attendent des adversaires au visage familier. En tant qu'un des derniers représentants encore en vie des Chevaliers Jedi, Cal devra faire un choix pendant cette période sombre de l'histoire de la galaxie. Mais jusqu'où sera-t-il prêt à aller pour assurer sa survie et celle de son équipage, et défendre l'héritage de l'Ordre Jedi ?", "28 Avril 2023", "PC XSeries", "Respawn", "Electronic Arts", 5.5, 100, "Solo Action Aventure", "cover_starwarsjedisurvivor.png");
ListJeu.Add(TheLastOfUs); ListJeu.Add(TheLastOfUs);
ListJeu.Add(ForzaHorizon); ListJeu.Add(ForzaHorizon);
ListJeu.Add(TOTK); ListJeu.Add(TOTK);
@ -36,6 +40,11 @@ namespace Stub
ListJeu.Add(RE4); ListJeu.Add(RE4);
ListJeu.Add(JediSurvivor); ListJeu.Add(JediSurvivor);
ListJeu.Add(Temp);
ListJeu.Add(Temp2);
ListJeu.Add(Temp3);
ListJeu.Add(Temp4);
return (ListJeu,ListAdmins,ListUsers); return (ListJeu,ListAdmins,ListUsers);
} }

Loading…
Cancel
Save