Commande dotnet format
This commit is contained in:
@@ -5,6 +5,7 @@
|
|||||||
namespace Webzine.EntitiesContext
|
namespace Webzine.EntitiesContext
|
||||||
{
|
{
|
||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
|
||||||
using Webzine.Entity;
|
using Webzine.Entity;
|
||||||
|
|
||||||
public class WebzineDbContext : DbContext
|
public class WebzineDbContext : DbContext
|
||||||
@@ -14,7 +15,9 @@ namespace Webzine.EntitiesContext
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="options">Options.</param>
|
/// <param name="options">Options.</param>
|
||||||
public WebzineDbContext(DbContextOptions<WebzineDbContext> options)
|
public WebzineDbContext(DbContextOptions<WebzineDbContext> options)
|
||||||
: base(options) { }
|
: base(options)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets Obtient les artistes de la base.
|
/// Gets Obtient les artistes de la base.
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ namespace Webzine.Entity.Tests
|
|||||||
using System;
|
using System;
|
||||||
using System.ComponentModel.DataAnnotations;
|
using System.ComponentModel.DataAnnotations;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
|
||||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -13,8 +14,8 @@ namespace Webzine.Entity.Tests
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Vérifie que l'entité possède bien la propriété passée en paramètre.
|
/// Vérifie que l'entité possède bien la propriété passée en paramètre.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="typeObjet">type de l'entité</param>
|
/// <param name="typeObjet">type de l'entité.</param>
|
||||||
/// <param name="nomPropriete">nom de la propriété de l'entité</param>
|
/// <param name="nomPropriete">nom de la propriété de l'entité.</param>
|
||||||
public static void HasProperty(Type typeObjet, string nomPropriete)
|
public static void HasProperty(Type typeObjet, string nomPropriete)
|
||||||
{
|
{
|
||||||
var property = typeObjet.GetProperty(nomPropriete);
|
var property = typeObjet.GetProperty(nomPropriete);
|
||||||
@@ -24,9 +25,9 @@ namespace Webzine.Entity.Tests
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Vérifie que l'attribut de l'entité a l'annotation [Display(Name = "xxx")] avec la valeur attendue.
|
/// Vérifie que l'attribut de l'entité a l'annotation [Display(Name = "xxx")] avec la valeur attendue.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="typeObjet">type de l'entité</param>
|
/// <param name="typeObjet">type de l'entité.</param>
|
||||||
/// <param name="nomPropriete">nom de la propriété de l'entité</param>
|
/// <param name="nomPropriete">nom de la propriété de l'entité.</param>
|
||||||
/// <param name="chaineAttendue">valeur attendue pour l'affichage de cette propriété</param>
|
/// <param name="chaineAttendue">valeur attendue pour l'affichage de cette propriété.</param>
|
||||||
public static void AttributDisplay(Type typeObjet, string nomPropriete, string chaineAttendue)
|
public static void AttributDisplay(Type typeObjet, string nomPropriete, string chaineAttendue)
|
||||||
{
|
{
|
||||||
var property = typeObjet.GetProperty(nomPropriete);
|
var property = typeObjet.GetProperty(nomPropriete);
|
||||||
@@ -38,9 +39,9 @@ namespace Webzine.Entity.Tests
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Vérifie que l'attribut de l'entité a l'annotation [MinLength(xx)] avec la longueur attendue.
|
/// Vérifie que l'attribut de l'entité a l'annotation [MinLength(xx)] avec la longueur attendue.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="typeObjet">type de l'entité</param>
|
/// <param name="typeObjet">type de l'entité.</param>
|
||||||
/// <param name="nomPropriete">nom de la propriété de l'entité</param>
|
/// <param name="nomPropriete">nom de la propriété de l'entité.</param>
|
||||||
/// <param name="max">longueur maximum</param>
|
/// <param name="max">longueur maximum.</param>
|
||||||
public static void AttributLongueurMax(Type typeObjet, string nomPropriete, int max)
|
public static void AttributLongueurMax(Type typeObjet, string nomPropriete, int max)
|
||||||
{
|
{
|
||||||
var property = typeObjet.GetProperty(nomPropriete);
|
var property = typeObjet.GetProperty(nomPropriete);
|
||||||
@@ -52,9 +53,9 @@ namespace Webzine.Entity.Tests
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Vérifie que l'attribut de l'entité a l'annotation [MinLength(xx)] avec la longueur attendue.
|
/// Vérifie que l'attribut de l'entité a l'annotation [MinLength(xx)] avec la longueur attendue.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="typeObjet">type de l'entité</param>
|
/// <param name="typeObjet">type de l'entité.</param>
|
||||||
/// <param name="nomPropriete">nom de la propriété de l'entité</param>
|
/// <param name="nomPropriete">nom de la propriété de l'entité.</param>
|
||||||
/// <param name="min">longueur minimum</param>
|
/// <param name="min">longueur minimum.</param>
|
||||||
public static void AttributLongueurMin(Type typeObjet, string nomPropriete, int min)
|
public static void AttributLongueurMin(Type typeObjet, string nomPropriete, int min)
|
||||||
{
|
{
|
||||||
var property = typeObjet.GetProperty(nomPropriete);
|
var property = typeObjet.GetProperty(nomPropriete);
|
||||||
@@ -66,8 +67,8 @@ namespace Webzine.Entity.Tests
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Vérifie que l'attribut de l'entité a l'annotation [Required].
|
/// Vérifie que l'attribut de l'entité a l'annotation [Required].
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="typeObjet">type de l'entité</param>
|
/// <param name="typeObjet">type de l'entité.</param>
|
||||||
/// <param name="nomPropriete">nom de la propriété de l'entité</param>
|
/// <param name="nomPropriete">nom de la propriété de l'entité.</param>
|
||||||
public static void AttributRequis(Type typeObjet, string nomPropriete)
|
public static void AttributRequis(Type typeObjet, string nomPropriete)
|
||||||
{
|
{
|
||||||
var property = typeObjet.GetProperty(nomPropriete);
|
var property = typeObjet.GetProperty(nomPropriete);
|
||||||
@@ -78,8 +79,8 @@ namespace Webzine.Entity.Tests
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Vérifie que l'attribut de l'entité n'a pas l'annotation [Url].
|
/// Vérifie que l'attribut de l'entité n'a pas l'annotation [Url].
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="typeObjet">type de l'entité</param>
|
/// <param name="typeObjet">type de l'entité.</param>
|
||||||
/// <param name="nomPropriete">nom de la propriété de l'entité</param>
|
/// <param name="nomPropriete">nom de la propriété de l'entité.</param>
|
||||||
public static void AttributHasNotUrlValidation(Type typeObjet, string nomPropriete)
|
public static void AttributHasNotUrlValidation(Type typeObjet, string nomPropriete)
|
||||||
{
|
{
|
||||||
var property = typeObjet.GetProperty(nomPropriete);
|
var property = typeObjet.GetProperty(nomPropriete);
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
using System.ComponentModel.DataAnnotations;
|
namespace Webzine.Entity
|
||||||
|
|
||||||
namespace Webzine.Entity
|
|
||||||
{
|
{
|
||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Classe représentant un artiste.
|
/// Classe représentant un artiste.
|
||||||
/// Lien avec l'entité <see cref="Titre"/> : un artiste peut avoir plusieurs titres, mais un titre n'a qu'un seul artiste.
|
/// Lien avec l'entité <see cref="Titre"/> : un artiste peut avoir plusieurs titres, mais un titre n'a qu'un seul artiste.
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
using System.ComponentModel.DataAnnotations;
|
namespace Webzine.Entity
|
||||||
|
|
||||||
namespace Webzine.Entity
|
|
||||||
{
|
{
|
||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Classe représentant un commentaire laissé par un utilisateur sur un titre.
|
/// Classe représentant un commentaire laissé par un utilisateur sur un titre.
|
||||||
/// Lien avec l'entité <see cref="Titre"/> : un titre peut avoir plusieurs commentaires, mais un commentaire n'a qu'un seul titre.
|
/// Lien avec l'entité <see cref="Titre"/> : un titre peut avoir plusieurs commentaires, mais un commentaire n'a qu'un seul titre.
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
using Bogus;
|
namespace Webzine.Entity.Fixtures
|
||||||
|
|
||||||
namespace Webzine.Entity.Fixtures
|
|
||||||
{
|
{
|
||||||
|
using Bogus;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Factory pour générer des artistes avec des titres associés, à l'aide de la bibliothèque Bogus.
|
/// Factory pour générer des artistes avec des titres associés, à l'aide de la bibliothèque Bogus.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -18,7 +18,7 @@ namespace Webzine.Entity.Fixtures
|
|||||||
var albumsData = new[]
|
var albumsData = new[]
|
||||||
{
|
{
|
||||||
new { Nom = "Bohemian Rhapsody", Image = "https://upload.wikimedia.org/wikipedia/en/9/9f/Bohemian_Rhapsody.png" },
|
new { Nom = "Bohemian Rhapsody", Image = "https://upload.wikimedia.org/wikipedia/en/9/9f/Bohemian_Rhapsody.png" },
|
||||||
new { Nom = "Born This Way", Image = "https://static.wikia.nocookie.net/ladygaga/images/2/2d/BornThisWay-DeluxeEdition.jpg/revision/latest/scale-to-width-down/3500?cb=20111120030308" }
|
new { Nom = "Born This Way", Image = "https://static.wikia.nocookie.net/ladygaga/images/2/2d/BornThisWay-DeluxeEdition.jpg/revision/latest/scale-to-width-down/3500?cb=20111120030308" },
|
||||||
};
|
};
|
||||||
|
|
||||||
var faker = new Bogus.Faker("fr");
|
var faker = new Bogus.Faker("fr");
|
||||||
|
|||||||
@@ -2,12 +2,11 @@
|
|||||||
// Copyright (c) PlaceholderCompany. All rights reserved.
|
// Copyright (c) PlaceholderCompany. All rights reserved.
|
||||||
// </copyright>
|
// </copyright>
|
||||||
|
|
||||||
using Bogus;
|
|
||||||
|
|
||||||
namespace Webzine.Entity.Fixtures
|
namespace Webzine.Entity.Fixtures
|
||||||
{
|
{
|
||||||
|
using Bogus;
|
||||||
|
|
||||||
public class CommentaireFactory
|
public class CommentaireFactory
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,11 +1,13 @@
|
|||||||
namespace Webzine.Entity.Fixtures;
|
namespace Webzine.Entity.Fixtures;
|
||||||
|
|
||||||
using Entity;
|
|
||||||
using Faker;
|
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
|
||||||
|
using Entity;
|
||||||
|
|
||||||
|
using Faker;
|
||||||
|
|
||||||
public class DataFactory
|
public class DataFactory
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -14,54 +16,69 @@ public class DataFactory
|
|||||||
public Dictionary<string, (string TrackUrl, string ImageUrl)> RealMusicData { get; set; }
|
public Dictionary<string, (string TrackUrl, string ImageUrl)> RealMusicData { get; set; }
|
||||||
= new Dictionary<string, (string TrackUrl, string ImageUrl)>
|
= new Dictionary<string, (string TrackUrl, string ImageUrl)>
|
||||||
{
|
{
|
||||||
{ "juliana_chahayed_1", ("https://open.spotify.com/intl-fr/track/0qYLUdJQMhrCFA9dNZGcnm?si=b4fd45727a354a31",
|
{
|
||||||
"https://i.scdn.co/image/ab67616d0000b2738e8e7b8f8f8f8f8f8f8f8f8") },
|
"juliana_chahayed_1", ("https://open.spotify.com/intl-fr/track/0qYLUdJQMhrCFA9dNZGcnm?si=b4fd45727a354a31",
|
||||||
|
"https://i.scdn.co/image/ab67616d0000b2738e8e7b8f8f8f8f8f8f8f8f8")
|
||||||
{ "mister_v_1", ("https://youtu.be/JeqUw7sGUK8?si=FnmFR2EgkVY6MhqQ",
|
},
|
||||||
"https://img.youtube.com/vi/JeqUw7sGUK8/maxresdefault.jpg") },
|
{
|
||||||
|
"mister_v_1", ("https://youtu.be/JeqUw7sGUK8?si=FnmFR2EgkVY6MhqQ",
|
||||||
{ "compagnie_creole_1", ("https://youtu.be/wfxt1SGWAI8",
|
"https://img.youtube.com/vi/JeqUw7sGUK8/maxresdefault.jpg")
|
||||||
"https://img.youtube.com/vi/wfxt1SGWAI8/maxresdefault.jpg") },
|
},
|
||||||
|
{
|
||||||
{ "femto_1", ("https://open.spotify.com/intl-fr/track/0qYLUdJQMhrCFA9dNZGcnm?si=b4fd45727a354a31",
|
"compagnie_creole_1", ("https://youtu.be/wfxt1SGWAI8",
|
||||||
"https://i.scdn.co/image/ab67616d0000b2738e8e7b8f8f8f8f8f8f8f8f8") },
|
"https://img.youtube.com/vi/wfxt1SGWAI8/maxresdefault.jpg")
|
||||||
|
},
|
||||||
{ "chat_noir_1", ("https://youtu.be/OTi4-q-_Tj0?si=SNnLd-6Y893nL5Au",
|
{
|
||||||
"https://img.youtube.com/vi/OTi4-q-_Tj0/maxresdefault.jpg") },
|
"femto_1", ("https://open.spotify.com/intl-fr/track/0qYLUdJQMhrCFA9dNZGcnm?si=b4fd45727a354a31",
|
||||||
|
"https://i.scdn.co/image/ab67616d0000b2738e8e7b8f8f8f8f8f8f8f8f8")
|
||||||
{ "chat_noir_2", ("https://youtu.be/X-rJ01EyiAI?si=gH9m_U8oXI35OgWu",
|
},
|
||||||
"https://img.youtube.com/vi/X-rJ01EyiAI/maxresdefault.jpg") },
|
{
|
||||||
|
"chat_noir_1", ("https://youtu.be/OTi4-q-_Tj0?si=SNnLd-6Y893nL5Au",
|
||||||
{ "chat_noir_3", ("https://youtu.be/7lIM0wSx7kQ?si=S-RAsLzd4SiCQhE4",
|
"https://img.youtube.com/vi/OTi4-q-_Tj0/maxresdefault.jpg")
|
||||||
"https://img.youtube.com/vi/7lIM0wSx7kQ/maxresdefault.jpg") },
|
},
|
||||||
|
{
|
||||||
{ "chat_noir_4", ("https://youtu.be/dbxyKR1P8vA?si=aRzdYBhwvKptV8Ff",
|
"chat_noir_2", ("https://youtu.be/X-rJ01EyiAI?si=gH9m_U8oXI35OgWu",
|
||||||
"https://img.youtube.com/vi/dbxyKR1P8vA/maxresdefault.jpg") },
|
"https://img.youtube.com/vi/X-rJ01EyiAI/maxresdefault.jpg")
|
||||||
|
},
|
||||||
{ "chat_noir_5", ("https://youtu.be/DDHvKo5NnII?si=NFRkdVQL2mELP0yn",
|
{
|
||||||
"https://img.youtube.com/vi/DDHvKo5NnII/maxresdefault.jpg") },
|
"chat_noir_3", ("https://youtu.be/7lIM0wSx7kQ?si=S-RAsLzd4SiCQhE4",
|
||||||
|
"https://img.youtube.com/vi/7lIM0wSx7kQ/maxresdefault.jpg")
|
||||||
{ "chat_noir_6", ("https://youtu.be/J9LgHNf2Qy0?si=YGO1ggiLkefa9901",
|
},
|
||||||
"https://img.youtube.com/vi/J9LgHNf2Qy0/maxresdefault.jpg") },
|
{
|
||||||
|
"chat_noir_4", ("https://youtu.be/dbxyKR1P8vA?si=aRzdYBhwvKptV8Ff",
|
||||||
{ "chat_noir_7", ("https://youtu.be/oadhHk2xs6c?si=mbnJCA6SGsoYXnUK",
|
"https://img.youtube.com/vi/dbxyKR1P8vA/maxresdefault.jpg")
|
||||||
"https://img.youtube.com/vi/oadhHk2xs6c/maxresdefault.jpg") },
|
},
|
||||||
|
{
|
||||||
{ "chat_noir_8", ("https://youtu.be/6K1zCgkBaoE?si=quq9vQLJ-AmzjRJJ",
|
"chat_noir_5", ("https://youtu.be/DDHvKo5NnII?si=NFRkdVQL2mELP0yn",
|
||||||
"https://img.youtube.com/vi/6K1zCgkBaoE/maxresdefault.jpg") },
|
"https://img.youtube.com/vi/DDHvKo5NnII/maxresdefault.jpg")
|
||||||
|
},
|
||||||
{ "german_rapper_1", ("https://www.youtube.com/watch?v=DWpg71HJt24",
|
{
|
||||||
"https://img.youtube.com/vi/DWpg71HJt24/maxresdefault.jpg") },
|
"chat_noir_6", ("https://youtu.be/J9LgHNf2Qy0?si=YGO1ggiLkefa9901",
|
||||||
|
"https://img.youtube.com/vi/J9LgHNf2Qy0/maxresdefault.jpg")
|
||||||
{ "nizard_1", ("https://youtu.be/1fjA68k8DAU?si=2PuZSquVQGvfmQkZ",
|
},
|
||||||
"https://img.youtube.com/vi/1fjA68k8DAU/maxresdefault.jpg") },
|
{
|
||||||
|
"chat_noir_7", ("https://youtu.be/oadhHk2xs6c?si=mbnJCA6SGsoYXnUK",
|
||||||
|
"https://img.youtube.com/vi/oadhHk2xs6c/maxresdefault.jpg")
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"chat_noir_8", ("https://youtu.be/6K1zCgkBaoE?si=quq9vQLJ-AmzjRJJ",
|
||||||
|
"https://img.youtube.com/vi/6K1zCgkBaoE/maxresdefault.jpg")
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"german_rapper_1", ("https://www.youtube.com/watch?v=DWpg71HJt24",
|
||||||
|
"https://img.youtube.com/vi/DWpg71HJt24/maxresdefault.jpg")
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nizard_1", ("https://youtu.be/1fjA68k8DAU?si=2PuZSquVQGvfmQkZ",
|
||||||
|
"https://img.youtube.com/vi/1fjA68k8DAU/maxresdefault.jpg")
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Génère une liste d'artistes de musique en utilisant la bibliothèque Faker pour créer des noms d'artistes et des biographies réalistes.
|
/// Génère une liste d'artistes de musique en utilisant la bibliothèque Faker pour créer des noms d'artistes et des biographies réalistes.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="count">Nombre d'artistes à générer</param>
|
/// <param name="count">Nombre d'artistes à générer.</param>
|
||||||
/// <returns>Liste d'artistes de musique générés</returns>
|
/// <returns>Liste d'artistes de musique générés.</returns>
|
||||||
public List<Artiste> GenerateArtists(int count)
|
public List<Artiste> GenerateArtists(int count)
|
||||||
{
|
{
|
||||||
var artists = new List<Artiste>();
|
var artists = new List<Artiste>();
|
||||||
@@ -73,7 +90,7 @@ public class DataFactory
|
|||||||
IdArtiste = i + 1,
|
IdArtiste = i + 1,
|
||||||
Nom = Name.FullName(),
|
Nom = Name.FullName(),
|
||||||
Biographie = Lorem.Paragraph(),
|
Biographie = Lorem.Paragraph(),
|
||||||
Titres = new List<Titre>()
|
Titres = new List<Titre>(),
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -83,8 +100,8 @@ public class DataFactory
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Génère une liste de styles de musique à partir d'une liste prédéfinie de noms de styles.
|
/// Génère une liste de styles de musique à partir d'une liste prédéfinie de noms de styles.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="count">Nombre de styles à générer (maximum 15, car il y a 15 styles prédéfinis)</param>
|
/// <param name="count">Nombre de styles à générer (maximum 15, car il y a 15 styles prédéfinis).</param>
|
||||||
/// <returns>Liste de styles de musique générés</returns>
|
/// <returns>Liste de styles de musique générés.</returns>
|
||||||
public List<Style> GenerateStyles(int count)
|
public List<Style> GenerateStyles(int count)
|
||||||
{
|
{
|
||||||
var styleNames = new[] { "Rock", "Pop", "Rap", "Électro", "Jazz", "Classique", "Reggae", "Blues", "Metal", "Folk", "Chanson française", "Hip-Hop", "R&B", "Soul", "Punk" };
|
var styleNames = new[] { "Rock", "Pop", "Rap", "Électro", "Jazz", "Classique", "Reggae", "Blues", "Metal", "Folk", "Chanson française", "Hip-Hop", "R&B", "Soul", "Punk" };
|
||||||
@@ -106,15 +123,15 @@ public class DataFactory
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Génère une liste de titres de musique en utilisant des données de musique réelles pour les URL d'écoute et les jaquettes.
|
/// Génère une liste de titres de musique en utilisant des données de musique réelles pour les URL d'écoute et les jaquettes.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="count">Nombre de titres à générer</param>
|
/// <param name="count">Nombre de titres à générer.</param>
|
||||||
/// <param name="artists">Liste des artistes à associer aux titres générés</param>
|
/// <param name="artists">Liste des artistes à associer aux titres générés.</param>
|
||||||
/// <param name="styles">Liste des styles à associer aux titres générés</param>
|
/// <param name="styles">Liste des styles à associer aux titres générés.</param>
|
||||||
/// <returns>Liste de titres de musique générés</returns>
|
/// <returns>Liste de titres de musique générés.</returns>
|
||||||
public List<Titre> GenerateTitres(int count, List<Artiste> artists, List<Style> styles)
|
public List<Titre> GenerateTitres(int count, List<Artiste> artists, List<Style> styles)
|
||||||
{
|
{
|
||||||
var titres = new List<Titre>();
|
var titres = new List<Titre>();
|
||||||
var random = new Random();
|
var random = new Random();
|
||||||
var musicItems = RealMusicData.Values.ToList();
|
var musicItems = this.RealMusicData.Values.ToList();
|
||||||
|
|
||||||
for (int i = 0; i < count; i++)
|
for (int i = 0; i < count; i++)
|
||||||
{
|
{
|
||||||
@@ -162,9 +179,9 @@ public class DataFactory
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Génère une liste de commentaires pour les titres de musique générés, en associant chaque commentaire à un titre aléatoire.
|
/// Génère une liste de commentaires pour les titres de musique générés, en associant chaque commentaire à un titre aléatoire.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="count">Nombre de commentaires à générer</param>
|
/// <param name="count">Nombre de commentaires à générer.</param>
|
||||||
/// <param name="titres">Liste des titres de musique à associer aux commentaires générés</param>
|
/// <param name="titres">Liste des titres de musique à associer aux commentaires générés.</param>
|
||||||
/// <returns>Liste de commentaires générés</returns>
|
/// <returns>Liste de commentaires générés.</returns>
|
||||||
public List<Commentaire> GenerateCommentaires(int count, List<Titre> titres)
|
public List<Commentaire> GenerateCommentaires(int count, List<Titre> titres)
|
||||||
{
|
{
|
||||||
var commentaires = new List<Commentaire>();
|
var commentaires = new List<Commentaire>();
|
||||||
@@ -181,7 +198,7 @@ public class DataFactory
|
|||||||
Auteur = Name.FullName(),
|
Auteur = Name.FullName(),
|
||||||
DateCreation = DateTime.Now.AddDays(-random.Next(1, 30)), // Commentaires créés dans les 30 derniers jours
|
DateCreation = DateTime.Now.AddDays(-random.Next(1, 30)), // Commentaires créés dans les 30 derniers jours
|
||||||
IdTitre = randomTitre.IdTitre,
|
IdTitre = randomTitre.IdTitre,
|
||||||
Titre = randomTitre
|
Titre = randomTitre,
|
||||||
});
|
});
|
||||||
|
|
||||||
randomTitre.Commentaires.Add(commentaires.Last());
|
randomTitre.Commentaires.Add(commentaires.Last());
|
||||||
|
|||||||
@@ -5,11 +5,11 @@
|
|||||||
namespace Webzine.Entity.Fixtures
|
namespace Webzine.Entity.Fixtures
|
||||||
{
|
{
|
||||||
using Bogus;
|
using Bogus;
|
||||||
|
|
||||||
public class SeedDataLocal
|
public class SeedDataLocal
|
||||||
{
|
{
|
||||||
public SeedDataLocal()
|
public SeedDataLocal()
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -41,8 +41,7 @@ namespace Webzine.Entity.Fixtures
|
|||||||
int count,
|
int count,
|
||||||
List<Artiste> artistes,
|
List<Artiste> artistes,
|
||||||
List<Style> styles,
|
List<Style> styles,
|
||||||
List<string> albums
|
List<string> albums)
|
||||||
)
|
|
||||||
{
|
{
|
||||||
Random random = new Random();
|
Random random = new Random();
|
||||||
int idStart = 1;
|
int idStart = 1;
|
||||||
|
|||||||
@@ -2,5 +2,4 @@ namespace Webzine.Entity.Fixtures;
|
|||||||
|
|
||||||
public class SeedDataSpotify
|
public class SeedDataSpotify
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -5,8 +5,8 @@
|
|||||||
namespace Webzine.Entity.Fixtures
|
namespace Webzine.Entity.Fixtures
|
||||||
{
|
{
|
||||||
using Webzine.Entity;
|
using Webzine.Entity;
|
||||||
|
|
||||||
public class StyleFactory
|
public class StyleFactory
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,17 +1,18 @@
|
|||||||
using Bogus;
|
namespace Webzine.Repository.Fake
|
||||||
using Faker;
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using Webzine.Entity;
|
|
||||||
|
|
||||||
namespace Webzine.Repository.Fake
|
|
||||||
{
|
{
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using Bogus;
|
||||||
|
using Faker;
|
||||||
|
using Webzine.Entity;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Classe de fabrique pour générer des données factices (fake data) pour les entités Artiste et Titre.
|
/// Classe de fabrique pour générer des données factices (fake data) pour les entités Artiste et Titre.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static class FakeDataFactory
|
public static class FakeDataFactory
|
||||||
{
|
{
|
||||||
//https://cdn-images.dzcdn.net/images/cover/311bba0fc112d15f72c8b5a65f0456c1/1900x1900-000000-80-0-0.jpg",
|
// https://cdn-images.dzcdn.net/images/cover/311bba0fc112d15f72c8b5a65f0456c1/1900x1900-000000-80-0-0.jpg",
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Génère une liste d'artistes avec des données factices, incluant des titres associés à chaque artiste.
|
/// Génère une liste d'artistes avec des données factices, incluant des titres associés à chaque artiste.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -28,7 +29,7 @@ namespace Webzine.Repository.Fake
|
|||||||
IdArtiste = i,
|
IdArtiste = i,
|
||||||
Nom = Name.FullName(),
|
Nom = Name.FullName(),
|
||||||
Biographie = Lorem.Paragraph(),
|
Biographie = Lorem.Paragraph(),
|
||||||
Titres = new List<Titre>()
|
Titres = new List<Titre>(),
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -64,7 +65,7 @@ namespace Webzine.Repository.Fake
|
|||||||
NbLectures = RandomNumber.Next(0, 500),
|
NbLectures = RandomNumber.Next(0, 500),
|
||||||
NbLikes = RandomNumber.Next(0, 200),
|
NbLikes = RandomNumber.Next(0, 200),
|
||||||
Album = Lorem.Sentence(2),
|
Album = Lorem.Sentence(2),
|
||||||
Commentaires = new List<Commentaire>()
|
Commentaires = new List<Commentaire>(),
|
||||||
};
|
};
|
||||||
|
|
||||||
titres.Add(titre);
|
titres.Add(titre);
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
using System.ComponentModel.DataAnnotations;
|
namespace Webzine.Entity
|
||||||
|
|
||||||
namespace Webzine.Entity
|
|
||||||
{
|
{
|
||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Classe représentant un style de musique.
|
/// Classe représentant un style de musique.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
using System.ComponentModel.DataAnnotations;
|
namespace Webzine.Entity
|
||||||
|
|
||||||
namespace Webzine.Entity
|
|
||||||
{
|
{
|
||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Classe représentant un titre de musique.
|
/// Classe représentant un titre de musique.
|
||||||
/// Lien avec l'entité <see cref="Artiste"/> : un artiste peut avoir plusieurs titres, mais un titre n'a qu'un seul artiste.
|
/// Lien avec l'entité <see cref="Artiste"/> : un artiste peut avoir plusieurs titres, mais un titre n'a qu'un seul artiste.
|
||||||
@@ -107,4 +107,4 @@ namespace Webzine.Entity
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public List<Style> Styles { get; set; } = new List<Style>();
|
public List<Style> Styles { get; set; } = new List<Style>();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,6 +1,7 @@
|
|||||||
namespace Webzine.Repository.Contracts
|
namespace Webzine.Repository.Contracts
|
||||||
{
|
{
|
||||||
using Webzine.Entity;
|
using Webzine.Entity;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Défini une interface <see cref="IArtisteRepository"/> pour gérer les opérations de base de données liées aux artistes.
|
/// Défini une interface <see cref="IArtisteRepository"/> pour gérer les opérations de base de données liées aux artistes.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
using Webzine.Entity;
|
|
||||||
|
|
||||||
namespace Webzine.Repository.Contracts
|
namespace Webzine.Repository.Contracts
|
||||||
{
|
{
|
||||||
|
using Webzine.Entity;
|
||||||
|
|
||||||
public interface ICommentaireRepository
|
public interface ICommentaireRepository
|
||||||
{
|
{
|
||||||
void Add(Commentaire commentaire);
|
void Add(Commentaire commentaire);
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
using Webzine.Entity;
|
|
||||||
|
|
||||||
namespace Webzine.Repository.Contracts
|
namespace Webzine.Repository.Contracts
|
||||||
{
|
{
|
||||||
|
using Webzine.Entity;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Interface définissant les opérations de base pour le repository de styles, permettant d'ajouter, supprimer, trouver et mettre à jour des styles dans la source de données.
|
/// Interface définissant les opérations de base pour le repository de styles, permettant d'ajouter, supprimer, trouver et mettre à jour des styles dans la source de données.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
using Webzine.Entity;
|
namespace Webzine.Repository.Contracts
|
||||||
|
|
||||||
namespace Webzine.Repository.Contracts
|
|
||||||
{
|
{
|
||||||
|
using Webzine.Entity;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Interface qui définit les opérations de base pour la gestion des titres dans une source de données.
|
/// Interface qui définit les opérations de base pour la gestion des titres dans une source de données.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@@ -5,8 +5,10 @@
|
|||||||
namespace Webzine.Repository
|
namespace Webzine.Repository
|
||||||
{
|
{
|
||||||
using System.Data.Common;
|
using System.Data.Common;
|
||||||
|
|
||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
|
|
||||||
using Webzine.EntitiesContext;
|
using Webzine.EntitiesContext;
|
||||||
using Webzine.Entity;
|
using Webzine.Entity;
|
||||||
using Webzine.Repository.Contracts;
|
using Webzine.Repository.Contracts;
|
||||||
@@ -17,7 +19,7 @@ namespace Webzine.Repository
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public class DbArtisteRepository : IArtisteRepository
|
public class DbArtisteRepository : IArtisteRepository
|
||||||
{
|
{
|
||||||
private WebzineDbContext context;
|
private readonly WebzineDbContext context;
|
||||||
private readonly ILogger<LocalArtisteRepository> logger;
|
private readonly ILogger<LocalArtisteRepository> logger;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -115,7 +117,7 @@ namespace Webzine.Repository
|
|||||||
/// <inheritdoc/>
|
/// <inheritdoc/>
|
||||||
public IEnumerable<Artiste> FindAll()
|
public IEnumerable<Artiste> FindAll()
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
// .AsNoTracking() rend la requête beaucoup plus rapide pour de la lecture
|
// .AsNoTracking() rend la requête beaucoup plus rapide pour de la lecture
|
||||||
var artistes = this.context.Artistes.AsNoTracking().ToList();
|
var artistes = this.context.Artistes.AsNoTracking().ToList();
|
||||||
@@ -127,15 +129,15 @@ namespace Webzine.Repository
|
|||||||
this.logger.LogError(ex, "Erreur lors de la récupération de tous les artistes.");
|
this.logger.LogError(ex, "Erreur lors de la récupération de tous les artistes.");
|
||||||
return Enumerable.Empty<Artiste>(); // Retourne une liste vide au lieu de faire crash l'UI
|
return Enumerable.Empty<Artiste>(); // Retourne une liste vide au lieu de faire crash l'UI
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <inheritdoc/>
|
/// <inheritdoc/>
|
||||||
public void Update(Artiste artiste)
|
public void Update(Artiste artiste)
|
||||||
{
|
{
|
||||||
if (artiste == null)
|
if (artiste == null)
|
||||||
{
|
{
|
||||||
throw new ArgumentNullException(nameof(artiste));
|
throw new ArgumentNullException(nameof(artiste));
|
||||||
}
|
}
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
using Webzine.EntitiesContext;
|
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
|
using Webzine.EntitiesContext;
|
||||||
using Webzine.Entity;
|
using Webzine.Entity;
|
||||||
using Webzine.Repository.Contracts;
|
using Webzine.Repository.Contracts;
|
||||||
|
|
||||||
@@ -15,6 +15,7 @@ public class DbCommentaireRepository : ICommentaireRepository
|
|||||||
private readonly WebzineDbContext context;
|
private readonly WebzineDbContext context;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
/// Initializes a new instance of the <see cref="DbCommentaireRepository"/> class.
|
||||||
/// Initialisation de <see cref="DbCommentaireRepository"/>.
|
/// Initialisation de <see cref="DbCommentaireRepository"/>.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="logger">Le service de journalisation injecté pour suivre les opérations du repository.</param>
|
/// <param name="logger">Le service de journalisation injecté pour suivre les opérations du repository.</param>
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
using Webzine.EntitiesContext;
|
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
|
using Webzine.EntitiesContext;
|
||||||
using Webzine.Entity;
|
using Webzine.Entity;
|
||||||
using Webzine.Repository.Contracts;
|
using Webzine.Repository.Contracts;
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
using Webzine.Entity;
|
namespace Webzine.Repository
|
||||||
|
|
||||||
namespace Webzine.Repository
|
|
||||||
{
|
{
|
||||||
|
using Webzine.Entity;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Représente un entrepôt de données en mémoire (Mock) pour l'application.
|
/// Représente un entrepôt de données en mémoire (Mock) pour l'application.
|
||||||
/// Cette classe simule une base de données en stockant les entités dans des listes statiques
|
/// Cette classe simule une base de données en stockant les entités dans des listes statiques
|
||||||
@@ -12,21 +12,21 @@ namespace Webzine.Repository
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Obtient ou définit la liste des artistes enregistrés.
|
/// Obtient ou définit la liste des artistes enregistrés.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public List<Artiste> Artistes { get; set; } = new();
|
public List<Artiste> Artistes { get; set; } = new ();
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Obtient ou définit la liste des titres (morceaux) musicaux.
|
/// Obtient ou définit la liste des titres (morceaux) musicaux.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public List<Titre> Titres { get; set; } = new();
|
public List<Titre> Titres { get; set; } = new ();
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Obtient ou définit la liste des styles musicaux disponibles.
|
/// Obtient ou définit la liste des styles musicaux disponibles.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public List<Style> Styles { get; set; } = new();
|
public List<Style> Styles { get; set; } = new ();
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Obtient ou définit la liste des commentaires rédigés par les utilisateurs.
|
/// Obtient ou définit la liste des commentaires rédigés par les utilisateurs.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public List<Commentaire> Commentaires { get; set; } = new();
|
public List<Commentaire> Commentaires { get; set; } = new ();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -5,6 +5,7 @@
|
|||||||
namespace Webzine.Repository
|
namespace Webzine.Repository
|
||||||
{
|
{
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
|
|
||||||
using Webzine.Entity;
|
using Webzine.Entity;
|
||||||
using Webzine.Repository.Contracts;
|
using Webzine.Repository.Contracts;
|
||||||
|
|
||||||
@@ -15,9 +16,9 @@ namespace Webzine.Repository
|
|||||||
public class LocalArtisteRepository : IArtisteRepository
|
public class LocalArtisteRepository : IArtisteRepository
|
||||||
{
|
{
|
||||||
private readonly ILogger<LocalArtisteRepository> logger;
|
private readonly ILogger<LocalArtisteRepository> logger;
|
||||||
//private readonly List<Artiste> artistes;
|
|
||||||
private readonly InMemoryDataStore dataStore;
|
|
||||||
|
|
||||||
|
// private readonly List<Artiste> artistes;
|
||||||
|
private readonly InMemoryDataStore dataStore;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Initializes a new instance of the <see cref="LocalArtisteRepository"/> class.
|
/// Initializes a new instance of the <see cref="LocalArtisteRepository"/> class.
|
||||||
@@ -28,7 +29,8 @@ namespace Webzine.Repository
|
|||||||
public LocalArtisteRepository(InMemoryDataStore dataStore, ILogger<LocalArtisteRepository> logger)
|
public LocalArtisteRepository(InMemoryDataStore dataStore, ILogger<LocalArtisteRepository> logger)
|
||||||
{
|
{
|
||||||
this.logger = logger;
|
this.logger = logger;
|
||||||
//this.artistes = artistes;
|
|
||||||
|
// this.artistes = artistes;
|
||||||
this.dataStore = dataStore;
|
this.dataStore = dataStore;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -7,9 +7,11 @@ namespace Webzine.Repository
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
using Webzine.Entity;
|
|
||||||
using Webzine.Repository.Contracts;
|
using Webzine.Entity;
|
||||||
|
using Webzine.Repository.Contracts;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Initialise une classe <see cref="LocalCommentaireRepository"/> qui implémente l'interface <see cref="ICommentaireRepository"/> pour gérer les opérations liées aux commentaires.
|
/// Initialise une classe <see cref="LocalCommentaireRepository"/> qui implémente l'interface <see cref="ICommentaireRepository"/> pour gérer les opérations liées aux commentaires.
|
||||||
@@ -21,6 +23,7 @@ using Webzine.Repository.Contracts;
|
|||||||
private readonly InMemoryDataStore dataStore;
|
private readonly InMemoryDataStore dataStore;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
/// Initializes a new instance of the <see cref="LocalCommentaireRepository"/> class.
|
||||||
/// Initialise une nouvelle instance du <see cref="LocalCommentaireRepository"/> .
|
/// Initialise une nouvelle instance du <see cref="LocalCommentaireRepository"/> .
|
||||||
/// Est liée à un magasin de données en mémoire et utilise un logger pour enregistrer les opérations.
|
/// Est liée à un magasin de données en mémoire et utilise un logger pour enregistrer les opérations.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -55,7 +58,7 @@ using Webzine.Repository.Contracts;
|
|||||||
{
|
{
|
||||||
var commentaire = this.dataStore.Commentaires.FirstOrDefault(c => c.IdCommentaire == idCommentaire);
|
var commentaire = this.dataStore.Commentaires.FirstOrDefault(c => c.IdCommentaire == idCommentaire);
|
||||||
if (commentaire == null)
|
if (commentaire == null)
|
||||||
{
|
{
|
||||||
return new Commentaire();
|
return new Commentaire();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -10,7 +10,8 @@ namespace Webzine.Repository;
|
|||||||
public class LocalStyleRepository : IStyleRepository
|
public class LocalStyleRepository : IStyleRepository
|
||||||
{
|
{
|
||||||
private readonly ILogger<LocalStyleRepository> logger;
|
private readonly ILogger<LocalStyleRepository> logger;
|
||||||
//private readonly List<Style> styles;
|
|
||||||
|
// private readonly List<Style> styles;
|
||||||
private readonly InMemoryDataStore dataStore;
|
private readonly InMemoryDataStore dataStore;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ public class ArtisteController : Controller
|
|||||||
private readonly IArtisteRepository artisteRepository;
|
private readonly IArtisteRepository artisteRepository;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
/// Initializes a new instance of the <see cref="ArtisteController"/> class.
|
||||||
/// Initialise une nouvelle instance de la classe <see cref="ArtisteController"/>.
|
/// Initialise une nouvelle instance de la classe <see cref="ArtisteController"/>.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="logger">Logger.</param>
|
/// <param name="logger">Logger.</param>
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
using Microsoft.AspNetCore.Mvc;
|
|
||||||
using Webzine.Entity;
|
|
||||||
using Webzine.Repository.Contracts;
|
|
||||||
using Webzine.WebApplication.Areas.Administration.ViewModels.Commentaire;
|
|
||||||
|
|
||||||
namespace Webzine.WebApplication.Areas.Administration.Controllers
|
namespace Webzine.WebApplication.Areas.Administration.Controllers
|
||||||
{
|
{
|
||||||
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
using Webzine.Entity;
|
||||||
|
using Webzine.Repository.Contracts;
|
||||||
|
using Webzine.WebApplication.Areas.Administration.ViewModels.Commentaire;
|
||||||
|
|
||||||
[Area("Administration")]
|
[Area("Administration")]
|
||||||
public class CommentaireController : Controller
|
public class CommentaireController : Controller
|
||||||
{
|
{
|
||||||
@@ -12,6 +12,7 @@ namespace Webzine.WebApplication.Areas.Administration.Controllers
|
|||||||
private readonly ICommentaireRepository commentaireRepository;
|
private readonly ICommentaireRepository commentaireRepository;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
/// Initializes a new instance of the <see cref="CommentaireController"/> class.
|
||||||
/// Initialise une nouvelle instance de la classe <see cref="CommentaireController"/>.
|
/// Initialise une nouvelle instance de la classe <see cref="CommentaireController"/>.
|
||||||
/// Utilise l'injection de dépendances pour récupérer le repository.
|
/// Utilise l'injection de dépendances pour récupérer le repository.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -37,10 +38,10 @@ namespace Webzine.WebApplication.Areas.Administration.Controllers
|
|||||||
// Initialisation du ViewModel
|
// Initialisation du ViewModel
|
||||||
var viewModel = new CommentaireViewModel
|
var viewModel = new CommentaireViewModel
|
||||||
{
|
{
|
||||||
Commentaires = commentaires
|
Commentaires = commentaires,
|
||||||
};
|
};
|
||||||
|
|
||||||
return View(viewModel);
|
return this.View(viewModel);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -58,10 +59,10 @@ namespace Webzine.WebApplication.Areas.Administration.Controllers
|
|||||||
Auteur = commentaire.Auteur,
|
Auteur = commentaire.Auteur,
|
||||||
Contenu = commentaire.Contenu,
|
Contenu = commentaire.Contenu,
|
||||||
DateCreation = commentaire.DateCreation,
|
DateCreation = commentaire.DateCreation,
|
||||||
TitreLibelle = commentaire.Titre?.Libelle
|
TitreLibelle = commentaire.Titre?.Libelle,
|
||||||
};
|
};
|
||||||
|
|
||||||
return View(model);
|
return this.View(model);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -79,7 +80,7 @@ namespace Webzine.WebApplication.Areas.Administration.Controllers
|
|||||||
this.commentaireRepository.Delete(commentaire);
|
this.commentaireRepository.Delete(commentaire);
|
||||||
}
|
}
|
||||||
|
|
||||||
return RedirectToAction("Index");
|
return this.RedirectToAction("Index");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -16,6 +16,7 @@ public class DashboardController : Controller
|
|||||||
private readonly ITitreRepository titreRepository;
|
private readonly ITitreRepository titreRepository;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
/// Initializes a new instance of the <see cref="DashboardController"/> class.
|
||||||
/// Initialise une nouvelle instance de la classe <see cref="DashboardController"/>.
|
/// Initialise une nouvelle instance de la classe <see cref="DashboardController"/>.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="logger">Service de journalisation injecté.</param>
|
/// <param name="logger">Service de journalisation injecté.</param>
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
using Microsoft.AspNetCore.Mvc;
|
|
||||||
using Webzine.Repository.Contracts;
|
|
||||||
using Webzine.WebApplication.Areas.Administration.ViewModels.Style;
|
|
||||||
|
|
||||||
namespace Webzine.WebApplication.Areas.Administration.Controllers
|
namespace Webzine.WebApplication.Areas.Administration.Controllers
|
||||||
{
|
{
|
||||||
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
using Webzine.Repository.Contracts;
|
||||||
|
using Webzine.WebApplication.Areas.Administration.ViewModels.Style;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Contrôleur pour la gestion des styles dans l'administration du webzine.
|
/// Contrôleur pour la gestion des styles dans l'administration du webzine.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -14,6 +14,7 @@ namespace Webzine.WebApplication.Areas.Administration.Controllers
|
|||||||
private readonly IStyleRepository styleRepository;
|
private readonly IStyleRepository styleRepository;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
/// Initializes a new instance of the <see cref="StyleController"/> class.
|
||||||
/// Initialise une nouvelle instance de la classe <see cref="StyleController"/>.
|
/// Initialise une nouvelle instance de la classe <see cref="StyleController"/>.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="logger">Service de journalisation injecté.</param>
|
/// <param name="logger">Service de journalisation injecté.</param>
|
||||||
@@ -93,7 +94,7 @@ namespace Webzine.WebApplication.Areas.Administration.Controllers
|
|||||||
[HttpGet]
|
[HttpGet]
|
||||||
public IActionResult Edit(int id)
|
public IActionResult Edit(int id)
|
||||||
{
|
{
|
||||||
var style = styleRepository.Find(id);
|
var style = this.styleRepository.Find(id);
|
||||||
|
|
||||||
var model = new StyleEditViewModel
|
var model = new StyleEditViewModel
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -18,8 +18,8 @@ public class TitreController : Controller
|
|||||||
private readonly IArtisteRepository artisteRepository;
|
private readonly IArtisteRepository artisteRepository;
|
||||||
private readonly IStyleRepository styleRepository;
|
private readonly IStyleRepository styleRepository;
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
/// Initializes a new instance of the <see cref="TitreController"/> class.
|
||||||
/// Initialise une nouvelle instance de la classe <see cref="TitreController"/>.
|
/// Initialise une nouvelle instance de la classe <see cref="TitreController"/>.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="logger">Service de journalisation injecté.</param>
|
/// <param name="logger">Service de journalisation injecté.</param>
|
||||||
|
|||||||
@@ -9,10 +9,12 @@
|
|||||||
/// Définit l'identifiant de l'artiste.
|
/// Définit l'identifiant de l'artiste.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public int Id { get; set; }
|
public int Id { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Définit le nom de l'artiste.
|
/// Définit le nom de l'artiste.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string Nom { get; set; }
|
public string Nom { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Définit la biographie de l'artiste.
|
/// Définit la biographie de l'artiste.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
// <copyright file="CommentaireViewModel.cs" company="Webzine">
|
// <copyright file="CommentaireViewModel.cs" company="PlaceholderCompany">
|
||||||
// Copyright (c) Webzine. All rights reserved.
|
// Copyright (c) PlaceholderCompany. All rights reserved.
|
||||||
// </copyright>
|
// </copyright>
|
||||||
|
|
||||||
namespace Webzine.WebApplication.Areas.Administration.ViewModels.Commentaire
|
namespace Webzine.WebApplication.Areas.Administration.ViewModels.Commentaire
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ public class DashboardViewModel
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Définit le nombre total d'artistes chroniqués dans le webzine.
|
/// Définit le nombre total d'artistes chroniqués dans le webzine.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public int NombreArtistes { get; set; }
|
public int NombreArtistes { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Définit le nom de l'artiste le plus chroniqué dans le webzine.
|
/// Définit le nom de l'artiste le plus chroniqué dans le webzine.
|
||||||
@@ -29,6 +29,7 @@ public class DashboardViewModel
|
|||||||
/// Définit l'identifiant de la biographie d'artiste la plus lue dans le webzine.
|
/// Définit l'identifiant de la biographie d'artiste la plus lue dans le webzine.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public int IdMusiqueLaPlusJouee { get; set; }
|
public int IdMusiqueLaPlusJouee { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Définit le nom de la biographie d'artiste la plus lue dans le webzine.
|
/// Définit le nom de la biographie d'artiste la plus lue dans le webzine.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@@ -1,20 +1,17 @@
|
|||||||
// <copyright file="StyleDeleteViewModel.cs" company="Webzine">
|
// <copyright file="StyleCreateViewModel.cs" company="PlaceholderCompany">
|
||||||
// Copyright (c) Webzine. Tout droit réservé.
|
// Copyright (c) PlaceholderCompany. All rights reserved.
|
||||||
// </copyright>
|
// </copyright>
|
||||||
|
|
||||||
|
|
||||||
namespace Webzine.WebApplication.Areas.Administration.ViewModels.Style
|
namespace Webzine.WebApplication.Areas.Administration.ViewModels.Style
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// ViewModel pour la création d'un style en administration.
|
/// ViewModel pour la création d'un style en administration.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
||||||
public class StyleCreateViewModel
|
public class StyleCreateViewModel
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Obtient ou définit le libellé du style.
|
/// Obtient ou définit le libellé du style.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
||||||
public string Libelle { get; set; }
|
public string Libelle { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,26 +1,22 @@
|
|||||||
// <copyright file="StyleDeleteViewModel.cs" company="Webzine">
|
// <copyright file="StyleDeleteViewModel.cs" company="PlaceholderCompany">
|
||||||
// Copyright (c) Webzine. Tout droit réservé.
|
// Copyright (c) PlaceholderCompany. All rights reserved.
|
||||||
// </copyright>
|
// </copyright>
|
||||||
|
|
||||||
|
|
||||||
namespace Webzine.WebApplication.Areas.Administration.ViewModels.Style
|
namespace Webzine.WebApplication.Areas.Administration.ViewModels.Style
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// ViewModel pour la suppression d'un style en administration.
|
/// ViewModel pour la suppression d'un style en administration.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
||||||
public class StyleDeleteViewModel
|
public class StyleDeleteViewModel
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Obtient ou définit l'identifiant du style à supprimer.
|
/// Obtient ou définit l'identifiant du style à supprimer.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
||||||
public int IdStyle { get; set; }
|
public int IdStyle { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Obtient ou définit le libellé du style.
|
/// Obtient ou définit le libellé du style.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
||||||
public string Libelle { get; set; }
|
public string Libelle { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,27 +1,22 @@
|
|||||||
// <copyright file="StyleDeleteViewModel.cs" company="Webzine">
|
// <copyright file="StyleEditViewModel.cs" company="PlaceholderCompany">
|
||||||
// Copyright (c) Webzine. Tout droit réservé.
|
// Copyright (c) PlaceholderCompany. All rights reserved.
|
||||||
// </copyright>
|
// </copyright>
|
||||||
|
|
||||||
|
|
||||||
namespace Webzine.WebApplication.Areas.Administration.ViewModels.Style
|
namespace Webzine.WebApplication.Areas.Administration.ViewModels.Style
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// ViewModel pour la modification d'un style en administration.
|
/// ViewModel pour la modification d'un style en administration.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
||||||
public class StyleEditViewModel
|
public class StyleEditViewModel
|
||||||
{
|
{
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Obtient ou définit le libellé du style.
|
/// Obtient ou définit le libellé du style.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
||||||
public int IdStyle { get; set; }
|
public int IdStyle { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Obtient ou définit le libellé du style.
|
/// Obtient ou définit le libellé du style.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
||||||
public string Libelle { get; set; }
|
public string Libelle { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -65,7 +65,7 @@ public class AdminTitreForm
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Définit la liste des identifiants des styles associés au titre.
|
/// Définit la liste des identifiants des styles associés au titre.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public List<int> Styles { get; set; } = new();
|
public List<int> Styles { get; set; } = new ();
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Définit la liste des artistes disponibles pour la sélection dans le formulaire de création ou de modification d'un titre.
|
/// Définit la liste des artistes disponibles pour la sélection dans le formulaire de création ou de modification d'un titre.
|
||||||
|
|||||||
@@ -1,10 +1,11 @@
|
|||||||
// <copyright file="AccueilController.cs" company=" Equipe 1 - ">
|
// <copyright file="AccueilController.cs" company="PlaceholderCompany">
|
||||||
// Copyright (c) Equipe 1 - . All rights reserved.
|
// Copyright (c) PlaceholderCompany. All rights reserved.
|
||||||
// </copyright>
|
// </copyright>
|
||||||
|
|
||||||
namespace Webzine.WebApplication.Controllers
|
namespace Webzine.WebApplication.Controllers
|
||||||
{
|
{
|
||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
|
||||||
using Webzine.Repository.Contracts;
|
using Webzine.Repository.Contracts;
|
||||||
using Webzine.WebApplication.ViewModels.Accueil;
|
using Webzine.WebApplication.ViewModels.Accueil;
|
||||||
|
|
||||||
@@ -19,6 +20,7 @@ namespace Webzine.WebApplication.Controllers
|
|||||||
private readonly ITitreRepository titreRepository;
|
private readonly ITitreRepository titreRepository;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
/// Initializes a new instance of the <see cref="AccueilController"/> class.
|
||||||
/// Initialise une nouvelle instance de la classe <see cref="AccueilController"/>.
|
/// Initialise une nouvelle instance de la classe <see cref="AccueilController"/>.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="logger">Service de journalisation injecté pour enregistrer les événements et les erreurs.</param>
|
/// <param name="logger">Service de journalisation injecté pour enregistrer les événements et les erreurs.</param>
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ public class ApiController : ControllerBase
|
|||||||
private readonly ILogger<ApiController> logger;
|
private readonly ILogger<ApiController> logger;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
/// Initializes a new instance of the <see cref="ApiController"/> class.
|
||||||
/// Initialise une nouvelle instance de la classe <see cref="ApiController"/>.
|
/// Initialise une nouvelle instance de la classe <see cref="ApiController"/>.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="logger">Service de journalisation injecté pour enregistrer les événements et les erreurs.</param>
|
/// <param name="logger">Service de journalisation injecté pour enregistrer les événements et les erreurs.</param>
|
||||||
@@ -25,10 +26,10 @@ public class ApiController : ControllerBase
|
|||||||
{
|
{
|
||||||
this.logger.LogInformation("Get Version was called");
|
this.logger.LogInformation("Get Version was called");
|
||||||
|
|
||||||
return Ok(new
|
return this.Ok(new
|
||||||
{
|
{
|
||||||
nom = "webzine",
|
nom = "webzine",
|
||||||
version = "2.0",
|
version = "2.0",
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,6 +1,7 @@
|
|||||||
namespace Webzine.WebApplication.Controllers
|
namespace Webzine.WebApplication.Controllers
|
||||||
{
|
{
|
||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
|
||||||
using Webzine.Entity.Fixtures;
|
using Webzine.Entity.Fixtures;
|
||||||
using Webzine.Repository.Contracts;
|
using Webzine.Repository.Contracts;
|
||||||
using Webzine.WebApplication.ViewModels.Artiste;
|
using Webzine.WebApplication.ViewModels.Artiste;
|
||||||
@@ -9,18 +10,20 @@
|
|||||||
{
|
{
|
||||||
// Injection du logger via le constructeur
|
// Injection du logger via le constructeur
|
||||||
private readonly ILogger<ArtisteController> logger;
|
private readonly ILogger<ArtisteController> logger;
|
||||||
private readonly IArtisteRepository _artisteRepository;
|
private readonly IArtisteRepository artisteRepository;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
/// Initializes a new instance of the <see cref="ArtisteController"/> class.
|
||||||
/// Initialise une nouvelle instance du <see cref="ArtisteController"/>. avec un service de journalisation injecté.
|
/// Initialise une nouvelle instance du <see cref="ArtisteController"/>. avec un service de journalisation injecté.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="logger">Service de journalisation injecté pour enregistrer les événements et les erreurs.</param>
|
/// <param name="logger">Service de journalisation injecté pour enregistrer les événements et les erreurs.</param>
|
||||||
public ArtisteController(ILogger<ArtisteController> logger,
|
public ArtisteController(
|
||||||
|
ILogger<ArtisteController> logger,
|
||||||
IArtisteRepository artisteRepository)
|
IArtisteRepository artisteRepository)
|
||||||
{
|
{
|
||||||
this.logger = logger;
|
this.logger = logger;
|
||||||
this.logger.LogDebug("Initialisation du ArtisteController");
|
this.logger.LogDebug("Initialisation du ArtisteController");
|
||||||
this._artisteRepository = artisteRepository;
|
this.artisteRepository = artisteRepository;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -44,7 +47,7 @@
|
|||||||
.ToTitleCase(nom.Replace("-", " "));
|
.ToTitleCase(nom.Replace("-", " "));
|
||||||
|
|
||||||
// On appelle la factory pour obtenir l'artiste unique
|
// On appelle la factory pour obtenir l'artiste unique
|
||||||
var artiste = this._artisteRepository.FindByName(nomPropre);
|
var artiste = this.artisteRepository.FindByName(nomPropre);
|
||||||
|
|
||||||
// Check if artiste was found
|
// Check if artiste was found
|
||||||
if (artiste == null)
|
if (artiste == null)
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
using Microsoft.AspNetCore.Mvc;
|
namespace Webzine.WebApplication.Controllers
|
||||||
|
|
||||||
namespace Webzine.WebApplication.Controllers
|
|
||||||
{
|
{
|
||||||
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Controller pour la page contact.
|
/// Controller pour la page contact.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -11,6 +11,7 @@ namespace Webzine.WebApplication.Controllers
|
|||||||
private readonly ILogger<ContactController> logger;
|
private readonly ILogger<ContactController> logger;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
/// Initializes a new instance of the <see cref="ContactController"/> class.
|
||||||
/// Initialise une nouvelle instance de la classe <see cref="ContactController"/>.
|
/// Initialise une nouvelle instance de la classe <see cref="ContactController"/>.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="logger">Service de journalisation injecté pour enregistrer les événements et les erreurs.</param>
|
/// <param name="logger">Service de journalisation injecté pour enregistrer les événements et les erreurs.</param>
|
||||||
|
|||||||
@@ -1,10 +1,11 @@
|
|||||||
// <copyright file="RechercheController.cs" company=" Equipe 1 - ">
|
// <copyright file="RechercheController.cs" company="PlaceholderCompany">
|
||||||
// Copyright (c) Equipe 1 - . All rights reserved.
|
// Copyright (c) PlaceholderCompany. All rights reserved.
|
||||||
// </copyright>
|
// </copyright>
|
||||||
|
|
||||||
namespace Webzine.WebApplication.Controllers
|
namespace Webzine.WebApplication.Controllers
|
||||||
{
|
{
|
||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
|
||||||
using Webzine.Repository.Contracts;
|
using Webzine.Repository.Contracts;
|
||||||
using Webzine.WebApplication.ViewModels.Recherche;
|
using Webzine.WebApplication.ViewModels.Recherche;
|
||||||
using Webzine.WebApplication.ViewModels.Titre;
|
using Webzine.WebApplication.ViewModels.Titre;
|
||||||
|
|||||||
@@ -1,10 +1,11 @@
|
|||||||
// <copyright file="TitreController.cs" company=" Equipe 1 - ">
|
// <copyright file="TitreController.cs" company="PlaceholderCompany">
|
||||||
// Copyright (c) Equipe 1 - . All rights reserved.
|
// Copyright (c) PlaceholderCompany. All rights reserved.
|
||||||
// </copyright>
|
// </copyright>
|
||||||
|
|
||||||
namespace Webzine.WebApplication.Controllers
|
namespace Webzine.WebApplication.Controllers
|
||||||
{
|
{
|
||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
|
||||||
using Webzine.Entity;
|
using Webzine.Entity;
|
||||||
using Webzine.Repository.Contracts;
|
using Webzine.Repository.Contracts;
|
||||||
using Webzine.WebApplication.ViewModels.Titre;
|
using Webzine.WebApplication.ViewModels.Titre;
|
||||||
@@ -21,6 +22,7 @@ namespace Webzine.WebApplication.Controllers
|
|||||||
private readonly ITitreRepository titreRepository;
|
private readonly ITitreRepository titreRepository;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
/// Initializes a new instance of the <see cref="TitreController"/> class.
|
||||||
/// Initialise une nouvelle instance de la classe <see cref="TitreController"/>.
|
/// Initialise une nouvelle instance de la classe <see cref="TitreController"/>.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="logger">Service de journalisation injecte.</param>
|
/// <param name="logger">Service de journalisation injecte.</param>
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ try
|
|||||||
// Ajoute les services necessaires pour permettre l'utilisation des
|
// Ajoute les services necessaires pour permettre l'utilisation des
|
||||||
// controllers avec des vues.
|
// controllers avec des vues.
|
||||||
builder.Services.AddControllersWithViews()
|
builder.Services.AddControllersWithViews()
|
||||||
|
|
||||||
// Ajoute la compilation des vues lors de l'execution de l'application.
|
// Ajoute la compilation des vues lors de l'execution de l'application.
|
||||||
// Cela nous evite de recompiler l'application a chaque modification de vue.
|
// Cela nous evite de recompiler l'application a chaque modification de vue.
|
||||||
// Necessite le package Nuget Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation.
|
// Necessite le package Nuget Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation.
|
||||||
@@ -42,6 +43,7 @@ try
|
|||||||
builder.Services.AddDbContext<WebzineDbContext>(options =>
|
builder.Services.AddDbContext<WebzineDbContext>(options =>
|
||||||
options.UseNpgsql(builder.Configuration.GetConnectionString("PostGreSQLConnection")));
|
options.UseNpgsql(builder.Configuration.GetConnectionString("PostGreSQLConnection")));
|
||||||
}
|
}
|
||||||
|
|
||||||
builder.Services.AddScoped<DbEntityRepository>();
|
builder.Services.AddScoped<DbEntityRepository>();
|
||||||
builder.Services.AddScoped<ITitreRepository, DbTitreRepository>();
|
builder.Services.AddScoped<ITitreRepository, DbTitreRepository>();
|
||||||
builder.Services.AddScoped<IStyleRepository, DbStyleRepository>();
|
builder.Services.AddScoped<IStyleRepository, DbStyleRepository>();
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
using Microsoft.AspNetCore.Mvc;
|
|
||||||
using Webzine.Repository.Contracts;
|
|
||||||
|
|
||||||
namespace Webzine.WebApplication.ViewComponents
|
namespace Webzine.WebApplication.ViewComponents
|
||||||
{
|
{
|
||||||
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
using Webzine.Repository.Contracts;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// View component pour la sidebar, récupère les styles depuis le repository.
|
/// View component pour la sidebar, récupère les styles depuis le repository.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
namespace Webzine.WebApplication.ViewModels.Artiste
|
namespace Webzine.WebApplication.ViewModels.Artiste
|
||||||
{
|
{
|
||||||
using Webzine.Entity;
|
using Webzine.Entity;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// ViewModel pour afficher les informations d'un artiste et ses titres groupés par album.
|
/// ViewModel pour afficher les informations d'un artiste et ses titres groupés par album.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@@ -15,10 +15,10 @@ public class RechercheIndexViewModel
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Artistes trouves.
|
/// Artistes trouves.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public List<RechercheArtisteItem> Artistes { get; set; } = new();
|
public List<RechercheArtisteItem> Artistes { get; set; } = new ();
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Titres trouves.
|
/// Titres trouves.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public List<TitreStyleItem> Titres { get; set; } = new();
|
public List<TitreStyleItem> Titres { get; set; } = new ();
|
||||||
}
|
}
|
||||||
@@ -50,10 +50,10 @@ public class TitreContent
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Définit le nom de l'album associé au titre.
|
/// Définit le nom de l'album associé au titre.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public List<Style> Styles { get; set; } = new();
|
public List<Style> Styles { get; set; } = new ();
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Définit la liste des commentaires associés au titre.
|
/// Définit la liste des commentaires associés au titre.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public List<Commentaire> Commentaires { get; set; } = new();
|
public List<Commentaire> Commentaires { get; set; } = new ();
|
||||||
}
|
}
|
||||||
@@ -13,5 +13,5 @@ public class TitreStyle
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Définit la liste des items de titre associés au style musical.
|
/// Définit la liste des items de titre associés au style musical.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public List<TitreStyleItem> Titres { get; set; } = new();
|
public List<TitreStyleItem> Titres { get; set; } = new ();
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user