Merge pull request 'Valide #61' (#62) from CodeSmell into master
continuous-integration/drone/push Build is passing Details

Reviewed-on: #62
pull/64/head
Victor Perez NGOUNOU 3 years ago
commit d75501a2bb

@ -6,9 +6,17 @@ using System.Threading.Tasks;
namespace BowlingApp
{
/// <summary>
/// Classe pour gerer l'affichage en console
/// </summary>
public class Afficheur
{
public void AfficherMenu()
{
#region Méthodes
/// <summary>
/// Afficher le menu de l'application
/// </summary>
public static void AfficherMenu()
{
System.Console.WriteLine("Choisissez le mode de jeux :");
System.Console.WriteLine("1 - Solo ? ");
@ -16,29 +24,39 @@ namespace BowlingApp
System.Console.WriteLine("3- Equipe?");
}
/// <summary>
/// Afficher les erreur de saisie
/// </summary>
/// <param name="message"></param>
public static void AfficherErreur(String message)
{
Console.WriteLine($"erreur {message}");
}
public void AfficheNumFrame(int i)
/// <summary>
/// Affiche le numéro de frame
/// </summary>
/// <param name="i"></param>
public static void AfficheNumFrame(int i)
{
Console.WriteLine($"Frame {i}");
}
public void InviteNom(string type)
public static void InviteNom(string type)
{
Console.WriteLine($"veillez entrez le nom {type} ");
}
public void InviteNrb(string type)
public static void InviteNrb(string type)
{
Console.WriteLine($"veillez entrez le nombre de {type}");
}
public void InviteQuilleTombe(int i)
public static void InviteQuilleTombe(int i)
{
Console.WriteLine($"Entrez le nombre de quilles tombés du lancer {i}");
}
#endregion
}
}

@ -1,46 +0,0 @@
using BowlingEF.Context;
using BowlingLib.Model;
using BowlingMaping;
using Business;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BowlingApp
{
public class JOuerEFtest
{
static void bobo(string[] args)
{
Joueur j = new Joueur("ps1");
Joueur j1 = new Joueur("ps2");
Joueur j3 = new Joueur("ps3");
IDataManager<Joueur> joueurDataManager = new JoueurDbDataManager();
IDataManager<Equipe> equipeDataManager = new EquipeDbDataManager();
IDataManager<Partie> partieDataManager = new PartieDbDataManager();
Manager manager = new Manager(equipeDataManager,partieDataManager, joueurDataManager);
Partie p = new Partie(j);
for(int i = 0; i < 10; i++)
{
Frame frame=new Frame(i+1);
Console.WriteLine("Entrer les quilles tombés");
frame.Lancer1 = new Lancer(int.Parse(Console.ReadLine()));
Console.WriteLine("Entrer les quilles tombés");
frame.Lancer2 = new Lancer(int.Parse(Console.ReadLine()));
p.AddFrame(frame);
}
manager.AddPartie(p);
}
}
}

@ -9,25 +9,30 @@ using System.Threading.Tasks;
namespace BowlingApp
{
public class Match
public static class Match
{
public static void JeuxEnEquipe(Saissiseur saissiseur,Afficheur afficheur)
#region Méthodes
/// <summary>
/// Match en Equipe
/// </summary>
/// <param name="saissiseur"></param>
public static void JeuxEnEquipe(Saissiseur saissiseur)
{
afficheur.InviteNrb("Equipe");
Afficheur.InviteNrb("Equipe");
int nbrE = saissiseur.CollecteNbr();
afficheur.InviteNrb("Joueur par Equipe");
Afficheur.InviteNrb("Joueur par Equipe");
int nbrJ = saissiseur.CollecteNbr();
List<Equipe> equipes = new List<Equipe>();
for (int i = 0; i < nbrE; i++)
{
afficheur.InviteNom($"Equipe {i+1}");//Recuperer le nom de l'equipe
Afficheur.InviteNom($"Equipe {i+1}");//Recuperer le nom de l'equipe
string Nom = saissiseur.CollecteNom();
Equipe equipe = new Equipe(Nom);
for (int j = 0; j < nbrJ; j++)
{
Console.WriteLine($"Equipe {i + 1}");
afficheur.InviteNom($"Joueur {j + 1}"); //Recuperer le nom des joueur de chaque Equipe
Afficheur.InviteNom($"Joueur {j + 1}"); //Recuperer le nom des joueur de chaque Equipe
string nomJoueur = saissiseur.CollecteNom();
Joueur joueur = new Joueur(nomJoueur);
equipe.AjouterJoueur(joueur);
@ -44,19 +49,24 @@ namespace BowlingApp
Manager manager = new Manager(new EquipeDbDataManager(), new PartieDbDataManager(), new JoueurDbDataManager());
manager.AddJoueur(joueur);
equipes.ForEach(item => manager.AddEquipe(item));
Lancer(partie, saissiseur, afficheur);
Lancer(partie, saissiseur);
manager.AddPartie(partie);
}
}
}
public static void JeuIndividuel(Saissiseur saissiseur, Afficheur afficheur)
/// <summary>
/// Match en Individuel
/// </summary>
/// <param name="saissiseur"></param>
public static void JeuIndividuel(Saissiseur saissiseur)
{
afficheur.InviteNrb("Joueur");
Afficheur.InviteNrb("Joueur");
int nbrj = saissiseur.CollecteNbr();
List<Joueur> joueurs = new List<Joueur>();
for (int j = 0; j < nbrj; j++)
{
afficheur.InviteNom($"Joueur {j + 1}");
Afficheur.InviteNom($"Joueur {j + 1}");
string nomJoueur = saissiseur.CollecteNom();
Joueur joueur = new Joueur(nomJoueur);
joueurs.Add(joueur);
@ -68,7 +78,7 @@ namespace BowlingApp
Manager manager = new Manager(new EquipeDbDataManager(), new PartieDbDataManager(), new JoueurDbDataManager());
manager.AddJoueur(joueur);
joueurs.ForEach(item => manager.AddJoueur(item));
Lancer(partie, saissiseur, afficheur);
Lancer(partie, saissiseur);
manager.AddPartie(partie);
@ -79,31 +89,41 @@ namespace BowlingApp
}
public static void JeuSolo(Saissiseur saissiseur, Afficheur afficheur)
/// <summary>
/// Match en Solo
/// </summary>
/// <param name="saissiseur"></param>
public static void JeuSolo(Saissiseur saissiseur)
{
afficheur.InviteNom("Joueur");
Afficheur.InviteNom("Joueur");
string Nom = saissiseur.CollecteNom();
Joueur joueur = new Joueur(Nom);
Partie partie = new Partie(joueur);
Manager manager = new Manager(new EquipeDbDataManager(), new PartieDbDataManager(), new JoueurDbDataManager());
manager.AddJoueur(joueur);
Lancer(partie, saissiseur, afficheur);
Lancer(partie, saissiseur);
manager.AddPartie(partie);
}
private static void Lancer(Partie partie,Saissiseur saissiseur,Afficheur afficheur)
/// <summary>
/// Faire des lancers
/// </summary>
/// <param name="partie"></param>
/// <param name="saissiseur"></param>
private static void Lancer(Partie partie,Saissiseur saissiseur)
{
for (int i = 0; i < 10; i++)
{
afficheur.AfficheNumFrame(i + 1);
Afficheur.AfficheNumFrame(i + 1);
Frame frame = new Frame(i + 1);
afficheur.InviteQuilleTombe(1);
Afficheur.InviteQuilleTombe(1);
frame.Lancer1 = new Lancer(saissiseur.CollectQuilleTomber());
afficheur.InviteQuilleTombe(2);
Afficheur.InviteQuilleTombe(2);
frame.Lancer2 = new Lancer(saissiseur.CollectQuilleTomber());
partie.AddFrame(frame);
}
}
#endregion
}
}

@ -6,27 +6,30 @@ using System;
namespace HelloWorldApp
{
class Program
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
/// <param name="args"></param>
static void Main(string[] args)
{
int choix=0;
while (choix <= 3)
{
Afficheur afficheur = new Afficheur();
Saissiseur saissiseur = new Saissiseur();
afficheur.AfficherMenu();
Afficheur.AfficherMenu();
choix = saissiseur.CollecterReponseMenu();
switch (choix)
{
case 1:
Match.JeuSolo(saissiseur, afficheur);
Match.JeuSolo(saissiseur);
break;
case 2:
Match.JeuIndividuel(saissiseur, afficheur);
Match.JeuIndividuel(saissiseur);
break;
case 3:
Match.JeuxEnEquipe(saissiseur, afficheur);
Match.JeuxEnEquipe(saissiseur);
break;
}
}

@ -6,9 +6,16 @@ using System.Threading.Tasks;
namespace BowlingApp
{
/// <summary>
/// Classe pour gerer la saisie
/// </summary>
public class Saissiseur
{
#region Méthodes
/// <summary>
/// Récuperer le choix de l'utilisateur
/// </summary>
/// <returns></returns>
public int CollecterReponseMenu()
{
while (true)
@ -18,25 +25,37 @@ namespace BowlingApp
int retour = int.Parse(Console.ReadLine());
return retour;
}
catch (Exception e)
catch (Exception)
{
Afficheur.AfficherErreur("de Saisie veuillez recommencer");
}
}
}
/// <summary>
/// Recupérer le nom
/// </summary>
/// <returns></returns>
public string CollecteNom()
{
string nom = Console.ReadLine();
return nom;
}
/// <summary>
/// Recupérer le nombre
/// </summary>
/// <returns></returns>
public int CollecteNbr()
{
return CollectQuilleTomber();
}
/// <summary>
/// Récuperer le nombre de qulles tombé
/// </summary>
/// <returns></returns>
public int CollectQuilleTomber()
{
while (true)
@ -46,11 +65,12 @@ namespace BowlingApp
int nbr = int.Parse(Console.ReadLine());
return nbr;
}
catch (Exception e)
catch (Exception)
{
Afficheur.AfficherErreur("de Saisie veuillez recommencer");
}
}
}
}
#endregion
}
}

