Arthur_More #7

Merged
arthur.valin merged 3 commits from Arthur_More into master 2 years ago

@ -17,39 +17,27 @@ namespace Business
public async Task<Champion?> AddItem(Champion? item) public async Task<Champion?> AddItem(Champion? item)
{ {
try await parent.DbContext.champions.AddAsync(item.ToEntity(parent.DbContext));
{ parent.DbContext.SaveChanges();
await parent.DbContext.champions.AddAsync(item.ToEntity(parent.DbContext));
parent.DbContext.SaveChanges();
}
catch(OperationCanceledException){}
catch(DbUpdateException) {}
return item; return item;
} }
public async Task<bool> DeleteItem(Champion? item) public async Task<bool> DeleteItem(Champion? item)
{ {
try var toDelete = parent.DbContext.champions.Find(item.Name);
{ if (toDelete!=null)
var toDelete = parent.DbContext.champions.Find(item.Name);
if (toDelete!=null)
{
parent.DbContext.champions.Remove(toDelete);
parent.DbContext.SaveChanges();
return true;
}
return false;
}
catch (DbUpdateException)
{ {
return false; parent.DbContext.champions.Remove(toDelete);
parent.DbContext.SaveChanges();
return true;
} }
return false;
} }
public async Task<IEnumerable<Champion?>> GetItems(int index, int count, string? orderingPropertyName = null, bool descending = false) public async Task<IEnumerable<Champion?>> GetItems(int index, int count, string? orderingPropertyName = null, bool descending = false)
{ {
Console.WriteLine("GET"); Console.WriteLine("GET");
return parent.DbContext.champions.GetItemsWithFilterAndOrdering( return parent.DbContext.champions.Include("Skills").Include("Characteristics").GetItemsWithFilterAndOrdering(
c => true, c => true,
index, count, index, count,
orderingPropertyName, descending).Select(c => c.ToModel()); orderingPropertyName, descending).Select(c => c.ToModel());
@ -58,7 +46,7 @@ namespace Business
public async Task<IEnumerable<Champion?>> GetItemsByCharacteristic(string charName, int index, int count, string? orderingPropertyName = null, bool descending = false) public async Task<IEnumerable<Champion?>> GetItemsByCharacteristic(string charName, int index, int count, string? orderingPropertyName = null, bool descending = false)
{ {
return parent.DbContext.champions.Include("Characteristics").GetItemsWithFilterAndOrdering( return parent.DbContext.champions.Include("Skills").Include("Characteristics").GetItemsWithFilterAndOrdering(
c => c.Characteristics.Any(ch => ch.Name.Equals(charName)), c => c.Characteristics.Any(ch => ch.Name.Equals(charName)),
index, count, index, count,
orderingPropertyName, descending).Select(c => c.ToModel()); orderingPropertyName, descending).Select(c => c.ToModel());
@ -66,7 +54,7 @@ namespace Business
public async Task<IEnumerable<Champion?>> GetItemsByClass(ChampionClass championClass, int index, int count, string? orderingPropertyName = null, bool descending = false) public async Task<IEnumerable<Champion?>> GetItemsByClass(ChampionClass championClass, int index, int count, string? orderingPropertyName = null, bool descending = false)
{ {
return parent.DbContext.champions.GetItemsWithFilterAndOrdering( return parent.DbContext.champions.Include("Skills").Include("Characteristics").GetItemsWithFilterAndOrdering(
c => c.Class.Equals(championClass), c => c.Class.Equals(championClass),
index, count, index, count,
orderingPropertyName, descending).Select(c => c.ToModel()); orderingPropertyName, descending).Select(c => c.ToModel());
@ -74,7 +62,7 @@ namespace Business
public async Task<IEnumerable<Champion?>> GetItemsByName(string substring, int index, int count, string? orderingPropertyName = null, bool descending = false) public async Task<IEnumerable<Champion?>> GetItemsByName(string substring, int index, int count, string? orderingPropertyName = null, bool descending = false)
{ {
return parent.DbContext.champions.GetItemsWithFilterAndOrdering( return parent.DbContext.champions.Include("Skills").Include("Characteristics").GetItemsWithFilterAndOrdering(
c => c.Name.Contains(substring), c => c.Name.Contains(substring),
index, count, index, count,
orderingPropertyName, descending).Select(c => c.ToModel()); orderingPropertyName, descending).Select(c => c.ToModel());
@ -83,7 +71,7 @@ namespace Business
public async Task<IEnumerable<Champion?>> GetItemsByRunePage(RunePage? runePage, int index, int count, string? orderingPropertyName = null, bool descending = false) public async Task<IEnumerable<Champion?>> GetItemsByRunePage(RunePage? runePage, int index, int count, string? orderingPropertyName = null, bool descending = false)
{ {
return parent.DbContext.champions.Include("runepages").GetItemsWithFilterAndOrdering( return parent.DbContext.champions.Include("Skills").Include("Characteristics").Include("runepages").GetItemsWithFilterAndOrdering(
c => c.runepages.Any(rp => rp.Equals(runePage.ToEntity(parent.DbContext))), c => c.runepages.Any(rp => rp.Equals(runePage.ToEntity(parent.DbContext))),
index, count, index, count,
orderingPropertyName, descending).Select(c => c.ToModel()); orderingPropertyName, descending).Select(c => c.ToModel());
@ -92,7 +80,7 @@ namespace Business
public async Task<IEnumerable<Champion?>> GetItemsBySkill(Skill? skill, int index, int count, string? orderingPropertyName = null, bool descending = false) public async Task<IEnumerable<Champion?>> GetItemsBySkill(Skill? skill, int index, int count, string? orderingPropertyName = null, bool descending = false)
{ {
return parent.DbContext.champions.GetItemsWithFilterAndOrdering( return parent.DbContext.champions.Include("Skills").Include("Characteristics").GetItemsWithFilterAndOrdering(
c => skill != null && c.Skills.Any(s => s.Name.Equals(skill.Name)), c => skill != null && c.Skills.Any(s => s.Name.Equals(skill.Name)),
index, count, index, count,
orderingPropertyName, descending).Select(c => c.ToModel()); orderingPropertyName, descending).Select(c => c.ToModel());
@ -100,7 +88,7 @@ namespace Business
public async Task<IEnumerable<Champion?>> GetItemsBySkill(string skill, int index, int count, string? orderingPropertyName = null, bool descending = false) public async Task<IEnumerable<Champion?>> GetItemsBySkill(string skill, int index, int count, string? orderingPropertyName = null, bool descending = false)
{ {
return parent.DbContext.champions.Include("Skills").GetItemsWithFilterAndOrdering( return parent.DbContext.champions.Include("Skills").Include("Characteristics").Include("Skills").GetItemsWithFilterAndOrdering(
c => skill != null && c.Skills.Any(s => s.Name.Equals(skill)), c => skill != null && c.Skills.Any(s => s.Name.Equals(skill)),
index, count, index, count,
orderingPropertyName, descending).Select(c => c.ToModel()); orderingPropertyName, descending).Select(c => c.ToModel());
@ -149,12 +137,8 @@ namespace Business
public async Task<Champion?> UpdateItem(Champion? oldItem, Champion? newItem) public async Task<Champion?> UpdateItem(Champion? oldItem, Champion? newItem)
{ {
var toUpdate = parent.DbContext.champions.Find(oldItem.Name); var toUpdate = parent.DbContext.champions.Find(oldItem.Name);
try toUpdate = newItem.ToEntity(parent.DbContext);
{ parent.DbContext.SaveChanges();
toUpdate = newItem.ToEntity(parent.DbContext);
parent.DbContext.SaveChanges();
}catch (DbUpdateException){}
return newItem; return newItem;
} }
} }

@ -16,39 +16,26 @@ namespace Business
public async Task<RunePage?> AddItem(RunePage? item) public async Task<RunePage?> AddItem(RunePage? item)
{ {
try await parent.DbContext.runepages.AddAsync(item.ToEntity(parent.DbContext));
{ parent.DbContext.SaveChanges();
await parent.DbContext.runepages.AddAsync(item.ToEntity(parent.DbContext));
parent.DbContext.SaveChanges();
}
catch (OperationCanceledException) { }
catch (DbUpdateException) { }
return item; return item;
} }
public async Task<bool> DeleteItem(RunePage? item) public async Task<bool> DeleteItem(RunePage? item)
{ {
var toDelete = parent.DbContext.runepages.Find(item.Name);
try if (toDelete != null)
{
var toDelete = parent.DbContext.runepages.Find(item.Name);
if (toDelete != null)
{
parent.DbContext.runepages.Remove(toDelete);
parent.DbContext.SaveChanges();
return true;
}
return false;
}
catch (DbUpdateException)
{ {
return false; parent.DbContext.runepages.Remove(toDelete);
parent.DbContext.SaveChanges();
return true;
} }
return false;
} }
public async Task<IEnumerable<RunePage?>> GetItems(int index, int count, string? orderingPropertyName = null, bool descending = false) public async Task<IEnumerable<RunePage?>> GetItems(int index, int count, string? orderingPropertyName = null, bool descending = false)
{ {
return parent.DbContext.runepages.GetItemsWithFilterAndOrdering( return parent.DbContext.runepages.Include("entries").GetItemsWithFilterAndOrdering(
rp => true, rp => true,
index, count, index, count,
orderingPropertyName, descending).Select(rp => rp.ToModel(parent.DbContext)); orderingPropertyName, descending).Select(rp => rp.ToModel(parent.DbContext));
@ -64,7 +51,7 @@ namespace Business
public async Task<IEnumerable<RunePage?>> GetItemsByName(string substring, int index, int count, string? orderingPropertyName = null, bool descending = false) public async Task<IEnumerable<RunePage?>> GetItemsByName(string substring, int index, int count, string? orderingPropertyName = null, bool descending = false)
{ {
return parent.DbContext.runepages.GetItemsWithFilterAndOrdering( return parent.DbContext.runepages.Include("entries").GetItemsWithFilterAndOrdering(
rp => rp.Name.Contains(substring), rp => rp.Name.Contains(substring),
index, count, index, count,
orderingPropertyName, descending).Select(rp => rp.ToModel(parent.DbContext)); orderingPropertyName, descending).Select(rp => rp.ToModel(parent.DbContext));
@ -104,8 +91,6 @@ namespace Business
{ {
var toUpdate = parent.DbContext.runepages.Include("entries") var toUpdate = parent.DbContext.runepages.Include("entries")
.Where(x => x.Name.Equals(newItem.Name)).First(); .Where(x => x.Name.Equals(newItem.Name)).First();
try
{
toUpdate.entries = newItem.Runes.Select(r => new RunePageRuneEntity() toUpdate.entries = newItem.Runes.Select(r => new RunePageRuneEntity()
{ {
category = r.Key, category = r.Key,
@ -114,8 +99,6 @@ namespace Business
parent.DbContext.SaveChanges(); parent.DbContext.SaveChanges();
}
catch (DbUpdateException) { }
return newItem; return newItem;
} }

@ -15,33 +15,21 @@ namespace Business
=> this.parent = parent; => this.parent = parent;
public async Task<Rune?> AddItem(Rune? item) public async Task<Rune?> AddItem(Rune? item)
{ {
try await parent.DbContext.runes.AddAsync(item.ToEntity(parent.DbContext));
{ parent.DbContext.SaveChanges();
await parent.DbContext.runes.AddAsync(item.ToEntity(parent.DbContext));
parent.DbContext.SaveChanges();
}
catch (OperationCanceledException) {}
catch (DbUpdateException) { }
return item; return item;
} }
public async Task<bool> DeleteItem(Rune? item) public async Task<bool> DeleteItem(Rune? item)
{ {
try var toDelete = parent.DbContext.runes.Find(item?.Name);
{ if (toDelete != null)
var toDelete = parent.DbContext.runes.Find(item?.Name);
if (toDelete != null)
{
parent.DbContext.runes.Remove(item?.ToEntity(parent.DbContext));
parent.DbContext.SaveChanges();
return true;
}
return false;
}
catch (DbUpdateException)
{ {
return false; parent.DbContext.runes.Remove(item?.ToEntity(parent.DbContext));
parent.DbContext.SaveChanges();
return true;
} }
return false;
} }
public async Task<IEnumerable<Rune?>> GetItems(int index, int count, string? orderingPropertyName = null, bool descending = false) public async Task<IEnumerable<Rune?>> GetItems(int index, int count, string? orderingPropertyName = null, bool descending = false)
@ -86,14 +74,10 @@ namespace Business
public async Task<Rune?> UpdateItem(Rune? oldItem, Rune? newItem) public async Task<Rune?> UpdateItem(Rune? oldItem, Rune? newItem)
{ {
var toUpdate = parent.DbContext.runes.Find(oldItem.Name); var toUpdate = parent.DbContext.runes.Find(oldItem.Name);
try
{
toUpdate.Description = newItem.Description; toUpdate.Description = newItem.Description;
toUpdate.RuneFamily = newItem.Family; toUpdate.RuneFamily = newItem.Family;
parent.DbContext.SaveChanges(); parent.DbContext.SaveChanges();
}
catch (DbUpdateException) {}
return newItem; return newItem;
} }
} }

@ -15,26 +15,17 @@ namespace Business
public async Task<Skin?> AddItem(Skin? item) public async Task<Skin?> AddItem(Skin? item)
{ {
try { await parent.DbContext.skins.AddAsync(item.ToEntity(parent.DbContext));
await parent.DbContext.skins.AddAsync(item.ToEntity(parent.DbContext)); parent.DbContext.SaveChanges();
parent.DbContext.SaveChanges();
}
catch(OperationCanceledException){}
catch(DbUpdateException) {}
return item; return item;
} }
public async Task<bool> DeleteItem(Skin? item) public async Task<bool> DeleteItem(Skin? item)
{ {
try { var toDelete = parent.DbContext.skins.Find(item.Name);
var toDelete = parent.DbContext.skins.Find(item.Name); parent.DbContext.skins.Remove(toDelete);
parent.DbContext.skins.Remove(toDelete); parent.DbContext.SaveChanges();
parent.DbContext.SaveChanges(); return true;
return true;
}
catch(DbUpdateException) {
return false;
}
} }
public async Task<IEnumerable<Skin?>> GetItems(int index, int count, string? orderingPropertyName = null, bool descending = false) public async Task<IEnumerable<Skin?>> GetItems(int index, int count, string? orderingPropertyName = null, bool descending = false)
@ -58,7 +49,7 @@ namespace Business
return parent.DbContext.skins.Include("Champion").GetItemsWithFilterAndOrdering( return parent.DbContext.skins.Include("Champion").GetItemsWithFilterAndOrdering(
s => s.Name.Contains(substring), s => s.Name.Contains(substring),
index, count, index, count,
orderingPropertyName, descending).Select(s => s?.ToModel()); orderingPropertyName, descending).Select(s => s.ToModel());
} }
public async Task<int> GetNbItems() public async Task<int> GetNbItems()
@ -85,12 +76,7 @@ namespace Business
public async Task<Skin?> UpdateItem(Skin? oldItem, Skin? newItem) public async Task<Skin?> UpdateItem(Skin? oldItem, Skin? newItem)
{ {
var toUpdate = parent.DbContext.skins.Find(oldItem.Name); var toUpdate = parent.DbContext.skins.Find(oldItem.Name);
try toUpdate.Champion = parent.DbContext.champions.Find(newItem.Champion.Name);
{
toUpdate.Champion = parent.DbContext.champions.Find(newItem.Champion.Name);
}
catch (DbUpdateException) { }
return newItem; return newItem;
} }
} }

@ -13,7 +13,8 @@ namespace Entities
[Required] [Required]
[MaxLength(500)] [MaxLength(500)]
public string Bio { get; set; } public string Bio { get; set; }
public string? Icon { get; set; } public string Icon { get; set; }
[Required] [Required]
public ChampionClass Class { get; set;} public ChampionClass Class { get; set;}
public virtual ICollection<SkillEntity> Skills { get; set; } public virtual ICollection<SkillEntity> Skills { get; set; }

@ -19,6 +19,8 @@ namespace Entities
[MaxLength(500)] [MaxLength(500)]
public string Description { get; set; } public string Description { get; set; }
public string Icon { get; set; }
[Required] [Required]
public RuneFamily RuneFamily { get; set; } public RuneFamily RuneFamily { get; set; }
public ICollection<RunePageRuneEntity>? runepages { get; set; } public ICollection<RunePageRuneEntity>? runepages { get; set; }

@ -30,7 +30,8 @@ namespace EntityMapper
public static Champion ToModel(this ChampionEntity entity) public static Champion ToModel(this ChampionEntity entity)
{ {
var champion = new Champion(entity.Name, entity.Class, entity.Icon, "", entity.Bio); var image = entity?.Image?.Base64 ?? "";
var champion = new Champion(entity?.Name ?? "", entity?.Class??Shared.ChampionClass.Unknown, entity?.Icon??"", image , entity?.Bio??"");
if(entity.Skills!=null) foreach(var s in entity.Skills){champion.AddSkill(s.ToModel());} if(entity.Skills!=null) foreach(var s in entity.Skills){champion.AddSkill(s.ToModel());}
if (entity.Characteristics != null) foreach (var c in entity.Characteristics){champion.AddCharacteristics(c.ToModel()); } if (entity.Characteristics != null) foreach (var c in entity.Characteristics){champion.AddCharacteristics(c.ToModel()); }
return champion; return champion;

@ -14,7 +14,9 @@ namespace EntityMapper
{ {
Name = item.Name, Name = item.Name,
Description = item.Description, Description = item.Description,
RuneFamily = item.Family RuneFamily = item.Family,
Icon = item.Icon,
Image = new() { Base64 = item.Image.Base64 },
}; };
} }
return runeEntity; return runeEntity;
@ -23,7 +25,8 @@ namespace EntityMapper
public static Rune ToModel(this RuneEntity entity) public static Rune ToModel(this RuneEntity entity)
{ {
return new Rune(entity.Name, entity.RuneFamily, "", "", entity.Description); var image = entity?.Image?.Base64 ?? "";
return new Rune(entity?.Name ?? "", entity?.RuneFamily??Shared.RuneFamily.Unknown, entity?.Icon ?? "", image, entity?.Description??"");
} }
} }

@ -15,14 +15,17 @@ namespace EntityMapper
ChampionForeignKey = item.Champion.Name, ChampionForeignKey = item.Champion.Name,
Description = item.Description, Description = item.Description,
Icon = item.Icon, Icon = item.Icon,
Image = null, Image = new() { Base64 = item.Image.Base64 },
Price = item.Price Price = item.Price
}; };
} }
public static Skin ToModel(this SkinEntity entity) public static Skin ToModel(this SkinEntity entity)
=> new(entity.Name, entity.Champion.ToModel(), entity.Price, null, entity.Description); {
var image = entity?.Image?.Base64 ?? "";
return new(entity?.Name ?? "", entity?.Champion?.ToModel()??new(""), entity?.Price??-1, image, entity?.Description??"");
}
} }
} }

Loading…
Cancel
Save