Commande dotnet format
This commit is contained in:
@@ -5,6 +5,7 @@
|
||||
namespace Webzine.EntitiesContext
|
||||
{
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
|
||||
using Webzine.Entity;
|
||||
|
||||
public class WebzineDbContext : DbContext
|
||||
@@ -14,7 +15,9 @@ namespace Webzine.EntitiesContext
|
||||
/// </summary>
|
||||
/// <param name="options">Options.</param>
|
||||
public WebzineDbContext(DbContextOptions<WebzineDbContext> options)
|
||||
: base(options) { }
|
||||
: base(options)
|
||||
{
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets Obtient les artistes de la base.
|
||||
|
||||
@@ -3,6 +3,7 @@ namespace Webzine.Entity.Tests
|
||||
using System;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Linq;
|
||||
|
||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||
|
||||
/// <summary>
|
||||
@@ -13,8 +14,8 @@ namespace Webzine.Entity.Tests
|
||||
/// <summary>
|
||||
/// Vérifie que l'entité possède bien la propriété passée en paramètre.
|
||||
/// </summary>
|
||||
/// <param name="typeObjet">type de l'entité</param>
|
||||
/// <param name="nomPropriete">nom de la propriété de l'entité</param>
|
||||
/// <param name="typeObjet">type de l'entité.</param>
|
||||
/// <param name="nomPropriete">nom de la propriété de l'entité.</param>
|
||||
public static void HasProperty(Type typeObjet, string nomPropriete)
|
||||
{
|
||||
var property = typeObjet.GetProperty(nomPropriete);
|
||||
@@ -24,9 +25,9 @@ namespace Webzine.Entity.Tests
|
||||
/// <summary>
|
||||
/// Vérifie que l'attribut de l'entité a l'annotation [Display(Name = "xxx")] avec la valeur attendue.
|
||||
/// </summary>
|
||||
/// <param name="typeObjet">type 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="typeObjet">type 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>
|
||||
public static void AttributDisplay(Type typeObjet, string nomPropriete, string chaineAttendue)
|
||||
{
|
||||
var property = typeObjet.GetProperty(nomPropriete);
|
||||
@@ -38,9 +39,9 @@ namespace Webzine.Entity.Tests
|
||||
/// <summary>
|
||||
/// Vérifie que l'attribut de l'entité a l'annotation [MinLength(xx)] avec la longueur attendue.
|
||||
/// </summary>
|
||||
/// <param name="typeObjet">type de l'entité</param>
|
||||
/// <param name="nomPropriete">nom de la propriété de l'entité</param>
|
||||
/// <param name="max">longueur maximum</param>
|
||||
/// <param name="typeObjet">type de l'entité.</param>
|
||||
/// <param name="nomPropriete">nom de la propriété de l'entité.</param>
|
||||
/// <param name="max">longueur maximum.</param>
|
||||
public static void AttributLongueurMax(Type typeObjet, string nomPropriete, int max)
|
||||
{
|
||||
var property = typeObjet.GetProperty(nomPropriete);
|
||||
@@ -52,9 +53,9 @@ namespace Webzine.Entity.Tests
|
||||
/// <summary>
|
||||
/// Vérifie que l'attribut de l'entité a l'annotation [MinLength(xx)] avec la longueur attendue.
|
||||
/// </summary>
|
||||
/// <param name="typeObjet">type de l'entité</param>
|
||||
/// <param name="nomPropriete">nom de la propriété de l'entité</param>
|
||||
/// <param name="min">longueur minimum</param>
|
||||
/// <param name="typeObjet">type de l'entité.</param>
|
||||
/// <param name="nomPropriete">nom de la propriété de l'entité.</param>
|
||||
/// <param name="min">longueur minimum.</param>
|
||||
public static void AttributLongueurMin(Type typeObjet, string nomPropriete, int min)
|
||||
{
|
||||
var property = typeObjet.GetProperty(nomPropriete);
|
||||
@@ -66,8 +67,8 @@ namespace Webzine.Entity.Tests
|
||||
/// <summary>
|
||||
/// Vérifie que l'attribut de l'entité a l'annotation [Required].
|
||||
/// </summary>
|
||||
/// <param name="typeObjet">type de l'entité</param>
|
||||
/// <param name="nomPropriete">nom de la propriété de l'entité</param>
|
||||
/// <param name="typeObjet">type de l'entité.</param>
|
||||
/// <param name="nomPropriete">nom de la propriété de l'entité.</param>
|
||||
public static void AttributRequis(Type typeObjet, string nomPropriete)
|
||||
{
|
||||
var property = typeObjet.GetProperty(nomPropriete);
|
||||
@@ -78,8 +79,8 @@ namespace Webzine.Entity.Tests
|
||||
/// <summary>
|
||||
/// Vérifie que l'attribut de l'entité n'a pas l'annotation [Url].
|
||||
/// </summary>
|
||||
/// <param name="typeObjet">type de l'entité</param>
|
||||
/// <param name="nomPropriete">nom de la propriété de l'entité</param>
|
||||
/// <param name="typeObjet">type de l'entité.</param>
|
||||
/// <param name="nomPropriete">nom de la propriété de l'entité.</param>
|
||||
public static void AttributHasNotUrlValidation(Type typeObjet, string 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>
|
||||
/// 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.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
namespace Webzine.Entity
|
||||
namespace Webzine.Entity
|
||||
{
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
/// <summary>
|
||||
/// 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.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
using Bogus;
|
||||
|
||||
namespace Webzine.Entity.Fixtures
|
||||
namespace Webzine.Entity.Fixtures
|
||||
{
|
||||
using Bogus;
|
||||
|
||||
/// <summary>
|
||||
/// Factory pour générer des artistes avec des titres associés, à l'aide de la bibliothèque Bogus.
|
||||
/// </summary>
|
||||
@@ -18,7 +18,7 @@ namespace Webzine.Entity.Fixtures
|
||||
var albumsData = new[]
|
||||
{
|
||||
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");
|
||||
|
||||
@@ -2,12 +2,11 @@
|
||||
// Copyright (c) PlaceholderCompany. All rights reserved.
|
||||
// </copyright>
|
||||
|
||||
using Bogus;
|
||||
|
||||
namespace Webzine.Entity.Fixtures
|
||||
{
|
||||
using Bogus;
|
||||
|
||||
public class CommentaireFactory
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,11 +1,13 @@
|
||||
namespace Webzine.Entity.Fixtures;
|
||||
|
||||
using Entity;
|
||||
using Faker;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
||||
using Entity;
|
||||
|
||||
using Faker;
|
||||
|
||||
public class DataFactory
|
||||
{
|
||||
/// <summary>
|
||||
@@ -14,54 +16,69 @@ public class DataFactory
|
||||
public Dictionary<string, (string TrackUrl, string ImageUrl)> RealMusicData { get; set; }
|
||||
= 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") },
|
||||
|
||||
{ "mister_v_1", ("https://youtu.be/JeqUw7sGUK8?si=FnmFR2EgkVY6MhqQ",
|
||||
"https://img.youtube.com/vi/JeqUw7sGUK8/maxresdefault.jpg") },
|
||||
|
||||
{ "compagnie_creole_1", ("https://youtu.be/wfxt1SGWAI8",
|
||||
"https://img.youtube.com/vi/wfxt1SGWAI8/maxresdefault.jpg") },
|
||||
|
||||
{ "femto_1", ("https://open.spotify.com/intl-fr/track/0qYLUdJQMhrCFA9dNZGcnm?si=b4fd45727a354a31",
|
||||
"https://i.scdn.co/image/ab67616d0000b2738e8e7b8f8f8f8f8f8f8f8f8") },
|
||||
|
||||
{ "chat_noir_1", ("https://youtu.be/OTi4-q-_Tj0?si=SNnLd-6Y893nL5Au",
|
||||
"https://img.youtube.com/vi/OTi4-q-_Tj0/maxresdefault.jpg") },
|
||||
|
||||
{ "chat_noir_2", ("https://youtu.be/X-rJ01EyiAI?si=gH9m_U8oXI35OgWu",
|
||||
"https://img.youtube.com/vi/X-rJ01EyiAI/maxresdefault.jpg") },
|
||||
|
||||
{ "chat_noir_3", ("https://youtu.be/7lIM0wSx7kQ?si=S-RAsLzd4SiCQhE4",
|
||||
"https://img.youtube.com/vi/7lIM0wSx7kQ/maxresdefault.jpg") },
|
||||
|
||||
{ "chat_noir_4", ("https://youtu.be/dbxyKR1P8vA?si=aRzdYBhwvKptV8Ff",
|
||||
"https://img.youtube.com/vi/dbxyKR1P8vA/maxresdefault.jpg") },
|
||||
|
||||
{ "chat_noir_5", ("https://youtu.be/DDHvKo5NnII?si=NFRkdVQL2mELP0yn",
|
||||
"https://img.youtube.com/vi/DDHvKo5NnII/maxresdefault.jpg") },
|
||||
|
||||
{ "chat_noir_6", ("https://youtu.be/J9LgHNf2Qy0?si=YGO1ggiLkefa9901",
|
||||
"https://img.youtube.com/vi/J9LgHNf2Qy0/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") },
|
||||
{
|
||||
"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")
|
||||
},
|
||||
{
|
||||
"compagnie_creole_1", ("https://youtu.be/wfxt1SGWAI8",
|
||||
"https://img.youtube.com/vi/wfxt1SGWAI8/maxresdefault.jpg")
|
||||
},
|
||||
{
|
||||
"femto_1", ("https://open.spotify.com/intl-fr/track/0qYLUdJQMhrCFA9dNZGcnm?si=b4fd45727a354a31",
|
||||
"https://i.scdn.co/image/ab67616d0000b2738e8e7b8f8f8f8f8f8f8f8f8")
|
||||
},
|
||||
{
|
||||
"chat_noir_1", ("https://youtu.be/OTi4-q-_Tj0?si=SNnLd-6Y893nL5Au",
|
||||
"https://img.youtube.com/vi/OTi4-q-_Tj0/maxresdefault.jpg")
|
||||
},
|
||||
{
|
||||
"chat_noir_2", ("https://youtu.be/X-rJ01EyiAI?si=gH9m_U8oXI35OgWu",
|
||||
"https://img.youtube.com/vi/X-rJ01EyiAI/maxresdefault.jpg")
|
||||
},
|
||||
{
|
||||
"chat_noir_3", ("https://youtu.be/7lIM0wSx7kQ?si=S-RAsLzd4SiCQhE4",
|
||||
"https://img.youtube.com/vi/7lIM0wSx7kQ/maxresdefault.jpg")
|
||||
},
|
||||
{
|
||||
"chat_noir_4", ("https://youtu.be/dbxyKR1P8vA?si=aRzdYBhwvKptV8Ff",
|
||||
"https://img.youtube.com/vi/dbxyKR1P8vA/maxresdefault.jpg")
|
||||
},
|
||||
{
|
||||
"chat_noir_5", ("https://youtu.be/DDHvKo5NnII?si=NFRkdVQL2mELP0yn",
|
||||
"https://img.youtube.com/vi/DDHvKo5NnII/maxresdefault.jpg")
|
||||
},
|
||||
{
|
||||
"chat_noir_6", ("https://youtu.be/J9LgHNf2Qy0?si=YGO1ggiLkefa9901",
|
||||
"https://img.youtube.com/vi/J9LgHNf2Qy0/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>
|
||||
/// 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>
|
||||
/// <param name="count">Nombre d'artistes à générer</param>
|
||||
/// <returns>Liste d'artistes de musique générés</returns>
|
||||
/// <param name="count">Nombre d'artistes à générer.</param>
|
||||
/// <returns>Liste d'artistes de musique générés.</returns>
|
||||
public List<Artiste> GenerateArtists(int count)
|
||||
{
|
||||
var artists = new List<Artiste>();
|
||||
@@ -73,7 +90,7 @@ public class DataFactory
|
||||
IdArtiste = i + 1,
|
||||
Nom = Name.FullName(),
|
||||
Biographie = Lorem.Paragraph(),
|
||||
Titres = new List<Titre>()
|
||||
Titres = new List<Titre>(),
|
||||
});
|
||||
}
|
||||
|
||||
@@ -83,8 +100,8 @@ public class DataFactory
|
||||
/// <summary>
|
||||
/// Génère une liste de styles de musique à partir d'une liste prédéfinie de noms de styles.
|
||||
/// </summary>
|
||||
/// <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>
|
||||
/// <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>
|
||||
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" };
|
||||
@@ -106,15 +123,15 @@ public class DataFactory
|
||||
/// <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.
|
||||
/// </summary>
|
||||
/// <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="styles">Liste des styles à associer aux titres générés</param>
|
||||
/// <returns>Liste de titres de musique générés</returns>
|
||||
/// <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="styles">Liste des styles à associer aux titres générés.</param>
|
||||
/// <returns>Liste de titres de musique générés.</returns>
|
||||
public List<Titre> GenerateTitres(int count, List<Artiste> artists, List<Style> styles)
|
||||
{
|
||||
var titres = new List<Titre>();
|
||||
var random = new Random();
|
||||
var musicItems = RealMusicData.Values.ToList();
|
||||
var musicItems = this.RealMusicData.Values.ToList();
|
||||
|
||||
for (int i = 0; i < count; i++)
|
||||
{
|
||||
@@ -162,9 +179,9 @@ public class DataFactory
|
||||
/// <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.
|
||||
/// </summary>
|
||||
/// <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>
|
||||
/// <returns>Liste de commentaires générés</returns>
|
||||
/// <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>
|
||||
/// <returns>Liste de commentaires générés.</returns>
|
||||
public List<Commentaire> GenerateCommentaires(int count, List<Titre> titres)
|
||||
{
|
||||
var commentaires = new List<Commentaire>();
|
||||
@@ -181,7 +198,7 @@ public class DataFactory
|
||||
Auteur = Name.FullName(),
|
||||
DateCreation = DateTime.Now.AddDays(-random.Next(1, 30)), // Commentaires créés dans les 30 derniers jours
|
||||
IdTitre = randomTitre.IdTitre,
|
||||
Titre = randomTitre
|
||||
Titre = randomTitre,
|
||||
});
|
||||
|
||||
randomTitre.Commentaires.Add(commentaires.Last());
|
||||
|
||||
@@ -5,11 +5,11 @@
|
||||
namespace Webzine.Entity.Fixtures
|
||||
{
|
||||
using Bogus;
|
||||
|
||||
public class SeedDataLocal
|
||||
{
|
||||
public SeedDataLocal()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -41,8 +41,7 @@ namespace Webzine.Entity.Fixtures
|
||||
int count,
|
||||
List<Artiste> artistes,
|
||||
List<Style> styles,
|
||||
List<string> albums
|
||||
)
|
||||
List<string> albums)
|
||||
{
|
||||
Random random = new Random();
|
||||
int idStart = 1;
|
||||
|
||||
@@ -2,5 +2,4 @@ namespace Webzine.Entity.Fixtures;
|
||||
|
||||
public class SeedDataSpotify
|
||||
{
|
||||
|
||||
}
|
||||
@@ -5,8 +5,8 @@
|
||||
namespace Webzine.Entity.Fixtures
|
||||
{
|
||||
using Webzine.Entity;
|
||||
|
||||
public class StyleFactory
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,17 +1,18 @@
|
||||
using Bogus;
|
||||
using Faker;
|
||||
namespace Webzine.Repository.Fake
|
||||
{
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Bogus;
|
||||
using Faker;
|
||||
using Webzine.Entity;
|
||||
|
||||
namespace Webzine.Repository.Fake
|
||||
{
|
||||
/// <summary>
|
||||
/// Classe de fabrique pour générer des données factices (fake data) pour les entités Artiste et Titre.
|
||||
/// </summary>
|
||||
public static class FakeDataFactory
|
||||
{
|
||||
// https://cdn-images.dzcdn.net/images/cover/311bba0fc112d15f72c8b5a65f0456c1/1900x1900-000000-80-0-0.jpg",
|
||||
|
||||
/// <summary>
|
||||
/// Génère une liste d'artistes avec des données factices, incluant des titres associés à chaque artiste.
|
||||
/// </summary>
|
||||
@@ -28,7 +29,7 @@ namespace Webzine.Repository.Fake
|
||||
IdArtiste = i,
|
||||
Nom = Name.FullName(),
|
||||
Biographie = Lorem.Paragraph(),
|
||||
Titres = new List<Titre>()
|
||||
Titres = new List<Titre>(),
|
||||
});
|
||||
}
|
||||
|
||||
@@ -64,7 +65,7 @@ namespace Webzine.Repository.Fake
|
||||
NbLectures = RandomNumber.Next(0, 500),
|
||||
NbLikes = RandomNumber.Next(0, 200),
|
||||
Album = Lorem.Sentence(2),
|
||||
Commentaires = new List<Commentaire>()
|
||||
Commentaires = new List<Commentaire>(),
|
||||
};
|
||||
|
||||
titres.Add(titre);
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
namespace Webzine.Entity
|
||||
namespace Webzine.Entity
|
||||
{
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
/// <summary>
|
||||
/// Classe représentant un style de musique.
|
||||
/// </summary>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
namespace Webzine.Entity
|
||||
namespace Webzine.Entity
|
||||
{
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
/// <summary>
|
||||
/// 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.
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
namespace Webzine.Repository.Contracts
|
||||
{
|
||||
using Webzine.Entity;
|
||||
|
||||
/// <summary>
|
||||
/// Défini une interface <see cref="IArtisteRepository"/> pour gérer les opérations de base de données liées aux artistes.
|
||||
/// </summary>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
using Webzine.Entity;
|
||||
|
||||
namespace Webzine.Repository.Contracts
|
||||
{
|
||||
using Webzine.Entity;
|
||||
|
||||
public interface ICommentaireRepository
|
||||
{
|
||||
void Add(Commentaire commentaire);
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
using Webzine.Entity;
|
||||
|
||||
namespace Webzine.Repository.Contracts
|
||||
{
|
||||
using Webzine.Entity;
|
||||
|
||||
/// <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.
|
||||
/// </summary>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
using Webzine.Entity;
|
||||
|
||||
namespace Webzine.Repository.Contracts
|
||||
namespace Webzine.Repository.Contracts
|
||||
{
|
||||
using Webzine.Entity;
|
||||
|
||||
/// <summary>
|
||||
/// Interface qui définit les opérations de base pour la gestion des titres dans une source de données.
|
||||
/// </summary>
|
||||
|
||||
@@ -5,8 +5,10 @@
|
||||
namespace Webzine.Repository
|
||||
{
|
||||
using System.Data.Common;
|
||||
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.Extensions.Logging;
|
||||
|
||||
using Webzine.EntitiesContext;
|
||||
using Webzine.Entity;
|
||||
using Webzine.Repository.Contracts;
|
||||
@@ -17,7 +19,7 @@ namespace Webzine.Repository
|
||||
/// </summary>
|
||||
public class DbArtisteRepository : IArtisteRepository
|
||||
{
|
||||
private WebzineDbContext context;
|
||||
private readonly WebzineDbContext context;
|
||||
private readonly ILogger<LocalArtisteRepository> logger;
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Webzine.EntitiesContext;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Webzine.EntitiesContext;
|
||||
using Webzine.Entity;
|
||||
using Webzine.Repository.Contracts;
|
||||
|
||||
@@ -15,6 +15,7 @@ public class DbCommentaireRepository : ICommentaireRepository
|
||||
private readonly WebzineDbContext context;
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="DbCommentaireRepository"/> class.
|
||||
/// Initialisation de <see cref="DbCommentaireRepository"/>.
|
||||
/// </summary>
|
||||
/// <param name="logger">Le service de journalisation injecté pour suivre les opérations du repository.</param>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Webzine.EntitiesContext;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Webzine.EntitiesContext;
|
||||
using Webzine.Entity;
|
||||
using Webzine.Repository.Contracts;
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
using Webzine.Entity;
|
||||
|
||||
namespace Webzine.Repository
|
||||
namespace Webzine.Repository
|
||||
{
|
||||
using Webzine.Entity;
|
||||
|
||||
/// <summary>
|
||||
/// 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
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
namespace Webzine.Repository
|
||||
{
|
||||
using Microsoft.Extensions.Logging;
|
||||
|
||||
using Webzine.Entity;
|
||||
using Webzine.Repository.Contracts;
|
||||
|
||||
@@ -15,10 +16,10 @@ namespace Webzine.Repository
|
||||
public class LocalArtisteRepository : IArtisteRepository
|
||||
{
|
||||
private readonly ILogger<LocalArtisteRepository> logger;
|
||||
|
||||
// private readonly List<Artiste> artistes;
|
||||
private readonly InMemoryDataStore dataStore;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="LocalArtisteRepository"/> class.
|
||||
/// Est liéee à une liste d'artistes en local et utilise un logger pour enregistrer les opérations effectuées sur les artistes.
|
||||
@@ -28,6 +29,7 @@ namespace Webzine.Repository
|
||||
public LocalArtisteRepository(InMemoryDataStore dataStore, ILogger<LocalArtisteRepository> logger)
|
||||
{
|
||||
this.logger = logger;
|
||||
|
||||
// this.artistes = artistes;
|
||||
this.dataStore = dataStore;
|
||||
}
|
||||
|
||||
@@ -7,7 +7,9 @@ namespace Webzine.Repository
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
||||
using Microsoft.Extensions.Logging;
|
||||
|
||||
using Webzine.Entity;
|
||||
using Webzine.Repository.Contracts;
|
||||
|
||||
@@ -21,6 +23,7 @@ using Webzine.Repository.Contracts;
|
||||
private readonly InMemoryDataStore dataStore;
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="LocalCommentaireRepository"/> class.
|
||||
/// 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.
|
||||
/// </summary>
|
||||
|
||||
@@ -10,6 +10,7 @@ namespace Webzine.Repository;
|
||||
public class LocalStyleRepository : IStyleRepository
|
||||
{
|
||||
private readonly ILogger<LocalStyleRepository> logger;
|
||||
|
||||
// private readonly List<Style> styles;
|
||||
private readonly InMemoryDataStore dataStore;
|
||||
|
||||
|
||||
@@ -16,6 +16,7 @@ public class ArtisteController : Controller
|
||||
private readonly IArtisteRepository artisteRepository;
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="ArtisteController"/> class.
|
||||
/// Initialise une nouvelle instance de la classe <see cref="ArtisteController"/>.
|
||||
/// </summary>
|
||||
/// <param name="logger">Logger.</param>
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
namespace Webzine.WebApplication.Areas.Administration.Controllers
|
||||
{
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Webzine.Entity;
|
||||
using Webzine.Repository.Contracts;
|
||||
using Webzine.WebApplication.Areas.Administration.ViewModels.Commentaire;
|
||||
|
||||
namespace Webzine.WebApplication.Areas.Administration.Controllers
|
||||
{
|
||||
[Area("Administration")]
|
||||
public class CommentaireController : Controller
|
||||
{
|
||||
@@ -12,6 +12,7 @@ namespace Webzine.WebApplication.Areas.Administration.Controllers
|
||||
private readonly ICommentaireRepository commentaireRepository;
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="CommentaireController"/> class.
|
||||
/// Initialise une nouvelle instance de la classe <see cref="CommentaireController"/>.
|
||||
/// Utilise l'injection de dépendances pour récupérer le repository.
|
||||
/// </summary>
|
||||
@@ -37,10 +38,10 @@ namespace Webzine.WebApplication.Areas.Administration.Controllers
|
||||
// Initialisation du ViewModel
|
||||
var viewModel = new CommentaireViewModel
|
||||
{
|
||||
Commentaires = commentaires
|
||||
Commentaires = commentaires,
|
||||
};
|
||||
|
||||
return View(viewModel);
|
||||
return this.View(viewModel);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -58,10 +59,10 @@ namespace Webzine.WebApplication.Areas.Administration.Controllers
|
||||
Auteur = commentaire.Auteur,
|
||||
Contenu = commentaire.Contenu,
|
||||
DateCreation = commentaire.DateCreation,
|
||||
TitreLibelle = commentaire.Titre?.Libelle
|
||||
TitreLibelle = commentaire.Titre?.Libelle,
|
||||
};
|
||||
|
||||
return View(model);
|
||||
return this.View(model);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -79,7 +80,7 @@ namespace Webzine.WebApplication.Areas.Administration.Controllers
|
||||
this.commentaireRepository.Delete(commentaire);
|
||||
}
|
||||
|
||||
return RedirectToAction("Index");
|
||||
return this.RedirectToAction("Index");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -16,6 +16,7 @@ public class DashboardController : Controller
|
||||
private readonly ITitreRepository titreRepository;
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="DashboardController"/> class.
|
||||
/// Initialise une nouvelle instance de la classe <see cref="DashboardController"/>.
|
||||
/// </summary>
|
||||
/// <param name="logger">Service de journalisation injecté.</param>
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
namespace Webzine.WebApplication.Areas.Administration.Controllers
|
||||
{
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Webzine.Repository.Contracts;
|
||||
using Webzine.WebApplication.Areas.Administration.ViewModels.Style;
|
||||
|
||||
namespace Webzine.WebApplication.Areas.Administration.Controllers
|
||||
{
|
||||
/// <summary>
|
||||
/// Contrôleur pour la gestion des styles dans l'administration du webzine.
|
||||
/// </summary>
|
||||
@@ -14,6 +14,7 @@ namespace Webzine.WebApplication.Areas.Administration.Controllers
|
||||
private readonly IStyleRepository styleRepository;
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="StyleController"/> class.
|
||||
/// Initialise une nouvelle instance de la classe <see cref="StyleController"/>.
|
||||
/// </summary>
|
||||
/// <param name="logger">Service de journalisation injecté.</param>
|
||||
@@ -93,7 +94,7 @@ namespace Webzine.WebApplication.Areas.Administration.Controllers
|
||||
[HttpGet]
|
||||
public IActionResult Edit(int id)
|
||||
{
|
||||
var style = styleRepository.Find(id);
|
||||
var style = this.styleRepository.Find(id);
|
||||
|
||||
var model = new StyleEditViewModel
|
||||
{
|
||||
|
||||
@@ -18,8 +18,8 @@ public class TitreController : Controller
|
||||
private readonly IArtisteRepository artisteRepository;
|
||||
private readonly IStyleRepository styleRepository;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="TitreController"/> class.
|
||||
/// Initialise une nouvelle instance de la classe <see cref="TitreController"/>.
|
||||
/// </summary>
|
||||
/// <param name="logger">Service de journalisation injecté.</param>
|
||||
|
||||
@@ -9,10 +9,12 @@
|
||||
/// Définit l'identifiant de l'artiste.
|
||||
/// </summary>
|
||||
public int Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Définit le nom de l'artiste.
|
||||
/// </summary>
|
||||
public string Nom { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Définit la biographie de l'artiste.
|
||||
/// </summary>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// <copyright file="CommentaireViewModel.cs" company="Webzine">
|
||||
// Copyright (c) Webzine. All rights reserved.
|
||||
// <copyright file="CommentaireViewModel.cs" company="PlaceholderCompany">
|
||||
// Copyright (c) PlaceholderCompany. All rights reserved.
|
||||
// </copyright>
|
||||
|
||||
namespace Webzine.WebApplication.Areas.Administration.ViewModels.Commentaire
|
||||
|
||||
@@ -29,6 +29,7 @@ public class DashboardViewModel
|
||||
/// Définit l'identifiant de la biographie d'artiste la plus lue dans le webzine.
|
||||
/// </summary>
|
||||
public int IdMusiqueLaPlusJouee { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Définit le nom de la biographie d'artiste la plus lue dans le webzine.
|
||||
/// </summary>
|
||||
|
||||
@@ -1,20 +1,17 @@
|
||||
// <copyright file="StyleDeleteViewModel.cs" company="Webzine">
|
||||
// Copyright (c) Webzine. Tout droit réservé.
|
||||
// <copyright file="StyleCreateViewModel.cs" company="PlaceholderCompany">
|
||||
// Copyright (c) PlaceholderCompany. All rights reserved.
|
||||
// </copyright>
|
||||
|
||||
|
||||
namespace Webzine.WebApplication.Areas.Administration.ViewModels.Style
|
||||
{
|
||||
/// <summary>
|
||||
/// ViewModel pour la création d'un style en administration.
|
||||
/// </summary>
|
||||
|
||||
public class StyleCreateViewModel
|
||||
{
|
||||
/// <summary>
|
||||
/// Obtient ou définit le libellé du style.
|
||||
/// </summary>
|
||||
|
||||
public string Libelle { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -1,26 +1,22 @@
|
||||
// <copyright file="StyleDeleteViewModel.cs" company="Webzine">
|
||||
// Copyright (c) Webzine. Tout droit réservé.
|
||||
// <copyright file="StyleDeleteViewModel.cs" company="PlaceholderCompany">
|
||||
// Copyright (c) PlaceholderCompany. All rights reserved.
|
||||
// </copyright>
|
||||
|
||||
|
||||
namespace Webzine.WebApplication.Areas.Administration.ViewModels.Style
|
||||
{
|
||||
/// <summary>
|
||||
/// ViewModel pour la suppression d'un style en administration.
|
||||
/// </summary>
|
||||
|
||||
public class StyleDeleteViewModel
|
||||
{
|
||||
/// <summary>
|
||||
/// Obtient ou définit l'identifiant du style à supprimer.
|
||||
/// </summary>
|
||||
|
||||
public int IdStyle { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Obtient ou définit le libellé du style.
|
||||
/// </summary>
|
||||
|
||||
public string Libelle { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -1,27 +1,22 @@
|
||||
// <copyright file="StyleDeleteViewModel.cs" company="Webzine">
|
||||
// Copyright (c) Webzine. Tout droit réservé.
|
||||
// <copyright file="StyleEditViewModel.cs" company="PlaceholderCompany">
|
||||
// Copyright (c) PlaceholderCompany. All rights reserved.
|
||||
// </copyright>
|
||||
|
||||
|
||||
namespace Webzine.WebApplication.Areas.Administration.ViewModels.Style
|
||||
{
|
||||
/// <summary>
|
||||
/// ViewModel pour la modification d'un style en administration.
|
||||
/// </summary>
|
||||
|
||||
public class StyleEditViewModel
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// Obtient ou définit le libellé du style.
|
||||
/// </summary>
|
||||
|
||||
public int IdStyle { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Obtient ou définit le libellé du style.
|
||||
/// </summary>
|
||||
|
||||
public string Libelle { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -1,10 +1,11 @@
|
||||
// <copyright file="AccueilController.cs" company=" Equipe 1 - ">
|
||||
// Copyright (c) Equipe 1 - . All rights reserved.
|
||||
// <copyright file="AccueilController.cs" company="PlaceholderCompany">
|
||||
// Copyright (c) PlaceholderCompany. All rights reserved.
|
||||
// </copyright>
|
||||
|
||||
namespace Webzine.WebApplication.Controllers
|
||||
{
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
|
||||
using Webzine.Repository.Contracts;
|
||||
using Webzine.WebApplication.ViewModels.Accueil;
|
||||
|
||||
@@ -19,6 +20,7 @@ namespace Webzine.WebApplication.Controllers
|
||||
private readonly ITitreRepository titreRepository;
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="AccueilController"/> class.
|
||||
/// Initialise une nouvelle instance de la classe <see cref="AccueilController"/>.
|
||||
/// </summary>
|
||||
/// <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;
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="ApiController"/> class.
|
||||
/// Initialise une nouvelle instance de la classe <see cref="ApiController"/>.
|
||||
/// </summary>
|
||||
/// <param name="logger">Service de journalisation injecté pour enregistrer les événements et les erreurs.</param>
|
||||
@@ -25,7 +26,7 @@ public class ApiController : ControllerBase
|
||||
{
|
||||
this.logger.LogInformation("Get Version was called");
|
||||
|
||||
return Ok(new
|
||||
return this.Ok(new
|
||||
{
|
||||
nom = "webzine",
|
||||
version = "2.0",
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
namespace Webzine.WebApplication.Controllers
|
||||
{
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
|
||||
using Webzine.Entity.Fixtures;
|
||||
using Webzine.Repository.Contracts;
|
||||
using Webzine.WebApplication.ViewModels.Artiste;
|
||||
@@ -9,18 +10,20 @@
|
||||
{
|
||||
// Injection du logger via le constructeur
|
||||
private readonly ILogger<ArtisteController> logger;
|
||||
private readonly IArtisteRepository _artisteRepository;
|
||||
private readonly IArtisteRepository artisteRepository;
|
||||
|
||||
/// <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é.
|
||||
/// </summary>
|
||||
/// <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)
|
||||
{
|
||||
this.logger = logger;
|
||||
this.logger.LogDebug("Initialisation du ArtisteController");
|
||||
this._artisteRepository = artisteRepository;
|
||||
this.artisteRepository = artisteRepository;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -44,7 +47,7 @@
|
||||
.ToTitleCase(nom.Replace("-", " "));
|
||||
|
||||
// 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
|
||||
if (artiste == null)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
|
||||
namespace Webzine.WebApplication.Controllers
|
||||
namespace Webzine.WebApplication.Controllers
|
||||
{
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
|
||||
/// <summary>
|
||||
/// Controller pour la page contact.
|
||||
/// </summary>
|
||||
@@ -11,6 +11,7 @@ namespace Webzine.WebApplication.Controllers
|
||||
private readonly ILogger<ContactController> logger;
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="ContactController"/> class.
|
||||
/// Initialise une nouvelle instance de la classe <see cref="ContactController"/>.
|
||||
/// </summary>
|
||||
/// <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 (c) Equipe 1 - . All rights reserved.
|
||||
// <copyright file="RechercheController.cs" company="PlaceholderCompany">
|
||||
// Copyright (c) PlaceholderCompany. All rights reserved.
|
||||
// </copyright>
|
||||
|
||||
namespace Webzine.WebApplication.Controllers
|
||||
{
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
|
||||
using Webzine.Repository.Contracts;
|
||||
using Webzine.WebApplication.ViewModels.Recherche;
|
||||
using Webzine.WebApplication.ViewModels.Titre;
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
// <copyright file="TitreController.cs" company=" Equipe 1 - ">
|
||||
// Copyright (c) Equipe 1 - . All rights reserved.
|
||||
// <copyright file="TitreController.cs" company="PlaceholderCompany">
|
||||
// Copyright (c) PlaceholderCompany. All rights reserved.
|
||||
// </copyright>
|
||||
|
||||
namespace Webzine.WebApplication.Controllers
|
||||
{
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
|
||||
using Webzine.Entity;
|
||||
using Webzine.Repository.Contracts;
|
||||
using Webzine.WebApplication.ViewModels.Titre;
|
||||
@@ -21,6 +22,7 @@ namespace Webzine.WebApplication.Controllers
|
||||
private readonly ITitreRepository titreRepository;
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="TitreController"/> class.
|
||||
/// Initialise une nouvelle instance de la classe <see cref="TitreController"/>.
|
||||
/// </summary>
|
||||
/// <param name="logger">Service de journalisation injecte.</param>
|
||||
|
||||
@@ -18,6 +18,7 @@ try
|
||||
// Ajoute les services necessaires pour permettre l'utilisation des
|
||||
// controllers avec des vues.
|
||||
builder.Services.AddControllersWithViews()
|
||||
|
||||
// Ajoute la compilation des vues lors de l'execution de l'application.
|
||||
// Cela nous evite de recompiler l'application a chaque modification de vue.
|
||||
// Necessite le package Nuget Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation.
|
||||
@@ -42,6 +43,7 @@ try
|
||||
builder.Services.AddDbContext<WebzineDbContext>(options =>
|
||||
options.UseNpgsql(builder.Configuration.GetConnectionString("PostGreSQLConnection")));
|
||||
}
|
||||
|
||||
builder.Services.AddScoped<DbEntityRepository>();
|
||||
builder.Services.AddScoped<ITitreRepository, DbTitreRepository>();
|
||||
builder.Services.AddScoped<IStyleRepository, DbStyleRepository>();
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
namespace Webzine.WebApplication.ViewComponents
|
||||
{
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Webzine.Repository.Contracts;
|
||||
|
||||
namespace Webzine.WebApplication.ViewComponents
|
||||
{
|
||||
/// <summary>
|
||||
/// View component pour la sidebar, récupère les styles depuis le repository.
|
||||
/// </summary>
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
namespace Webzine.WebApplication.ViewModels.Artiste
|
||||
{
|
||||
using Webzine.Entity;
|
||||
|
||||
/// <summary>
|
||||
/// ViewModel pour afficher les informations d'un artiste et ses titres groupés par album.
|
||||
/// </summary>
|
||||
|
||||
Reference in New Issue
Block a user