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
*.db
*.db-shm
*.db-wal
*Migrations
*.sonarqube

@ -1,4 +1,5 @@
using System.ComponentModel.DataAnnotations;
using System.Collections.ObjectModel;
using System.ComponentModel.DataAnnotations;
namespace EFLol
{
@ -15,8 +16,8 @@ namespace EFLol
//public ChampionClass Class { get; set; }
//public string Icon { get; set; }
//public LargeImage Image { get; set; }
//public ReadOnlyCollection<Skin> Skins { get; private set; }
//public ReadOnlyDictionary<string, int> Characteristics { get; private set; }
//private HashSet<Skill> skills = new HashSet<Skill>();
public ReadOnlyCollection<SkinEntity> Skins { get; set; }
}
}

@ -10,6 +10,7 @@ namespace EFLol
public class MyDbContext : DbContext
{
public DbSet<ChampionEntity> Champions { get; set; }
public DbSet<SkinEntity> Skins { get; set; }
public MyDbContext()
{ }
@ -25,5 +26,12 @@ namespace EFLol
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",
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 })
};
ChampionEntity Poseidon = new ChampionEntity { Name = "Poseidon", Bio = "Poseidon is the god of the sea" };
using (var context = new ChampionContext())
using (var context = new MyDbContext())
{
Console.WriteLine("Adding Zeus to the database...");
context.Champions.Add(Zeus);
// Crée des champions et les insère dans la base
Console.WriteLine("Creates and inserts new Champions");
context.Add(Zeus);
context.Add(Hera);
context.Add(Poseidon);
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())
{
// Crée des nounours et les insère dans la base
Console.WriteLine("Creates and inserts new Nounours");
context.Add(chewie);
context.Add(yoda);
context.Add(ewok);
foreach (var n in context.Champions)
{
// Use LINQ to display the skins for each champion
var skins = from s in context.Skins
where n.Id == s.Id
select s;
Console.WriteLine($"Champion n°{n.Id} - {n.Name}");
}
context.SaveChanges();
}
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();
}

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

Loading…
Cancel
Save