Add skin entity for the champions
continuous-integration/drone/push Build is passing Details

pull/2/head
nathan boileau 2 years ago
parent 20cf92b636
commit 25e375f1a9

2
.gitignore vendored

@ -428,5 +428,7 @@ FodyWeavers.xsd
*.sln.iml *.sln.iml
*.db *.db
*.db-shm
*.db-wal
*Migrations *Migrations
*.sonarqube *.sonarqube

@ -1,4 +1,5 @@
using System.ComponentModel.DataAnnotations; using System.Collections.ObjectModel;
using System.ComponentModel.DataAnnotations;
namespace EFLol namespace EFLol
{ {
@ -12,11 +13,11 @@ namespace EFLol
[MaxLength(256, ErrorMessage = "Bio cannot be longer than 256 characters.")] [MaxLength(256, ErrorMessage = "Bio cannot be longer than 256 characters.")]
public string Bio { get; set; } public string Bio { get; set; }
//public ChampionClass Class { get; set; } //public ChampionClass Class { get; set; }
//public string Icon { get; set; } //public string Icon { get; set; }
//public LargeImage Image { get; set; } //public LargeImage Image { get; set; }
//public ReadOnlyCollection<Skin> Skins { get; private set; } //public ReadOnlyDictionary<string, int> Characteristics { get; private set; }
//public ReadOnlyDictionary<string, int> Characteristics { get; private set; } //private HashSet<Skill> skills = new HashSet<Skill>();
//private HashSet<Skill> skills = new HashSet<Skill>(); public ReadOnlyCollection<SkinEntity> Skins { get; set; }
} }
} }

@ -10,6 +10,7 @@ namespace EFLol
public class MyDbContext : DbContext public class MyDbContext : DbContext
{ {
public DbSet<ChampionEntity> Champions { get; set; } public DbSet<ChampionEntity> Champions { get; set; }
public DbSet<SkinEntity> Skins { get; set; }
public MyDbContext() public MyDbContext()
{ } { }
@ -25,5 +26,12 @@ namespace EFLol
optionsBuilder.UseSqlite("Data Source=loldb.db"); optionsBuilder.UseSqlite("Data Source=loldb.db");
} }
} }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<ChampionEntity>().Property(c => c.Id).ValueGeneratedOnAdd();
modelBuilder.Entity<SkinEntity>().Property(s => s.Id).ValueGeneratedOnAdd();
}
} }
} }

@ -1,37 +1,67 @@
using EFLol; using System.Collections.ObjectModel;
using EFLol;
/*ChampionEntity Zeus = new ChampionEntity
using (var context = new MyDbContext())
{
// Clean the DB before starting
Console.WriteLine("Clean the DB before starting");
context.Database.EnsureDeleted();
context.Database.EnsureCreated();
}
SkinEntity black = new SkinEntity { Name = "Black", Description = "Black skin", Icon = "black.png", Price = 0.99f };
SkinEntity white = new SkinEntity { Name = "White", Description = "White skin", Icon = "white.png", Price = 150.99f };
SkinEntity green = new SkinEntity { Name = "Green", Description = "Green skin", Icon = "green.png", Price = 4.99f };
ChampionEntity Zeus = new ChampionEntity
{ {
Name = "Zeus", Name = "Zeus",
Bio = "Zeus is the king of the gods." Bio = "Zeus is the god of the sky",
Skins = new ReadOnlyCollection<SkinEntity>(new List<SkinEntity> { black, white })
}; };
ChampionEntity Hera = new ChampionEntity
{
Name = "Hera",
Bio = "Hera is the goddess of marriage",
Skins = new ReadOnlyCollection<SkinEntity>(new List<SkinEntity> { green })
using (var context = new ChampionContext()) };
ChampionEntity Poseidon = new ChampionEntity { Name = "Poseidon", Bio = "Poseidon is the god of the sea" };
using (var context = new MyDbContext())
{ {
Console.WriteLine("Adding Zeus to the database..."); // Crée des champions et les insère dans la base
context.Champions.Add(Zeus); Console.WriteLine("Creates and inserts new Champions");
context.Add(Zeus);
context.Add(Hera);
context.Add(Poseidon);
context.SaveChanges(); context.SaveChanges();
}*/ }
ChampionEntity chewie = new ChampionEntity { Name = "Chewbacca", Bio = "Zeus is the king of the gods." };
ChampionEntity yoda = new ChampionEntity { Name = "Yoda", Bio = "Zeus is the king of the gods." };
ChampionEntity ewok = new ChampionEntity { Name = "Ewok" , Bio = "Zeus is the king of the gods." };
using (var context = new MyDbContext()) using (var context = new MyDbContext())
{ {
// Crée des nounours et les insère dans la base foreach (var n in context.Champions)
Console.WriteLine("Creates and inserts new Nounours"); {
context.Add(chewie); // Use LINQ to display the skins for each champion
context.Add(yoda); var skins = from s in context.Skins
context.Add(ewok); where n.Id == s.Id
context.SaveChanges(); select s;
Console.WriteLine($"Champion n°{n.Id} - {n.Name}");
}
context.SaveChanges();
} }
using (var context = new MyDbContext()) using (var context = new MyDbContext())
{ {
foreach (var n in context.Champions) foreach (var n in context.Skins)
{ {
Console.WriteLine($"{n.Id} - {n.Name}"); Console.WriteLine($"Skin n°{n.Id} - {n.Name}" + (n.Price != null ? $" - {n.Price}" : ""));
} }
context.SaveChanges(); context.SaveChanges();
} }

@ -8,9 +8,10 @@ namespace EFLol
{ {
public class SkinEntity public class SkinEntity
{ {
public String Name { get; set; } public int Id { get; set; }
public String Description { get; set; } public string Name { get; set; }
public String Icon { get; set; } public string Description { get; set; }
public string Icon { get; set; }
public float Price { get; set; } public float Price { get; set; }
} }
} }

Loading…
Cancel
Save