@ -8,6 +8,9 @@ using System.Threading.Tasks;
namespace BowlingEF.Context
{
/// <summary>
/// Cette classe est le contexte de la base de données qui permet de faire le lien entre les objets et la base de données
/// </summary>
public class BowlingContext : DbContext
{
public DbSet<JoueurEntity> Joueurs { get; set; }

@ -11,12 +11,17 @@ namespace BowlingEF.Entities
/// </summary>
public class EquipeEntity
{
#region Propriétés
public long Id { get; set; }
public string Nom { get; set; }
public ICollection<JoueurEntity> Joueurs { get; set; }
#endregion
#region Constructeurs
public EquipeEntity()
{
Joueurs = new List<JoueurEntity>();
}
#endregion
}
}

@ -8,6 +8,7 @@ namespace BowlingEF.Entities
/// </summary>
public class FrameEntity
{
#region Properties
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public long Id { get; set; }
@ -27,5 +28,6 @@ namespace BowlingEF.Entities
[Required]
public long PartieId { get; set; }
public PartieEntity Partie { get; set; }
#endregion
}
}

@ -8,11 +8,13 @@ namespace BowlingEF.Entities
/// </summary>
public class JoueurEntity
{
#region Properties
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public long Id { get; set; }
[Required]
public string Pseudo { get; set; }
#endregion
}
}

