diff --git a/src/EntityFramework_LoL/Sources/ApiLol/Controllers/v2/ChampionsController.cs b/src/EntityFramework_LoL/Sources/ApiLol/Controllers/v2/ChampionsController.cs index a9ca793..e494e6e 100644 --- a/src/EntityFramework_LoL/Sources/ApiLol/Controllers/v2/ChampionsController.cs +++ b/src/EntityFramework_LoL/Sources/ApiLol/Controllers/v2/ChampionsController.cs @@ -41,7 +41,7 @@ namespace ApiLol.Controllers.v2 return BadRequest($"Champion limit exceed, max {nbTotal}"); } - IEnumerable dtos = (await _manager.ChampionsMgr.GetItems(pageRequest.index, pageRequest.count)) + IEnumerable dtos = (await _manager.ChampionsMgr.GetItems(pageRequest.index, pageRequest.count, pageRequest.orderingPropertyName, pageRequest.descending)) .Select(x => x.ToDto()); return Ok(dtos); } @@ -81,7 +81,7 @@ namespace ApiLol.Controllers.v2 dtos = (await _manager.ChampionsMgr.GetItemsByName(pageRequest.name, pageRequest.index, pageRequest.count, pageRequest.orderingPropertyName, pageRequest.descending)) .Select(x => x.ToDto()); } - return Ok(new PageResponse{ Data = dtos, index = pageRequest.index, count = pageRequest.count, total = nbTotal }); + return Ok(new PageResponse { Data = dtos, index = pageRequest.index, count = pageRequest.count, total = nbTotal }); } catch (Exception error) { diff --git a/src/EntityFramework_LoL/Sources/Client/ApiManager.Champions.cs b/src/EntityFramework_LoL/Sources/Client/ApiManager.Champions.cs new file mode 100644 index 0000000..06a50b5 --- /dev/null +++ b/src/EntityFramework_LoL/Sources/Client/ApiManager.Champions.cs @@ -0,0 +1,184 @@ +using ApiLol.Mapper; +using DTO; +using Model; +using System.Net.Http.Json; + +namespace ApiManager +{ + public partial class ApiManagerData + { + public class ChampionsManager : HttpClientManager, IChampionsManager + { + private const string UrlApiChampions = "/api/v2/champions"; + public ChampionsManager(HttpClient httpClient) : base(httpClient) { } + + public async Task AddItem(Champion? item) + { + try + { + var resp = await _httpClient.PostAsJsonAsync($"{UrlApiChampions}", item.ToDto()); + if (resp.IsSuccessStatusCode) + { + var createdItem = await resp.Content.ReadFromJsonAsync(); + return createdItem?.ToModel(); + } + else + { + return null; + } + } + catch (Exception ex) + { + Console.WriteLine($"Error adding champion: {ex.Message}"); + return null; + } + } + + public async Task DeleteItem(Champion? item) + { + try + { + var resp = await _httpClient.DeleteAsync($"{UrlApiChampions}/{item?.Name}"); + return resp.IsSuccessStatusCode; + } + catch (Exception ex) + { + Console.WriteLine($"Error deleting champion: {ex.Message}"); + return false; + } + } + + private Func filterByNameContains = (champ, substring) => champ.Name.Contains(substring, StringComparison.InvariantCultureIgnoreCase); + + private Func filterByName = (champ, substring) => champ.Name.Equals(substring, StringComparison.InvariantCultureIgnoreCase); + + public async Task> GetItemByName(string substring, int index, int count, string? orderingPropertyName = null, bool descending = false) + { + var response = await _httpClient.GetFromJsonAsync>(UrlApiChampions); + return response.Select(c => c.ToModel()).GetItemsWithFilterAndOrdering(champ => filterByName(champ, substring), index, count, orderingPropertyName, descending); + } + + public async Task> GetItems(int index, int count, string? orderingPropertyName = null, bool descending = false) + { + var url = $"{UrlApiChampions}?index={index}&count={count}&orderingPropertyName={orderingPropertyName}&descending={descending}"; + var response = await _httpClient.GetFromJsonAsync>(url); + return response.Select(c => c.ToModel()); + } + + private Func filterByCharacteristic = (champ, charName) => champ.Characteristics.Keys.Any(k => k.Contains(charName, StringComparison.InvariantCultureIgnoreCase)); + + public async Task> GetItemsByCharacteristic(string charName, int index, int count, string? orderingPropertyName = null, bool descending = false) + { + var response = await _httpClient.GetFromJsonAsync>(UrlApiChampions); + return response.Select(c => c.ToModel()).GetItemsWithFilterAndOrdering( + champ => filterByCharacteristic(champ, charName), + index, count, orderingPropertyName, descending); + } + + private Func filterByClass = (champ, championClass) => champ.Class == championClass; + + public async Task> GetItemsByClass(ChampionClass championClass, int index, int count, string? orderingPropertyName = null, bool descending = false) + { + var response = await _httpClient.GetFromJsonAsync>(UrlApiChampions); + return response.Select(c => c.ToModel()).GetItemsWithFilterAndOrdering( + champ => filterByClass(champ, championClass), + index, count, orderingPropertyName, descending); + } + + public async Task> GetItemsByName(string substring, int index, int count, string? orderingPropertyName = null, bool descending = false) + { + var response = await _httpClient.GetFromJsonAsync>(UrlApiChampions); + return response.Select(c => c.ToModel()).GetItemsWithFilterAndOrdering(champ => filterByNameContains(champ, substring), index, count, orderingPropertyName, descending); + } + + public async Task> GetItemsByRunePage(RunePage? runePage, int index, int count, string? orderingPropertyName = null, bool descending = false) + { + throw new NotImplementedException(); + } + + private Func filterBySkill = (champ, skill) => skill != null && champ.Skills.Contains(skill!); + + private static Func filterBySkillSubstring = (champ, skill) => champ.Skills.Any(s => s.Name.Contains(skill, StringComparison.InvariantCultureIgnoreCase)); + + public async Task> GetItemsBySkill(Skill? skill, int index, int count, string? orderingPropertyName = null, bool descending = false) + { + var response = await _httpClient.GetFromJsonAsync>(UrlApiChampions); + return response.Select(c => c.ToModel()).GetItemsWithFilterAndOrdering(champ => filterBySkill(champ, skill), index, count, orderingPropertyName, descending); + } + + public async Task> GetItemsBySkill(string skillSubstring, int index, int count, string? orderingPropertyName = null, bool descending = false) + { + var response = await _httpClient.GetFromJsonAsync>(UrlApiChampions); + return response.Select(c => c.ToModel()).GetItemsWithFilterAndOrdering(champ => filterBySkillSubstring(champ, skillSubstring), index, count, orderingPropertyName, descending); + } + + public async Task GetNbItems() + { + var response = await _httpClient.GetAsync("/countChampions"); + var content = await response.Content.ReadAsStringAsync(); + return int.Parse(content); + } + + public async Task GetNbItemsByCharacteristic(string charName) + { + var response = await _httpClient.GetFromJsonAsync>(UrlApiChampions); + return await response.GetNbItemsWithFilter(champ => filterByCharacteristic(champ.ToModel(), charName)); + + } + + public async Task GetNbItemsByClass(ChampionClass championClass) + { + var response = await _httpClient.GetFromJsonAsync>(UrlApiChampions); + return response.Where(c => c.Class.Equals(championClass)) + .Count(); + } + + public async Task GetNbItemsByName(string substring) + { + var response = await _httpClient.GetFromJsonAsync>(UrlApiChampions); + return response.Where(c => c.Name.Equals(substring)) + .Count(); + } + + public Task GetNbItemsByRunePage(RunePage? runePage) + { + throw new NotImplementedException(); + } + + public async Task GetNbItemsBySkill(Skill? skill) + { + var response = await _httpClient.GetFromJsonAsync>(UrlApiChampions); + return await response.GetNbItemsWithFilter(champ => filterBySkill(champ.ToModel(), skill)); + } + + public async Task GetNbItemsBySkill(string skill) + { + var response = await _httpClient.GetFromJsonAsync>(UrlApiChampions); + return await response.GetNbItemsWithFilter(champ => filterBySkillSubstring(champ.ToModel(), skill)); + } + + public async Task UpdateItem(Champion? oldItem, Champion? newItem) + { + try + { + var resp = await _httpClient.PutAsJsonAsync($"{UrlApiChampions}/{oldItem?.Name}", newItem.ToDto()); + if (resp.IsSuccessStatusCode) + { + var updatedItem = await resp.Content.ReadFromJsonAsync(); + return updatedItem?.ToModel(); + } + else + { + return null; + } + } + catch (Exception ex) + { + Console.WriteLine($"Error updating champion: {ex.Message}"); + return null; + } + } + + } + } +} diff --git a/src/EntityFramework_LoL/Sources/Client/ApiManager.RunePages.cs b/src/EntityFramework_LoL/Sources/Client/ApiManager.RunePages.cs new file mode 100644 index 0000000..699353f --- /dev/null +++ b/src/EntityFramework_LoL/Sources/Client/ApiManager.RunePages.cs @@ -0,0 +1,73 @@ +using Model; + +namespace ApiManager +{ + public partial class ApiManagerData + { + public class RunePagesManager : HttpClientManager, IRunePagesManager + { + private const string UrlApiRunePages = "/api/RunePages"; + public RunePagesManager(HttpClient httpClient) : base(httpClient) { } + + public Task AddItem(RunePage? item) + { + throw new NotImplementedException(); + } + + public Task DeleteItem(RunePage? item) + { + throw new NotImplementedException(); + } + + public Task> GetItemByName(string substring, int index, int count, string? orderingPropertyName = null, bool descending = false) + { + throw new NotImplementedException(); + } + + public Task> GetItems(int index, int count, string? orderingPropertyName = null, bool descending = false) + { + throw new NotImplementedException(); + } + + public Task> GetItemsByChampion(Champion? champion, int index, int count, string? orderingPropertyName = null, bool descending = false) + { + throw new NotImplementedException(); + } + + public Task> GetItemsByName(string substring, int index, int count, string? orderingPropertyName = null, bool descending = false) + { + throw new NotImplementedException(); + } + + public Task> GetItemsByRune(Rune? rune, int index, int count, string? orderingPropertyName = null, bool descending = false) + { + throw new NotImplementedException(); + } + + public Task GetNbItems() + { + throw new NotImplementedException(); + } + + public Task GetNbItemsByChampion(Champion? champion) + { + throw new NotImplementedException(); + } + + public Task GetNbItemsByName(string substring) + { + throw new NotImplementedException(); + } + + public Task GetNbItemsByRune(Rune? rune) + { + throw new NotImplementedException(); + } + + public Task UpdateItem(RunePage? oldItem, RunePage? newItem) + { + throw new NotImplementedException(); + } + } + } +} diff --git a/src/EntityFramework_LoL/Sources/Client/ApiManager.Runes.cs b/src/EntityFramework_LoL/Sources/Client/ApiManager.Runes.cs new file mode 100644 index 0000000..19fd81d --- /dev/null +++ b/src/EntityFramework_LoL/Sources/Client/ApiManager.Runes.cs @@ -0,0 +1,63 @@ +using Model; + +namespace ApiManager +{ + public partial class ApiManagerData + { + public class RunesManager : HttpClientManager, IRunesManager + { + private const string UrlApiRunes = "/api/runes"; + public RunesManager(HttpClient httpClient) : base(httpClient) { } + + public Task AddItem(Rune? item) + { + throw new NotImplementedException(); + } + + public Task DeleteItem(Rune? item) + { + throw new NotImplementedException(); + } + + public Task> GetItemByName(string substring, int index, int count, string? orderingPropertyName = null, bool descending = false) + { + throw new NotImplementedException(); + } + + public Task> GetItems(int index, int count, string? orderingPropertyName = null, bool descending = false) + { + throw new NotImplementedException(); + } + + public Task> GetItemsByFamily(RuneFamily family, int index, int count, string? orderingPropertyName = null, bool descending = false) + { + throw new NotImplementedException(); + } + + public Task> GetItemsByName(string substring, int index, int count, string? orderingPropertyName = null, bool descending = false) + { + throw new NotImplementedException(); + } + + public Task GetNbItems() + { + throw new NotImplementedException(); + } + + public Task GetNbItemsByFamily(RuneFamily family) + { + throw new NotImplementedException(); + } + + public Task GetNbItemsByName(string substring) + { + throw new NotImplementedException(); + } + + public Task UpdateItem(Rune? oldItem, Rune? newItem) + { + throw new NotImplementedException(); + } + } + } +} \ No newline at end of file diff --git a/src/EntityFramework_LoL/Sources/Client/ApiManager.Skins.cs b/src/EntityFramework_LoL/Sources/Client/ApiManager.Skins.cs new file mode 100644 index 0000000..487143c --- /dev/null +++ b/src/EntityFramework_LoL/Sources/Client/ApiManager.Skins.cs @@ -0,0 +1,63 @@ +using Model; + +namespace ApiManager +{ + public partial class ApiManagerData + { + public class SkinsManager : HttpClientManager, ISkinsManager + { + private const string UrlApiSkins = "/api/Skins"; + public SkinsManager(HttpClient httpClient) : base(httpClient) { } + + public Task AddItem(Skin? item) + { + throw new NotImplementedException(); + } + + public Task DeleteItem(Skin? item) + { + throw new NotImplementedException(); + } + + public Task> GetItemByName(string substring, int index, int count, string? orderingPropertyName = null, bool descending = false) + { + throw new NotImplementedException(); + } + + public Task> GetItems(int index, int count, string? orderingPropertyName = null, bool descending = false) + { + throw new NotImplementedException(); + } + + public Task> GetItemsByChampion(Champion? champion, int index, int count, string? orderingPropertyName = null, bool descending = false) + { + throw new NotImplementedException(); + } + + public Task> GetItemsByName(string substring, int index, int count, string? orderingPropertyName = null, bool descending = false) + { + throw new NotImplementedException(); + } + + public Task GetNbItems() + { + throw new NotImplementedException(); + } + + public Task GetNbItemsByChampion(Champion? champion) + { + throw new NotImplementedException(); + } + + public Task GetNbItemsByName(string substring) + { + throw new NotImplementedException(); + } + + public Task UpdateItem(Skin? oldItem, Skin? newItem) + { + throw new NotImplementedException(); + } + } + } +} diff --git a/src/EntityFramework_LoL/Sources/Client/ApiManager.csproj b/src/EntityFramework_LoL/Sources/Client/ApiManager.csproj index ea66df3..5a28375 100644 --- a/src/EntityFramework_LoL/Sources/Client/ApiManager.csproj +++ b/src/EntityFramework_LoL/Sources/Client/ApiManager.csproj @@ -1,7 +1,6 @@ - Exe net6.0 enable enable diff --git a/src/EntityFramework_LoL/Sources/Client/ApiManagerData.cs b/src/EntityFramework_LoL/Sources/Client/ApiManagerData.cs new file mode 100644 index 0000000..b6bf39c --- /dev/null +++ b/src/EntityFramework_LoL/Sources/Client/ApiManagerData.cs @@ -0,0 +1,24 @@ +using Model; + +namespace ApiManager +{ + public partial class ApiManagerData : IDataManager + { + public ApiManagerData(HttpClient httpClient) + { + ChampionsMgr = new ChampionsManager(httpClient); + SkinsMgr = new SkinsManager(httpClient); + RunesMgr = new RunesManager(httpClient); + RunePagesMgr = new RunePagesManager(httpClient); + + } + + public IChampionsManager ChampionsMgr { get; set; } + + public ISkinsManager SkinsMgr { get; set; } + + public IRunesManager RunesMgr { get; set; } + + public IRunePagesManager RunePagesMgr { get; set; } + } +} diff --git a/src/EntityFramework_LoL/Sources/Client/ChampionHttpClient.cs b/src/EntityFramework_LoL/Sources/Client/ChampionHttpClient.cs deleted file mode 100644 index c1e2f46..0000000 --- a/src/EntityFramework_LoL/Sources/Client/ChampionHttpClient.cs +++ /dev/null @@ -1,43 +0,0 @@ -using DTO; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Net.Http.Json; -using System.Text; -using System.Threading.Tasks; - -namespace Client -{ - public class ChampionHttpClient - { - private const string UrlApiChampions = "/api/v3/champions"; - private readonly HttpClient _httpClient; - public ChampionHttpClient(HttpClient httpClient) - { - _httpClient = httpClient; - httpClient.BaseAddress = new Uri("https://localhost:7252"); - } - - public async Task> GetChampion(int index, int count) - { - var url = $"{UrlApiChampions}?index={index}&count={count}"; - var Response = await _httpClient.GetFromJsonAsync>(url); - return Response.Data; - } - /* public async void Add(ChampionDto champion) - { - await _httpClient.PostAsJsonAsync(ApiChampions, champion); - }*/ - - /* public async void Delete(ChampionDto champion) - { - await _httpClient.DeleteAsync(champion.Name); - } - - public async void Update(ChampionDto champion) - { - await _httpClient.PutAsJsonAsync(ApiChampions, champion); - }*/ - - } -} diff --git a/src/EntityFramework_LoL/Sources/Client/Extensions.cs b/src/EntityFramework_LoL/Sources/Client/Extensions.cs new file mode 100644 index 0000000..48eee88 --- /dev/null +++ b/src/EntityFramework_LoL/Sources/Client/Extensions.cs @@ -0,0 +1,33 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace ApiManager +{ + static class Extensions + { + internal static IEnumerable GetItemsWithFilterAndOrdering(this IEnumerable collection, + Func filter, int index, int count, string? orderingPropertyName = null, bool descending = false) + { + IEnumerable temp = collection; + temp = temp.Where(item => filter(item)); + if (orderingPropertyName != null) + { + var prop = typeof(T).GetProperty(orderingPropertyName!); + if (prop != null) + { + temp = descending ? temp.OrderByDescending(item => prop.GetValue(item)) + : temp.OrderBy(item => prop.GetValue(item)); + } + } + return temp.Skip(index * count).Take(count); + } + + internal static Task GetNbItemsWithFilter(this IEnumerable collection, Func filter) + { + return Task.FromResult(collection.Count(item => filter(item))); + } + } +} diff --git a/src/EntityFramework_LoL/Sources/Client/HttpClientManager.cs b/src/EntityFramework_LoL/Sources/Client/HttpClientManager.cs new file mode 100644 index 0000000..e9de76a --- /dev/null +++ b/src/EntityFramework_LoL/Sources/Client/HttpClientManager.cs @@ -0,0 +1,19 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace ApiManager +{ + public class HttpClientManager + { + protected readonly HttpClient _httpClient; + + public HttpClientManager(HttpClient httpClient) + { + _httpClient = httpClient; + _httpClient.BaseAddress = new Uri("https://localhost:7252"); + } + } +} diff --git a/src/EntityFramework_LoL/Sources/Client/Program.cs b/src/EntityFramework_LoL/Sources/Client/Program.cs index 70ce525..e83d790 100644 --- a/src/EntityFramework_LoL/Sources/Client/Program.cs +++ b/src/EntityFramework_LoL/Sources/Client/Program.cs @@ -1,17 +1,16 @@ -// See https://aka.ms/new-console-template for more information -using Client; -using DTO; +/*// See https://aka.ms/new-console-template for more information +*//*using static ApiManager.ApiManagerData; Console.WriteLine("Hello, World!"); -var championClient = new ChampionHttpClient(new HttpClient()); +var championClient = new ChampionsManager(new HttpClient()); // Get all champions -var champions = await championClient.GetChampion(0,6); +var champions = await championClient.GetItems(0,6); Console.WriteLine("All champions:"); foreach (var champion in champions) { Console.WriteLine($"{champion.Name} ({champion.Bio})"); -} +}*/ /*// Add a new champion var newChampion = new ChampionDto { Name = "Akali", Role = "Assassin" }; @@ -34,6 +33,6 @@ if (championToUpdate != null) Console.WriteLine($"{championToUpdate.Name} updated."); } -*/ +*//* -Console.ReadLine(); \ No newline at end of file +Console.ReadLine();*/ \ No newline at end of file diff --git a/src/EntityFramework_LoL/Sources/DbManager/DbManager.RunePages.cs b/src/EntityFramework_LoL/Sources/DbManager/DbManager.RunePages.cs index efdfc20..1c13a0d 100644 --- a/src/EntityFramework_LoL/Sources/DbManager/DbManager.RunePages.cs +++ b/src/EntityFramework_LoL/Sources/DbManager/DbManager.RunePages.cs @@ -47,9 +47,12 @@ namespace DbLib index, count, orderingPropertyName, descending).Select(c => c.ToModel(parent.DbContext)); public async Task> GetItems(int index, int count, string? orderingPropertyName = null, bool descending = false) - => parent.DbContext.RunePages.Include(rp => rp.Champions).Include(rp => rp.DictionaryCategoryRunes).GetItemsWithFilterAndOrdering( + { + parent.DbContext.Runes.Include(r => r.Image); + return parent.DbContext.RunePages.Include(rp => rp.Champions).Include(rp => rp.DictionaryCategoryRunes).Include(rp => rp.DictionaryCategoryRunes).GetItemsWithFilterAndOrdering( rp => true, index, count, orderingPropertyName, descending).Select(c => c.ToModel(parent.DbContext)); + } public async Task> GetItemsByChampion(Champion? champion, int index, int count, string? orderingPropertyName = null, bool descending = false) => parent.DbContext.RunePages.Include(rp => rp.Champions).Include(rp => rp.DictionaryCategoryRunes).GetItemsWithFilterAndOrdering( diff --git a/src/EntityFramework_LoL/Sources/DbManager/DbManager.cs b/src/EntityFramework_LoL/Sources/DbManager/DbManager.cs index 8ad6f6b..d62622b 100644 --- a/src/EntityFramework_LoL/Sources/DbManager/DbManager.cs +++ b/src/EntityFramework_LoL/Sources/DbManager/DbManager.cs @@ -1,5 +1,4 @@ -using Microsoft.EntityFrameworkCore; -using Model; +using Model; using MyFlib; namespace DbLib diff --git a/src/EntityFramework_LoL/Sources/DbManager/DbManager.csproj b/src/EntityFramework_LoL/Sources/DbManager/DbManager.csproj index 48db0d4..84e1abb 100644 --- a/src/EntityFramework_LoL/Sources/DbManager/DbManager.csproj +++ b/src/EntityFramework_LoL/Sources/DbManager/DbManager.csproj @@ -1,7 +1,6 @@ - Exe net6.0 enable enable diff --git a/src/EntityFramework_LoL/Sources/DbManager/Mapper/ChampionMapper.cs b/src/EntityFramework_LoL/Sources/DbManager/Mapper/ChampionMapper.cs index 71755f5..d9a395b 100644 --- a/src/EntityFramework_LoL/Sources/DbManager/Mapper/ChampionMapper.cs +++ b/src/EntityFramework_LoL/Sources/DbManager/Mapper/ChampionMapper.cs @@ -15,7 +15,7 @@ namespace DbManager.Mapper } foreach (var skin in championEntity.Skins) { - champion.AddSkin(new Skin(skin.Name, champion, skin.Price, skin.Icon, skin.Image.Base64, skin.Description)); + champion.AddSkin(new Skin(skin.Name, champion, skin.Price, skin.Icon, "", skin.Description)); } if (championEntity.Characteristics != null) { diff --git a/src/EntityFramework_LoL/Sources/DbManager/Mapper/RuneMapper.cs b/src/EntityFramework_LoL/Sources/DbManager/Mapper/RuneMapper.cs index 788ce1e..744c73f 100644 --- a/src/EntityFramework_LoL/Sources/DbManager/Mapper/RuneMapper.cs +++ b/src/EntityFramework_LoL/Sources/DbManager/Mapper/RuneMapper.cs @@ -6,7 +6,7 @@ namespace DbManager.Mapper { public static class RuneMapper { - public static Rune ToModel(this RuneEntity rune) => new(rune.Name, rune.Family.ToModel(), rune.Icon, rune.Image.Base64, rune.Description); + public static Rune ToModel(this RuneEntity rune) => new(rune.Name, rune.Family.ToModel(), rune.Icon, "", rune.Description); public static RuneEntity ToEntity(this Rune rune) => new() { diff --git a/src/EntityFramework_LoL/Sources/DbManager/Mapper/RunePageMapper.cs b/src/EntityFramework_LoL/Sources/DbManager/Mapper/RunePageMapper.cs index d485243..a5d2025 100644 --- a/src/EntityFramework_LoL/Sources/DbManager/Mapper/RunePageMapper.cs +++ b/src/EntityFramework_LoL/Sources/DbManager/Mapper/RunePageMapper.cs @@ -1,4 +1,5 @@ using DbManager.Mapper.enums; +using Microsoft.EntityFrameworkCore; using Model; using MyFlib; using MyFlib.Entities; diff --git a/src/EntityFramework_LoL/Sources/DbManager/Program.cs b/src/EntityFramework_LoL/Sources/DbManager/Program.cs deleted file mode 100644 index 3751555..0000000 --- a/src/EntityFramework_LoL/Sources/DbManager/Program.cs +++ /dev/null @@ -1,2 +0,0 @@ -// See https://aka.ms/new-console-template for more information -Console.WriteLine("Hello, World!"); diff --git a/src/EntityFramework_LoL/Sources/LolApp/LolApp.csproj b/src/EntityFramework_LoL/Sources/LolApp/LolApp.csproj index ab4fa0c..cc14a27 100644 --- a/src/EntityFramework_LoL/Sources/LolApp/LolApp.csproj +++ b/src/EntityFramework_LoL/Sources/LolApp/LolApp.csproj @@ -82,6 +82,7 @@ +