From f1a726e6b117bcec68b5d470b6feb99230d5a419 Mon Sep 17 00:00:00 2001 From: Yan Maniez Date: Sat, 20 Oct 2018 21:57:17 +0200 Subject: [PATCH] =?UTF-8?q?Async=20du=20get=20database=20path=20pour=20per?= =?UTF-8?q?mettre=20cr=C3=A9ation=20/=20copie=20async?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AideDeJeu/AideDeJeu.Android/NativeAPI.cs | 3 +- AideDeJeu/AideDeJeu.UWP/NativeAPI.cs | 3 +- AideDeJeu/AideDeJeu/Tools/NativeAPI.cs | 3 +- .../ViewModels/DeepSearchViewModel.cs | 2 +- .../AideDeJeu/ViewModels/FilterViewModel.cs | 185 +++++++----------- .../AideDeJeu/ViewModels/ItemsViewModel.cs | 2 +- .../AideDeJeu/ViewModels/StoreViewModel.cs | 17 +- AideDeJeu/AideDeJeuCmd/NativeAPI.cs | 3 +- AideDeJeu/AideDeJeuCmd/Program.cs | 2 +- 9 files changed, 96 insertions(+), 124 deletions(-) diff --git a/AideDeJeu/AideDeJeu.Android/NativeAPI.cs b/AideDeJeu/AideDeJeu.Android/NativeAPI.cs index 043dd2e8..382f0fca 100644 --- a/AideDeJeu/AideDeJeu.Android/NativeAPI.cs +++ b/AideDeJeu/AideDeJeu.Android/NativeAPI.cs @@ -2,6 +2,7 @@ using Android.Content.PM; using System; using System.IO; +using System.Threading.Tasks; [assembly: Xamarin.Forms.Dependency(typeof(AideDeJeu.Droid.Version_Android))] namespace AideDeJeu.Droid @@ -27,7 +28,7 @@ namespace AideDeJeu.Droid return info.VersionCode; } - public string GetDatabasePath(string databaseName) + public async Task GetDatabasePathAsync(string databaseName) { //string path = Environment.GetFolderPath(Environment.SpecialFolder.Personal); //string dbPath = Path.Combine(path, databaseName); diff --git a/AideDeJeu/AideDeJeu.UWP/NativeAPI.cs b/AideDeJeu/AideDeJeu.UWP/NativeAPI.cs index 621dae66..169e6daf 100644 --- a/AideDeJeu/AideDeJeu.UWP/NativeAPI.cs +++ b/AideDeJeu/AideDeJeu.UWP/NativeAPI.cs @@ -1,6 +1,7 @@ using AideDeJeu.Tools; using System.IO; using System.Reflection; +using System.Threading.Tasks; using Windows.ApplicationModel; [assembly: Xamarin.Forms.Dependency(typeof(AideDeJeu.UWP.Version_UWP))] @@ -22,7 +23,7 @@ namespace AideDeJeu.UWP return 0; } - public string GetDatabasePath(string databaseName) + public async Task GetDatabasePathAsync(string databaseName) { var documentsDirectoryPath = Windows.Storage.ApplicationData.Current.LocalFolder.Path; var path = Path.Combine(documentsDirectoryPath, databaseName); diff --git a/AideDeJeu/AideDeJeu/Tools/NativeAPI.cs b/AideDeJeu/AideDeJeu/Tools/NativeAPI.cs index 14ebd250..06b8f9f5 100644 --- a/AideDeJeu/AideDeJeu/Tools/NativeAPI.cs +++ b/AideDeJeu/AideDeJeu/Tools/NativeAPI.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Text; +using System.Threading.Tasks; namespace AideDeJeu.Tools { @@ -8,6 +9,6 @@ namespace AideDeJeu.Tools { string GetVersion(); int GetBuild(); - string GetDatabasePath(string databaseName); + Task GetDatabasePathAsync(string databaseName); } } diff --git a/AideDeJeu/AideDeJeu/ViewModels/DeepSearchViewModel.cs b/AideDeJeu/AideDeJeu/ViewModels/DeepSearchViewModel.cs index 51d91a5f..b59880b2 100644 --- a/AideDeJeu/AideDeJeu/ViewModels/DeepSearchViewModel.cs +++ b/AideDeJeu/AideDeJeu/ViewModels/DeepSearchViewModel.cs @@ -59,7 +59,7 @@ namespace AideDeJeu.ViewModels public async Task> DeepSearchAllItemsAsync(string searchText) { - using (var context = new StoreViewModel.AideDeJeuContext()) + using (var context = await StoreViewModel.GetDatabaseContextAsync()) { var primary = await context.Items. Where(item => item.Name.Contains(searchText)). diff --git a/AideDeJeu/AideDeJeu/ViewModels/FilterViewModel.cs b/AideDeJeu/AideDeJeu/ViewModels/FilterViewModel.cs index 4aedcddc..8b4ef08b 100644 --- a/AideDeJeu/AideDeJeu/ViewModels/FilterViewModel.cs +++ b/AideDeJeu/AideDeJeu/ViewModels/FilterViewModel.cs @@ -165,7 +165,7 @@ namespace AideDeJeu.ViewModels return items.Where(item => { var spell = item; - return + return ( (Helpers.RemoveDiacritics(spell.Name).ToLower().Contains(Helpers.RemoveDiacritics(SearchText ?? string.Empty).ToLower())) || (Helpers.RemoveDiacritics(spell.AltNameText ?? string.Empty).ToLower().Contains(Helpers.RemoveDiacritics(SearchText ?? string.Empty).ToLower())) @@ -311,30 +311,27 @@ namespace AideDeJeu.ViewModels { public override async Task> FilterItems(IEnumerable items, CancellationToken token = default) { - return await Task.Run(() => + var levelComparer = new LevelComparer(); + var classe = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.Class).SelectedKey ?? ""; + var niveauMin = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.MinLevel).SelectedKey ?? "0"; + var niveauMax = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.MaxLevel).SelectedKey ?? "9"; + var ecole = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.School).SelectedKey ?? ""; + var ritual = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.Ritual).SelectedKey ?? ""; + var source = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.Source).SelectedKey ?? ""; + using (var context = await StoreViewModel.GetDatabaseContextAsync()) { - var levelComparer = new LevelComparer(); - var classe = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.Class).SelectedKey ?? ""; - var niveauMin = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.MinLevel).SelectedKey ?? "0"; - var niveauMax = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.MaxLevel).SelectedKey ?? "9"; - var ecole = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.School).SelectedKey ?? ""; - var ritual = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.Ritual).SelectedKey ?? ""; - var source = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.Source).SelectedKey ?? ""; - using (var context = new StoreViewModel.AideDeJeuContext()) - { - return context.SpellsVO.Where(spell => - levelComparer.Compare(spell.Level, niveauMin) >= 0 && - levelComparer.Compare(spell.Level, niveauMax) <= 0 && - spell.Type.ToLower().Contains(ecole.ToLower()) && - (spell.Source != null && spell.Source.Contains(source)) && - (spell.Classes != null && spell.Classes.Contains(classe)) && - (string.IsNullOrEmpty(ritual) || (spell.Ritual != null && spell.Ritual.Contains(ritual))) && - ( - (Helpers.RemoveDiacritics(spell.Name).ToLower().Contains(Helpers.RemoveDiacritics(SearchText ?? string.Empty).ToLower())) || - (Helpers.RemoveDiacritics(spell.AltNameText ?? string.Empty).ToLower().Contains(Helpers.RemoveDiacritics(SearchText ?? string.Empty).ToLower())) - )).OrderBy(spell => spell.Name).ToList(); - } - }, token); + return context.SpellsVO.Where(spell => + levelComparer.Compare(spell.Level, niveauMin) >= 0 && + levelComparer.Compare(spell.Level, niveauMax) <= 0 && + spell.Type.ToLower().Contains(ecole.ToLower()) && + (spell.Source != null && spell.Source.Contains(source)) && + (spell.Classes != null && spell.Classes.Contains(classe)) && + (string.IsNullOrEmpty(ritual) || (spell.Ritual != null && spell.Ritual.Contains(ritual))) && + ( + (Helpers.RemoveDiacritics(spell.Name).ToLower().Contains(Helpers.RemoveDiacritics(SearchText ?? string.Empty).ToLower())) || + (Helpers.RemoveDiacritics(spell.AltNameText ?? string.Empty).ToLower().Contains(Helpers.RemoveDiacritics(SearchText ?? string.Empty).ToLower())) + )).OrderBy(spell => spell.Name).ToList(); + } } public override List> Classes { get; } = new List>() @@ -394,30 +391,27 @@ namespace AideDeJeu.ViewModels { public override async Task> FilterItems(IEnumerable items, CancellationToken token = default) { - return await Task.Run(() => + var levelComparer = new LevelComparer(); + var classe = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.Class).SelectedKey ?? ""; + var niveauMin = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.MinLevel).SelectedKey ?? "0"; + var niveauMax = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.MaxLevel).SelectedKey ?? "9"; + var ecole = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.School).SelectedKey ?? ""; + var ritual = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.Ritual).SelectedKey ?? ""; + var source = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.Source).SelectedKey ?? ""; + using (var context = await StoreViewModel.GetDatabaseContextAsync()) { - var levelComparer = new LevelComparer(); - var classe = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.Class).SelectedKey ?? ""; - var niveauMin = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.MinLevel).SelectedKey ?? "0"; - var niveauMax = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.MaxLevel).SelectedKey ?? "9"; - var ecole = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.School).SelectedKey ?? ""; - var ritual = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.Ritual).SelectedKey ?? ""; - var source = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.Source).SelectedKey ?? ""; - using (var context = new StoreViewModel.AideDeJeuContext()) - { - return context.SpellsHD.Where(spell => - levelComparer.Compare(spell.Level, niveauMin) >= 0 && - levelComparer.Compare(spell.Level, niveauMax) <= 0 && - spell.Type.ToLower().Contains(ecole.ToLower()) && - (spell.Source != null && spell.Source.Contains(source)) && - (spell.Classes != null && spell.Classes.Contains(classe)) && - (string.IsNullOrEmpty(ritual) || (spell.Ritual != null && spell.Ritual.Contains(ritual))) && - ( - (Helpers.RemoveDiacritics(spell.Name).ToLower().Contains(Helpers.RemoveDiacritics(SearchText ?? string.Empty).ToLower())) || - (Helpers.RemoveDiacritics(spell.AltNameText ?? string.Empty).ToLower().Contains(Helpers.RemoveDiacritics(SearchText ?? string.Empty).ToLower())) - )).OrderBy(spell => spell.Name).ToList(); - } - }, token); + return context.SpellsHD.Where(spell => + levelComparer.Compare(spell.Level, niveauMin) >= 0 && + levelComparer.Compare(spell.Level, niveauMax) <= 0 && + spell.Type.ToLower().Contains(ecole.ToLower()) && + (spell.Source != null && spell.Source.Contains(source)) && + (spell.Classes != null && spell.Classes.Contains(classe)) && + (string.IsNullOrEmpty(ritual) || (spell.Ritual != null && spell.Ritual.Contains(ritual))) && + ( + (Helpers.RemoveDiacritics(spell.Name).ToLower().Contains(Helpers.RemoveDiacritics(SearchText ?? string.Empty).ToLower())) || + (Helpers.RemoveDiacritics(spell.AltNameText ?? string.Empty).ToLower().Contains(Helpers.RemoveDiacritics(SearchText ?? string.Empty).ToLower())) + )).OrderBy(spell => spell.Name).ToList(); + } } public override List> Classes { get; } = new List>() @@ -656,33 +650,30 @@ namespace AideDeJeu.ViewModels { public override async Task> FilterItems(IEnumerable items, CancellationToken token = default) { - return await Task.Run(() => + var powerComparer = new PowerComparer(); + + var type = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.Type).SelectedKey ?? ""; + var minPower = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.MinPower).SelectedKey ?? "0 (0 PX)"; + var maxPower = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.MaxPower).SelectedKey ?? "30 (155000 PX)"; + var size = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.Size).SelectedKey ?? ""; + var source = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.Source).SelectedKey ?? ""; + token.ThrowIfCancellationRequested(); + + using (var context = await StoreViewModel.GetDatabaseContextAsync()) { - var powerComparer = new PowerComparer(); - - var type = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.Type).SelectedKey ?? ""; - var minPower = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.MinPower).SelectedKey ?? "0 (0 PX)"; - var maxPower = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.MaxPower).SelectedKey ?? "30 (155000 PX)"; - var size = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.Size).SelectedKey ?? ""; - var source = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.Source).SelectedKey ?? ""; - token.ThrowIfCancellationRequested(); - - using (var context = new StoreViewModel.AideDeJeuContext()) - { - return context.MonstersVO.Where(monster => - monster != null && - monster.Type.Contains(type) && - (string.IsNullOrEmpty(size) || monster.Size.Equals(size)) && - (string.IsNullOrEmpty(source) || (monster.Source != null && monster.Source.Contains(source))) && - powerComparer.Compare(monster.Challenge, minPower) >= 0 && - powerComparer.Compare(monster.Challenge, maxPower) <= 0 && - ( - (Helpers.RemoveDiacritics(monster.Name).ToLower().Contains(Helpers.RemoveDiacritics(SearchText ?? string.Empty).ToLower())) || - (Helpers.RemoveDiacritics(monster.AltNameText ?? string.Empty).ToLower().Contains(Helpers.RemoveDiacritics(SearchText ?? string.Empty).ToLower())) - ) - ).OrderBy(monster => monster.Name).ToListAsync(); - } - }, token); + return context.MonstersVO.Where(monster => + monster != null && + monster.Type.Contains(type) && + (string.IsNullOrEmpty(size) || monster.Size.Equals(size)) && + (string.IsNullOrEmpty(source) || (monster.Source != null && monster.Source.Contains(source))) && + powerComparer.Compare(monster.Challenge, minPower) >= 0 && + powerComparer.Compare(monster.Challenge, maxPower) <= 0 && + ( + (Helpers.RemoveDiacritics(monster.Name).ToLower().Contains(Helpers.RemoveDiacritics(SearchText ?? string.Empty).ToLower())) || + (Helpers.RemoveDiacritics(monster.AltNameText ?? string.Empty).ToLower().Contains(Helpers.RemoveDiacritics(SearchText ?? string.Empty).ToLower())) + ) + ).OrderBy(monster => monster.Name).ToList(); + } } @@ -775,8 +766,6 @@ namespace AideDeJeu.ViewModels { public override async Task> FilterItems(IEnumerable items, CancellationToken token = default) { - return await Task.Run(() => - { var powerComparer = new PowerComparer(); var type = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.Type).SelectedKey ?? ""; @@ -786,7 +775,7 @@ namespace AideDeJeu.ViewModels var source = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.Source).SelectedKey ?? ""; token.ThrowIfCancellationRequested(); - using (var context = new StoreViewModel.AideDeJeuContext()) + using (var context = await StoreViewModel.GetDatabaseContextAsync()) { return context.MonstersHD.Where(monster => monster != null && @@ -799,9 +788,8 @@ namespace AideDeJeu.ViewModels (Helpers.RemoveDiacritics(monster.Name).ToLower().Contains(Helpers.RemoveDiacritics(SearchText ?? string.Empty).ToLower())) || (Helpers.RemoveDiacritics(monster.AltNameText ?? string.Empty).ToLower().Contains(Helpers.RemoveDiacritics(SearchText ?? string.Empty).ToLower())) ) - ).OrderBy(monster => monster.Name).ToListAsync(); + ).OrderBy(monster => monster.Name).ToList(); } - }, token); } public override List> Categories { get; } = new List>() @@ -915,14 +903,12 @@ namespace AideDeJeu.ViewModels public override async Task> FilterItems(IEnumerable items, CancellationToken token = default) { - return await Task.Run(() => - { var priceComparer = new PriceComparer(); var type = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.Type).SelectedKey ?? ""; var minPrice = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.MinPrice).SelectedKey ?? "0 pc"; var maxPrice = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.MaxPrice).SelectedKey ?? "1 000 000 po"; - using (var context = new AideDeJeuContext()) + using (var context = await GetDatabaseContextAsync()) { return context.Equipments.Where(equipment => equipment.Type.ToLower().Contains(type.ToLower()) && @@ -933,22 +919,8 @@ namespace AideDeJeu.ViewModels (Helpers.RemoveDiacritics(equipment.AltNameText ?? string.Empty).ToLower().Contains(Helpers.RemoveDiacritics(SearchText ?? string.Empty).ToLower())) ) ).OrderBy(eq => eq.Name) - .ToListAsync(); + .ToList(); } - //return items.Where(item => - //{ - // var equipment = item as Equipment; - // return equipment.Type.ToLower().Contains(type.ToLower()) && - // priceComparer.Compare(equipment.Price, minPrice) >= 0 && - // priceComparer.Compare(equipment.Price, maxPrice) <= 0 && - // ( - // (Helpers.RemoveDiacritics(equipment.Name).ToLower().Contains(Helpers.RemoveDiacritics(SearchText ?? string.Empty).ToLower())) || - // (Helpers.RemoveDiacritics(equipment.AltNameText ?? string.Empty).ToLower().Contains(Helpers.RemoveDiacritics(SearchText ?? string.Empty).ToLower())) - // ); - //}).OrderBy(eq => eq.Name) - // .AsEnumerable(); - }, token); - } public abstract List> Types { get; } @@ -1031,35 +1003,20 @@ namespace AideDeJeu.ViewModels public override async Task> FilterItems(IEnumerable items, CancellationToken token = default) { - return await Task.Run(() => - { var priceComparer = new PriceComparer(); var type = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.Type).SelectedKey ?? ""; var rarity = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.Rarity).SelectedKey ?? ""; var attunement = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.Attunement).SelectedKey ?? ""; - using (var context = new AideDeJeuContext()) + using (var context = await GetDatabaseContextAsync()) { return context.MagicItems.Where(magicitem => - MatchContains(magicitem.Type, type) && + MatchContains(magicitem.Type, type) && MatchContains(magicitem.Rarity, rarity) && MatchContains(magicitem.Attunement, attunement) && MatchSearch(magicitem) - ).OrderBy(eq => eq.Name).ToListAsync(); + ).OrderBy(eq => eq.Name).ToList(); } - - //return items.Where(item => - //{ - // var magicitem = item as MagicItem; - // if (magicitem == null) return false; - // var matchType = MatchContains(magicitem.Type, type); - // var matchRarity = MatchContains(magicitem.Rarity, rarity); - // var matchAttunement = MatchContains(magicitem.Attunement, attunement); - // var matchSearch = MatchSearch(magicitem); - // return matchType && matchRarity && matchAttunement && matchSearch; - //}).OrderBy(eq => eq.Name).AsEnumerable(); - }, token); - } public abstract List> Types { get; } diff --git a/AideDeJeu/AideDeJeu/ViewModels/ItemsViewModel.cs b/AideDeJeu/AideDeJeu/ViewModels/ItemsViewModel.cs index 409deef4..13ca734b 100644 --- a/AideDeJeu/AideDeJeu/ViewModels/ItemsViewModel.cs +++ b/AideDeJeu/AideDeJeu/ViewModels/ItemsViewModel.cs @@ -119,7 +119,7 @@ namespace AideDeJeu.ViewModels { if (Filter != null) { - var items = await Filter.FilterItems(await AllItems.GetChildrenAsync(), cancellationToken: cancellationToken); + var items = await Task.Run(async() => await Filter.FilterItems(await AllItems.GetChildrenAsync(), cancellationToken: cancellationToken)); Items = new Item(items.ToList()); Children = items; } diff --git a/AideDeJeu/AideDeJeu/ViewModels/StoreViewModel.cs b/AideDeJeu/AideDeJeu/ViewModels/StoreViewModel.cs index d33130cb..3f1809d8 100644 --- a/AideDeJeu/AideDeJeu/ViewModels/StoreViewModel.cs +++ b/AideDeJeu/AideDeJeu/ViewModels/StoreViewModel.cs @@ -366,6 +366,7 @@ namespace AideDeJeu.ViewModels public class AideDeJeuContext : DbContext { + public string DbPath { get; set; } public DbSet Items { get; set; } public DbSet Equipments { get; set; } public DbSet MagicItems { get; set; } @@ -376,10 +377,14 @@ namespace AideDeJeu.ViewModels public DbSet SpellsVO { get; set; } public DbSet MonstersVO { get; set; } + public AideDeJeuContext(string dbPath) + { + this.DbPath = dbPath; + } + protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { - var dbPath = DependencyService.Get().GetDatabasePath("database.db"); - optionsBuilder.UseSqlite($"Data Source='{dbPath}'"); + optionsBuilder.UseSqlite($"Data Source='{DbPath}'"); } protected override void OnModelCreating(ModelBuilder modelBuilder) @@ -394,6 +399,12 @@ namespace AideDeJeu.ViewModels } } + public static async Task GetDatabaseContextAsync() + { + var dbPath = await DependencyService.Get().GetDatabasePathAsync("database.db"); + return new AideDeJeuContext(dbPath); + } + public async Task GetItemFromDataAsync(string source, string anchor) { var id = $"{source}.md".TrimStart('/'); @@ -401,7 +412,7 @@ namespace AideDeJeu.ViewModels { id += $"#{anchor}"; } - using (var context = new AideDeJeuContext()) + using (var context = await GetDatabaseContextAsync()) { return await context.Items.Where(item => item.Id == id).FirstOrDefaultAsync(); } diff --git a/AideDeJeu/AideDeJeuCmd/NativeAPI.cs b/AideDeJeu/AideDeJeuCmd/NativeAPI.cs index 153df151..c4822b85 100644 --- a/AideDeJeu/AideDeJeuCmd/NativeAPI.cs +++ b/AideDeJeu/AideDeJeuCmd/NativeAPI.cs @@ -1,6 +1,7 @@ using AideDeJeu.Tools; using System.IO; using System.Reflection; +using System.Threading.Tasks; [assembly: Xamarin.Forms.Dependency(typeof(AideDeJeu.Cmd.Version_CMD))] namespace AideDeJeu.Cmd @@ -22,7 +23,7 @@ namespace AideDeJeu.Cmd return 0; } - public string GetDatabasePath(string databaseName) + public async Task GetDatabasePathAsync(string databaseName) { return Path.Combine(Path.GetDirectoryName(Assembly.GetEntryAssembly().Location), @"..\..\..\..\..\Data\" + databaseName); } diff --git a/AideDeJeu/AideDeJeuCmd/Program.cs b/AideDeJeu/AideDeJeuCmd/Program.cs index a62c731d..14f2b593 100644 --- a/AideDeJeu/AideDeJeuCmd/Program.cs +++ b/AideDeJeu/AideDeJeuCmd/Program.cs @@ -300,7 +300,7 @@ namespace AideDeJeuCmd var store = new StoreViewModel(); await store.PreloadAllItemsAsync(); - using (var context = new StoreViewModel.AideDeJeuContext()) + using (var context = await StoreViewModel.GetDatabaseContextAsync()) { await context.Database.EnsureDeletedAsync(); await context.Database.EnsureCreatedAsync();