@ -13,6 +13,7 @@ namespace BowlingEF.Entities
/// </summary>
public class PartieEntity
{
#region Properties
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public long Id { get; set; }
@ -26,10 +27,13 @@ namespace BowlingEF.Entities
public ICollection<FrameEntity> Frames { get; set; }
[Required]
public int? Score { get; set; }
#endregion
#region Constructors
public PartieEntity()
{
Frames = new List<FrameEntity>();
}
#endregion
}
}

@ -13,32 +13,16 @@ namespace BowlingLib.Model
/// </summary>
public class Equipe
{
#region Propiéters
public string Nom { get; private set; }
public long Id { get; private set; }
public ReadOnlyCollection<Joueur> Joueurs { get; private set; }
public ReadOnlyCollection<Joueur> Joueurs { get; private set; }
private List<Joueur> joueurs = new List<Joueur>();
/* public string Nom
{
get { return nom; }
set { nom = value; }
}
*/
/* public Equipe(string nom, params Joueur[] joueurs)
{
this.Nom = nom;
AjouterJoueurs(joueurs);
// foreach (Joueur nouv in joueurs) AjouterJoueur(nouv);
}*/
private readonly List<Joueur> joueurs = new List<Joueur>();
#endregion
#region Construteurs
public Equipe(string nom)
{
@ -48,15 +32,18 @@ namespace BowlingLib.Model
public Equipe(long id, string nom, params Joueur[] joueurs)
{
Id = id;
// Joueurs = joueurs;
Nom = nom;
Joueurs = new ReadOnlyCollection<Joueur>(this.joueurs);
Joueurs = new ReadOnlyCollection<Joueur>(this.joueurs);
AjouterJoueurs(joueurs);
}
public Equipe(string nom, params Joueur[] joueurs)
: this(0, nom, joueurs) {}
#endregion
#region Méthodes
/// <summary>
/// Ajoute une liste de joueur à l'équipe
/// </summary>
@ -85,7 +72,7 @@ namespace BowlingLib.Model
public bool AjouterJoueur(Joueur joueur)
{
if (!isExist(joueur))
if (!IsExist(joueur))
{
joueurs.Add(joueur);
return true;
@ -110,10 +97,6 @@ namespace BowlingLib.Model
/// retourner la liste non modifiable des joueurs de l'équipe
/// </summary>
/// <returns></returns>
/* public List<Joueur> GetJoueurs()
{
return Joueurs;
}*/
/// <summary>
@ -121,12 +104,13 @@ namespace BowlingLib.Model
/// </summary>
/// <param name="nouvJoueur"></param>
/// <returns></returns>
public bool isExist(Joueur nouvJoueur)
public bool IsExist(Joueur nouvJoueur)
{
if (joueurs.Contains(nouvJoueur))
return true;
return false;
}
#endregion
}
}

@ -11,22 +11,30 @@ namespace BowlingLib.Model
/// </summary>
public class Joueur : IEquatable<Joueur>
{
#region Propriétés
private string pseudo;
private readonly long id;
public long Id
{
get { return id; }
}
#endregion
#region Constructeurs
public Joueur(string pseudo)
{
this.Pseudo = pseudo;
}
public Joueur(long id,string pseudo) : this(pseudo)
public Joueur(long id, string pseudo) : this(pseudo)
{
this.id = id;
}
#endregion
#region Accesseurs
public long Id
{
get { return id; }
}
public string Pseudo
{
@ -41,12 +49,15 @@ namespace BowlingLib.Model
}
}
}
#endregion
public bool Equals(Joueur other)
{
#region Méthodes
public bool Equals(Joueur other)
{
return Pseudo.Equals(other.Pseudo);
}
public void setNom(string nom)
{
Pseudo = nom;
@ -64,9 +75,7 @@ namespace BowlingLib.Model
{
return Pseudo.GetHashCode();
}
/* public override int GetHashCode()
{
return HashCode.Combine(id, Id, Pseudo);
}*/
#endregion
}
}

@ -12,16 +12,22 @@ namespace BowlingLib.Model
/// </summary>
public class Partie
{
#region Propriétés
public ReadOnlyCollection<Frame> Frames { get; }
public Joueur Joueur { get; private set; }
private readonly long id;
private DateTime date;
private int? score = 0;
private readonly List<Frame> frames = new();
#endregion
#region Encapsulation
public int? Score {
get
{
return GetScore();
}
private set { }
private set { score = value; }
}
public DateTime Date
{
@ -29,8 +35,9 @@ namespace BowlingLib.Model
private set { date = value; }
}
public long Id => id;
#endregion
private readonly List<Frame> frames=new();
#region Constructeurs
/// <summary>
/// Constructeur
@ -50,7 +57,10 @@ namespace BowlingLib.Model
this.date = date;
this.Score = score;
}
#endregion
#region Méthodes
/// <summary>
/// Ajoute un frame à la partie
/// </summary>
@ -67,7 +77,6 @@ namespace BowlingLib.Model
/// <returns>le Score d'une partie</returns>
public int? GetScore()
{
int? score = 0;
for (int i = 0; i < Frames.Count; i++)
{
score += Frames[i].QuillesTombees;
@ -86,5 +95,6 @@ namespace BowlingLib.Model
}
return score;
}
#endregion
}
}

