diff --git a/.gitignore b/.gitignore index a1d490a..b5fad81 100644 --- a/.gitignore +++ b/.gitignore @@ -4,4 +4,6 @@ obj/ riderModule.iml /_ReSharper.Caches/ [Ll]ogs/ -.idea/ \ No newline at end of file +.idea/ +/vs/ +/.vs/ \ No newline at end of file diff --git a/Webzine.Entity.Tests/Webzine.Entity.Tests.csproj b/Webzine.Entity.Tests/Webzine.Entity.Tests.csproj index 2e335bf..d7e20a3 100644 --- a/Webzine.Entity.Tests/Webzine.Entity.Tests.csproj +++ b/Webzine.Entity.Tests/Webzine.Entity.Tests.csproj @@ -8,7 +8,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive @@ -16,7 +16,7 @@ - + @@ -25,4 +25,8 @@ + + + + diff --git a/Webzine.Entity/Artiste.cs b/Webzine.Entity/Artiste.cs new file mode 100644 index 0000000..257fe56 --- /dev/null +++ b/Webzine.Entity/Artiste.cs @@ -0,0 +1,27 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Text; +using System.Timers; + +namespace Webzine.Entity +{ + /// + /// Classe représentant un artiste. + /// Lien avec l'entité : un artiste peut avoir plusieurs titres, mais un titre n'a qu'un seul artiste. + /// + public class Artiste + { + public int IdArtiste { get; set; } + + [Required] + [MinLength(2)] + [MaxLength(50)] + [Display(Name = "Nom de l'artiste")] + public string Nom { get; set; } + + public string Biographie { get; set; } + + public List Titres { get; set; } + } +} diff --git a/Webzine.Entity/Commentaire.cs b/Webzine.Entity/Commentaire.cs new file mode 100644 index 0000000..36530b6 --- /dev/null +++ b/Webzine.Entity/Commentaire.cs @@ -0,0 +1,36 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Text; + +namespace Webzine.Entity +{ + /// + /// Classe représentant un commentaire laissé par un utilisateur sur un titre. + /// Lien avec l'entité : un titre peut avoir plusieurs commentaires, mais un commentaire n'a qu'un seul titre. + /// + public class Commentaire + { + public int IdCommentaire { get; set; } + + [Required] + [MinLength(10)] + [MaxLength(1000)] + [Display(Name = "Commentaire")] + public string Contenu { get; set; } + + [Required] + [MinLength(2)] + [MaxLength(30)] + [Display(Name = "Nom")] + public string Auteur { get; set; } + + [Required] + [Display(Name = "Date de création")] + public DateTime DateCreation { get; set; } + + public int IdTitre { get; set; } + + public Titre Titre { get; set; } + } +} diff --git a/Webzine.Entity/Style.cs b/Webzine.Entity/Style.cs new file mode 100644 index 0000000..11c6f32 --- /dev/null +++ b/Webzine.Entity/Style.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Text; + +namespace Webzine.Entity +{ + /// + /// Classe représentant un style de musique. + /// + public class Style + { + public int IdStyle { get; set; } + + [Required] + [MinLength(2)] + [MaxLength(50)] + [Display(Name = "Libellé")] + public string Libelle { get; set; } + + } +} diff --git a/Webzine.Entity/Titre.cs b/Webzine.Entity/Titre.cs new file mode 100644 index 0000000..2fd9671 --- /dev/null +++ b/Webzine.Entity/Titre.cs @@ -0,0 +1,67 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Text; + +namespace Webzine.Entity +{ + /// + /// Classe représentant un titre de musique. + /// Lien avec l'entité : un artiste peut avoir plusieurs titres, mais un titre n'a qu'un seul artiste. + /// Lien avec l'entité : un titre peut avoir plusieurs commentaires, mais un commentaire n'a qu'un seul titre. + /// + public class Titre + { + public int IdTitre { get; set; } + + public int IdArtiste { get; set; } + + public Artiste Artiste { get; set; } + + [Required] + [MinLength(1)] + [MaxLength(200)] + [Display(Name = "Titre")] + public string Libelle { get; set; } + + [Required] + [MinLength(10)] + [MaxLength(4000)] + public string Chronique { get; set; } + + [Required] + [Display(Name = "Date de création")] + public DateTime DateCreation { get; set; } + + [Display(Name = "Durée en secondes")] + public int Duree { get; set; } + + [Required] + [Display(Name = "Date de sortie")] + public DateTime DateSortie { get; set; } + + [Required] + [MaxLength(250)] + [Display(Name = "Jaquette de l'album")] + public string UrlJaquette { get; set; } + + [MinLength(13)] + [MaxLength(250)] + [Display(Name = "URL d'écoute")] + public string UrlEcoute { get; set; } + + [Required] + [Display(Name = "Nombre de lectures")] + public int NbLectures { get; set; } + + [Required] + [Display(Name = "Nombre de likes")] + public int NbLikes { get; set; } + + [Required] + public string Album { get; set; } + + public List Commentaires { get; set; } + + } + } diff --git a/Webzine.WebApplication/Webzine.WebApplication.csproj.user b/Webzine.WebApplication/Webzine.WebApplication.csproj.user new file mode 100644 index 0000000..9ff5820 --- /dev/null +++ b/Webzine.WebApplication/Webzine.WebApplication.csproj.user @@ -0,0 +1,6 @@ + + + + https + + \ No newline at end of file