@ -13,6 +13,7 @@ namespace BowlingMaping
{
public class EquipeDbDataManager : IDataManager<Equipe>
{
#region Méthodes
public bool Add(Equipe _equipe)
{
bool result = false;
@ -88,5 +89,6 @@ namespace BowlingMaping
}
return result;
}
#endregion
}
}

@ -10,8 +10,12 @@ using System.Threading.Tasks;
namespace BowlingMaping
{
/// <summary>
/// Classe de gestion des données des joueurs
/// </summary>
public class JoueurDbDataManager : IDataManager<Joueur>
{
#region Méthodes
/// <summary>
/// Ajoute un joueur à la liste des joueurs
/// </summary>
@ -105,6 +109,7 @@ namespace BowlingMaping
}
return result;
}
#endregion
}
}

@ -10,9 +10,12 @@ using System.Threading.Tasks;
namespace BowlingMaping
{
/// <summary>
/// Classe de gestion des données des parties
/// </summary>
public class PartieDbDataManager : IPartieDbDataManager
{
#region Méthodes
/// <summary>
/// Ajoute une partie Dans la base de données
/// </summary>
@ -119,7 +122,11 @@ namespace BowlingMaping
return result;
}
/// <summary>
/// Retourne les parties à une date donnée
/// </summary>
/// <param name="date"></param>
/// <returns></returns>
public IEnumerable<Partie> GetAllWithDate(DateTime date)
{
List<Partie> result = new List<Partie>();
@ -142,6 +149,7 @@ namespace BowlingMaping
}
return result;
}
#endregion
}
}

@ -35,7 +35,7 @@ namespace BowlingStub
return listJoueurs;
}
//n represente le nbr de joueurs a creer dans la liste
public IEnumerable<Joueur> GetAll(int n = 10)
public IEnumerable<Joueur> GetAllJoueur(int n = 10)
{
for (int i = 0; i < n; i++)
{

@ -32,7 +32,7 @@ namespace BowlingStub
return listParties;
}
public IEnumerable<Partie> GetAll(int n=10, int j=0)
public IEnumerable<Partie> GetAllPartie(int n=10, int j=0)
{
for (int i = 0; i < n; i++)
{

@ -7,6 +7,10 @@ using System.Threading.Tasks;
namespace Business
{
/// <summary>
/// Interface d'abstraction pour les donné
/// </summary>
/// <typeparam name="Data"></typeparam>
public interface IDataManager<Data>
{
bool Add(Data data);

@ -7,6 +7,9 @@ using System.Threading.Tasks;
namespace Business
{
/// <summary>
/// Classe d'abstraction pour les données de la partie
/// </summary>
public interface IPartieDbDataManager : IDataManager<Partie>
{
IEnumerable<Partie> GetAllWithDate(DateTime date);

@ -8,8 +8,12 @@ using System.Threading.Tasks;
namespace Business
{
/// <summary>
/// Classe pour gerer le jeux
/// </summary>
public class Manager
{
#region propriétés
public ReadOnlyCollection<Partie> Parties { get; private set; }
private readonly List<Partie> parties = new();
public ReadOnlyCollection<Equipe> Equipes { get; private set; }
@ -24,6 +28,9 @@ namespace Business
private readonly IDataManager<Partie> partieDataManager;
public IDataManager<Equipe> EquipeDataManager => equipeDataManager;
private readonly IDataManager<Equipe> equipeDataManager;
#endregion
#region Constructeurs
public Manager(IDataManager<Joueur> joueurManager)
{
@ -54,6 +61,9 @@ namespace Business
this.joueurDataManager = joueurManager;
Joueurs = new ReadOnlyCollection<Joueur>(joueurs);
}
#endregion
#region Methodes
/// <summary>
/// Ajoute un joueur à la liste des joueurs
@ -201,6 +211,7 @@ namespace Business
{
return equipeDataManager.GetAll();
}
#endregion
}
}

@ -17,7 +17,7 @@ namespace BowlingAppUnitTest
{
//Arrange
StubPartie stubPartie = new StubPartie();
IEnumerable<Partie> listParties = stubPartie.GetAll(1);
IEnumerable<Partie> listParties = stubPartie.GetAllPartie(1);
Partie partie = listParties.ElementAt(0);
partie.AddFrame(new Frame(1));
partie.AddFrame(new Frame(2));
@ -51,7 +51,7 @@ namespace BowlingAppUnitTest
{
//Arrange
StubPartie stubPartie = new StubPartie();
IEnumerable<Partie> listParties = stubPartie.GetAll(1);
IEnumerable<Partie> listParties = stubPartie.GetAllPartie(1);
Partie partie = listParties.ElementAt(0);
partie.AddFrame(new Frame(1));
partie.AddFrame(new Frame(2));
@ -90,7 +90,7 @@ namespace BowlingAppUnitTest
{
//Arrange
StubPartie stubPartie = new StubPartie();
IEnumerable<Partie> listParties = stubPartie.GetAll(1);
IEnumerable<Partie> listParties = stubPartie.GetAllPartie(1);
Partie partie = listParties.ElementAt(0);
partie.AddFrame(new Frame(1));
partie.AddFrame(new Frame(2));
@ -135,7 +135,7 @@ namespace BowlingAppUnitTest
{
//Arrange
StubPartie stubPartie = new StubPartie();
IEnumerable<Partie> listParties = stubPartie.GetAll(1);
IEnumerable<Partie> listParties = stubPartie.GetAllPartie(1);
Partie partie = listParties.ElementAt(0);
partie.AddFrame(new Frame(1));
partie.AddFrame(new Frame(2));
@ -169,7 +169,7 @@ namespace BowlingAppUnitTest
{
//Arrange
StubPartie stubPartie = new StubPartie();
IEnumerable<Partie> listParties = stubPartie.GetAll(1);
IEnumerable<Partie> listParties = stubPartie.GetAllPartie(1);
Partie partie = listParties.ElementAt(0);
partie.AddFrame(new Frame(1));
partie.AddFrame(new Frame(2));
@ -213,7 +213,7 @@ namespace BowlingAppUnitTest
{
//Arrange
StubPartie stubPartie = new StubPartie();
IEnumerable<Partie> listParties = stubPartie.GetAll(1);
IEnumerable<Partie> listParties = stubPartie.GetAllPartie(1);
Partie partie = listParties.ElementAt(0);
partie.AddFrame(new Frame(1));
partie.AddFrame(new Frame(2));
@ -257,7 +257,7 @@ namespace BowlingAppUnitTest
{
//Arrange
StubPartie stubPartie = new StubPartie();
IEnumerable<Partie> listParties = stubPartie.GetAll(1);
IEnumerable<Partie> listParties = stubPartie.GetAllPartie(1);
Partie partie = listParties.ElementAt(0);
partie.AddFrame(new Frame(1));
@ -275,7 +275,7 @@ namespace BowlingAppUnitTest
{
//Arrange
StubPartie stubPartie = new StubPartie();
IEnumerable<Partie> listParties = stubPartie.GetAll(1);
IEnumerable<Partie> listParties = stubPartie.GetAllPartie(1);
Partie partie = listParties.ElementAt(0);
partie.AddFrame(new Frame(1));
partie.Frames[0].Lancer(5);

@ -77,7 +77,7 @@ namespace Test.BowlingAppUnitTest
public void TestJoueurStub()
{
StubJoueur stub = new StubJoueur();
Assert.Equal(10, stub.GetAll(10).Count());
Assert.Equal(10, stub.GetAllJoueur(10).Count());
}

Loading…
Cancel
Save