mirror of
https://github.com/Nioux/AideDeJeu.git
synced 2025-12-18 08:10:33 +00:00
Async du get database path pour permettre création / copie async
This commit is contained in:
parent
7d72713cd4
commit
f1a726e6b1
9 changed files with 96 additions and 124 deletions
|
|
@ -2,6 +2,7 @@
|
||||||
using Android.Content.PM;
|
using Android.Content.PM;
|
||||||
using System;
|
using System;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
[assembly: Xamarin.Forms.Dependency(typeof(AideDeJeu.Droid.Version_Android))]
|
[assembly: Xamarin.Forms.Dependency(typeof(AideDeJeu.Droid.Version_Android))]
|
||||||
namespace AideDeJeu.Droid
|
namespace AideDeJeu.Droid
|
||||||
|
|
@ -27,7 +28,7 @@ namespace AideDeJeu.Droid
|
||||||
return info.VersionCode;
|
return info.VersionCode;
|
||||||
}
|
}
|
||||||
|
|
||||||
public string GetDatabasePath(string databaseName)
|
public async Task<string> GetDatabasePathAsync(string databaseName)
|
||||||
{
|
{
|
||||||
//string path = Environment.GetFolderPath(Environment.SpecialFolder.Personal);
|
//string path = Environment.GetFolderPath(Environment.SpecialFolder.Personal);
|
||||||
//string dbPath = Path.Combine(path, databaseName);
|
//string dbPath = Path.Combine(path, databaseName);
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
using AideDeJeu.Tools;
|
using AideDeJeu.Tools;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
|
using System.Threading.Tasks;
|
||||||
using Windows.ApplicationModel;
|
using Windows.ApplicationModel;
|
||||||
|
|
||||||
[assembly: Xamarin.Forms.Dependency(typeof(AideDeJeu.UWP.Version_UWP))]
|
[assembly: Xamarin.Forms.Dependency(typeof(AideDeJeu.UWP.Version_UWP))]
|
||||||
|
|
@ -22,7 +23,7 @@ namespace AideDeJeu.UWP
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
public string GetDatabasePath(string databaseName)
|
public async Task<string> GetDatabasePathAsync(string databaseName)
|
||||||
{
|
{
|
||||||
var documentsDirectoryPath = Windows.Storage.ApplicationData.Current.LocalFolder.Path;
|
var documentsDirectoryPath = Windows.Storage.ApplicationData.Current.LocalFolder.Path;
|
||||||
var path = Path.Combine(documentsDirectoryPath, databaseName);
|
var path = Path.Combine(documentsDirectoryPath, databaseName);
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
namespace AideDeJeu.Tools
|
namespace AideDeJeu.Tools
|
||||||
{
|
{
|
||||||
|
|
@ -8,6 +9,6 @@ namespace AideDeJeu.Tools
|
||||||
{
|
{
|
||||||
string GetVersion();
|
string GetVersion();
|
||||||
int GetBuild();
|
int GetBuild();
|
||||||
string GetDatabasePath(string databaseName);
|
Task<string> GetDatabasePathAsync(string databaseName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -59,7 +59,7 @@ namespace AideDeJeu.ViewModels
|
||||||
|
|
||||||
public async Task<IEnumerable<SearchedItem>> DeepSearchAllItemsAsync(string searchText)
|
public async Task<IEnumerable<SearchedItem>> DeepSearchAllItemsAsync(string searchText)
|
||||||
{
|
{
|
||||||
using (var context = new StoreViewModel.AideDeJeuContext())
|
using (var context = await StoreViewModel.GetDatabaseContextAsync())
|
||||||
{
|
{
|
||||||
var primary = await context.Items.
|
var primary = await context.Items.
|
||||||
Where(item => item.Name.Contains(searchText)).
|
Where(item => item.Name.Contains(searchText)).
|
||||||
|
|
|
||||||
|
|
@ -310,8 +310,6 @@ namespace AideDeJeu.ViewModels
|
||||||
public class VOSpellFilterViewModel : SpellFilterViewModel
|
public class VOSpellFilterViewModel : SpellFilterViewModel
|
||||||
{
|
{
|
||||||
public override async Task<IEnumerable<Item>> FilterItems(IEnumerable<Item> items, CancellationToken token = default)
|
public override async Task<IEnumerable<Item>> FilterItems(IEnumerable<Item> items, CancellationToken token = default)
|
||||||
{
|
|
||||||
return await Task.Run(() =>
|
|
||||||
{
|
{
|
||||||
var levelComparer = new LevelComparer();
|
var levelComparer = new LevelComparer();
|
||||||
var classe = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.Class).SelectedKey ?? "";
|
var classe = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.Class).SelectedKey ?? "";
|
||||||
|
|
@ -320,7 +318,7 @@ namespace AideDeJeu.ViewModels
|
||||||
var ecole = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.School).SelectedKey ?? "";
|
var ecole = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.School).SelectedKey ?? "";
|
||||||
var ritual = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.Ritual).SelectedKey ?? "";
|
var ritual = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.Ritual).SelectedKey ?? "";
|
||||||
var source = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.Source).SelectedKey ?? "";
|
var source = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.Source).SelectedKey ?? "";
|
||||||
using (var context = new StoreViewModel.AideDeJeuContext())
|
using (var context = await StoreViewModel.GetDatabaseContextAsync())
|
||||||
{
|
{
|
||||||
return context.SpellsVO.Where(spell =>
|
return context.SpellsVO.Where(spell =>
|
||||||
levelComparer.Compare(spell.Level, niveauMin) >= 0 &&
|
levelComparer.Compare(spell.Level, niveauMin) >= 0 &&
|
||||||
|
|
@ -334,7 +332,6 @@ namespace AideDeJeu.ViewModels
|
||||||
(Helpers.RemoveDiacritics(spell.AltNameText ?? string.Empty).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();
|
)).OrderBy(spell => spell.Name).ToList();
|
||||||
}
|
}
|
||||||
}, token);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public override List<KeyValuePair<string, string>> Classes { get; } = new List<KeyValuePair<string, string>>()
|
public override List<KeyValuePair<string, string>> Classes { get; } = new List<KeyValuePair<string, string>>()
|
||||||
|
|
@ -393,8 +390,6 @@ namespace AideDeJeu.ViewModels
|
||||||
public class HDSpellFilterViewModel : SpellFilterViewModel
|
public class HDSpellFilterViewModel : SpellFilterViewModel
|
||||||
{
|
{
|
||||||
public override async Task<IEnumerable<Item>> FilterItems(IEnumerable<Item> items, CancellationToken token = default)
|
public override async Task<IEnumerable<Item>> FilterItems(IEnumerable<Item> items, CancellationToken token = default)
|
||||||
{
|
|
||||||
return await Task.Run(() =>
|
|
||||||
{
|
{
|
||||||
var levelComparer = new LevelComparer();
|
var levelComparer = new LevelComparer();
|
||||||
var classe = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.Class).SelectedKey ?? "";
|
var classe = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.Class).SelectedKey ?? "";
|
||||||
|
|
@ -403,7 +398,7 @@ namespace AideDeJeu.ViewModels
|
||||||
var ecole = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.School).SelectedKey ?? "";
|
var ecole = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.School).SelectedKey ?? "";
|
||||||
var ritual = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.Ritual).SelectedKey ?? "";
|
var ritual = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.Ritual).SelectedKey ?? "";
|
||||||
var source = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.Source).SelectedKey ?? "";
|
var source = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.Source).SelectedKey ?? "";
|
||||||
using (var context = new StoreViewModel.AideDeJeuContext())
|
using (var context = await StoreViewModel.GetDatabaseContextAsync())
|
||||||
{
|
{
|
||||||
return context.SpellsHD.Where(spell =>
|
return context.SpellsHD.Where(spell =>
|
||||||
levelComparer.Compare(spell.Level, niveauMin) >= 0 &&
|
levelComparer.Compare(spell.Level, niveauMin) >= 0 &&
|
||||||
|
|
@ -417,7 +412,6 @@ namespace AideDeJeu.ViewModels
|
||||||
(Helpers.RemoveDiacritics(spell.AltNameText ?? string.Empty).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();
|
)).OrderBy(spell => spell.Name).ToList();
|
||||||
}
|
}
|
||||||
}, token);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public override List<KeyValuePair<string, string>> Classes { get; } = new List<KeyValuePair<string, string>>()
|
public override List<KeyValuePair<string, string>> Classes { get; } = new List<KeyValuePair<string, string>>()
|
||||||
|
|
@ -655,8 +649,6 @@ namespace AideDeJeu.ViewModels
|
||||||
public class VOMonsterFilterViewModel : MonsterFilterViewModel
|
public class VOMonsterFilterViewModel : MonsterFilterViewModel
|
||||||
{
|
{
|
||||||
public override async Task<IEnumerable<Item>> FilterItems(IEnumerable<Item> items, CancellationToken token = default)
|
public override async Task<IEnumerable<Item>> FilterItems(IEnumerable<Item> items, CancellationToken token = default)
|
||||||
{
|
|
||||||
return await Task.Run(() =>
|
|
||||||
{
|
{
|
||||||
var powerComparer = new PowerComparer();
|
var powerComparer = new PowerComparer();
|
||||||
|
|
||||||
|
|
@ -667,7 +659,7 @@ namespace AideDeJeu.ViewModels
|
||||||
var source = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.Source).SelectedKey ?? "";
|
var source = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.Source).SelectedKey ?? "";
|
||||||
token.ThrowIfCancellationRequested();
|
token.ThrowIfCancellationRequested();
|
||||||
|
|
||||||
using (var context = new StoreViewModel.AideDeJeuContext())
|
using (var context = await StoreViewModel.GetDatabaseContextAsync())
|
||||||
{
|
{
|
||||||
return context.MonstersVO.Where(monster =>
|
return context.MonstersVO.Where(monster =>
|
||||||
monster != null &&
|
monster != null &&
|
||||||
|
|
@ -680,9 +672,8 @@ namespace AideDeJeu.ViewModels
|
||||||
(Helpers.RemoveDiacritics(monster.Name).ToLower().Contains(Helpers.RemoveDiacritics(SearchText ?? string.Empty).ToLower())) ||
|
(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()))
|
(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);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -774,8 +765,6 @@ namespace AideDeJeu.ViewModels
|
||||||
public class HDMonsterFilterViewModel : MonsterFilterViewModel
|
public class HDMonsterFilterViewModel : MonsterFilterViewModel
|
||||||
{
|
{
|
||||||
public override async Task<IEnumerable<Item>> FilterItems(IEnumerable<Item> items, CancellationToken token = default)
|
public override async Task<IEnumerable<Item>> FilterItems(IEnumerable<Item> items, CancellationToken token = default)
|
||||||
{
|
|
||||||
return await Task.Run(() =>
|
|
||||||
{
|
{
|
||||||
var powerComparer = new PowerComparer();
|
var powerComparer = new PowerComparer();
|
||||||
|
|
||||||
|
|
@ -786,7 +775,7 @@ namespace AideDeJeu.ViewModels
|
||||||
var source = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.Source).SelectedKey ?? "";
|
var source = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.Source).SelectedKey ?? "";
|
||||||
token.ThrowIfCancellationRequested();
|
token.ThrowIfCancellationRequested();
|
||||||
|
|
||||||
using (var context = new StoreViewModel.AideDeJeuContext())
|
using (var context = await StoreViewModel.GetDatabaseContextAsync())
|
||||||
{
|
{
|
||||||
return context.MonstersHD.Where(monster =>
|
return context.MonstersHD.Where(monster =>
|
||||||
monster != null &&
|
monster != null &&
|
||||||
|
|
@ -799,9 +788,8 @@ namespace AideDeJeu.ViewModels
|
||||||
(Helpers.RemoveDiacritics(monster.Name).ToLower().Contains(Helpers.RemoveDiacritics(SearchText ?? string.Empty).ToLower())) ||
|
(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()))
|
(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<KeyValuePair<string, string>> Categories { get; } = new List<KeyValuePair<string, string>>()
|
public override List<KeyValuePair<string, string>> Categories { get; } = new List<KeyValuePair<string, string>>()
|
||||||
|
|
@ -914,15 +902,13 @@ namespace AideDeJeu.ViewModels
|
||||||
}
|
}
|
||||||
|
|
||||||
public override async Task<IEnumerable<Item>> FilterItems(IEnumerable<Item> items, CancellationToken token = default)
|
public override async Task<IEnumerable<Item>> FilterItems(IEnumerable<Item> items, CancellationToken token = default)
|
||||||
{
|
|
||||||
return await Task.Run(() =>
|
|
||||||
{
|
{
|
||||||
var priceComparer = new PriceComparer();
|
var priceComparer = new PriceComparer();
|
||||||
var type = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.Type).SelectedKey ?? "";
|
var type = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.Type).SelectedKey ?? "";
|
||||||
var minPrice = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.MinPrice).SelectedKey ?? "0 pc";
|
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";
|
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 =>
|
return context.Equipments.Where(equipment =>
|
||||||
equipment.Type.ToLower().Contains(type.ToLower()) &&
|
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()))
|
(Helpers.RemoveDiacritics(equipment.AltNameText ?? string.Empty).ToLower().Contains(Helpers.RemoveDiacritics(SearchText ?? string.Empty).ToLower()))
|
||||||
)
|
)
|
||||||
).OrderBy(eq => eq.Name)
|
).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<KeyValuePair<string, string>> Types { get; }
|
public abstract List<KeyValuePair<string, string>> Types { get; }
|
||||||
|
|
@ -1030,36 +1002,21 @@ namespace AideDeJeu.ViewModels
|
||||||
}
|
}
|
||||||
|
|
||||||
public override async Task<IEnumerable<Item>> FilterItems(IEnumerable<Item> items, CancellationToken token = default)
|
public override async Task<IEnumerable<Item>> FilterItems(IEnumerable<Item> items, CancellationToken token = default)
|
||||||
{
|
|
||||||
return await Task.Run(() =>
|
|
||||||
{
|
{
|
||||||
var priceComparer = new PriceComparer();
|
var priceComparer = new PriceComparer();
|
||||||
var type = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.Type).SelectedKey ?? "";
|
var type = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.Type).SelectedKey ?? "";
|
||||||
var rarity = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.Rarity).SelectedKey ?? "";
|
var rarity = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.Rarity).SelectedKey ?? "";
|
||||||
var attunement = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.Attunement).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 =>
|
return context.MagicItems.Where(magicitem =>
|
||||||
MatchContains(magicitem.Type, type) &&
|
MatchContains(magicitem.Type, type) &&
|
||||||
MatchContains(magicitem.Rarity, rarity) &&
|
MatchContains(magicitem.Rarity, rarity) &&
|
||||||
MatchContains(magicitem.Attunement, attunement) &&
|
MatchContains(magicitem.Attunement, attunement) &&
|
||||||
MatchSearch(magicitem)
|
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<KeyValuePair<string, string>> Types { get; }
|
public abstract List<KeyValuePair<string, string>> Types { get; }
|
||||||
|
|
|
||||||
|
|
@ -119,7 +119,7 @@ namespace AideDeJeu.ViewModels
|
||||||
{
|
{
|
||||||
if (Filter != null)
|
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());
|
Items = new Item(items.ToList());
|
||||||
Children = items;
|
Children = items;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -366,6 +366,7 @@ namespace AideDeJeu.ViewModels
|
||||||
|
|
||||||
public class AideDeJeuContext : DbContext
|
public class AideDeJeuContext : DbContext
|
||||||
{
|
{
|
||||||
|
public string DbPath { get; set; }
|
||||||
public DbSet<Item> Items { get; set; }
|
public DbSet<Item> Items { get; set; }
|
||||||
public DbSet<Equipment> Equipments { get; set; }
|
public DbSet<Equipment> Equipments { get; set; }
|
||||||
public DbSet<MagicItem> MagicItems { get; set; }
|
public DbSet<MagicItem> MagicItems { get; set; }
|
||||||
|
|
@ -376,10 +377,14 @@ namespace AideDeJeu.ViewModels
|
||||||
public DbSet<SpellVO> SpellsVO { get; set; }
|
public DbSet<SpellVO> SpellsVO { get; set; }
|
||||||
public DbSet<MonsterVO> MonstersVO { get; set; }
|
public DbSet<MonsterVO> MonstersVO { get; set; }
|
||||||
|
|
||||||
|
public AideDeJeuContext(string dbPath)
|
||||||
|
{
|
||||||
|
this.DbPath = dbPath;
|
||||||
|
}
|
||||||
|
|
||||||
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
|
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
|
||||||
{
|
{
|
||||||
var dbPath = DependencyService.Get<INativeAPI>().GetDatabasePath("database.db");
|
optionsBuilder.UseSqlite($"Data Source='{DbPath}'");
|
||||||
optionsBuilder.UseSqlite($"Data Source='{dbPath}'");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void OnModelCreating(ModelBuilder modelBuilder)
|
protected override void OnModelCreating(ModelBuilder modelBuilder)
|
||||||
|
|
@ -394,6 +399,12 @@ namespace AideDeJeu.ViewModels
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static async Task<AideDeJeuContext> GetDatabaseContextAsync()
|
||||||
|
{
|
||||||
|
var dbPath = await DependencyService.Get<INativeAPI>().GetDatabasePathAsync("database.db");
|
||||||
|
return new AideDeJeuContext(dbPath);
|
||||||
|
}
|
||||||
|
|
||||||
public async Task<Item> GetItemFromDataAsync(string source, string anchor)
|
public async Task<Item> GetItemFromDataAsync(string source, string anchor)
|
||||||
{
|
{
|
||||||
var id = $"{source}.md".TrimStart('/');
|
var id = $"{source}.md".TrimStart('/');
|
||||||
|
|
@ -401,7 +412,7 @@ namespace AideDeJeu.ViewModels
|
||||||
{
|
{
|
||||||
id += $"#{anchor}";
|
id += $"#{anchor}";
|
||||||
}
|
}
|
||||||
using (var context = new AideDeJeuContext())
|
using (var context = await GetDatabaseContextAsync())
|
||||||
{
|
{
|
||||||
return await context.Items.Where(item => item.Id == id).FirstOrDefaultAsync();
|
return await context.Items.Where(item => item.Id == id).FirstOrDefaultAsync();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
using AideDeJeu.Tools;
|
using AideDeJeu.Tools;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
[assembly: Xamarin.Forms.Dependency(typeof(AideDeJeu.Cmd.Version_CMD))]
|
[assembly: Xamarin.Forms.Dependency(typeof(AideDeJeu.Cmd.Version_CMD))]
|
||||||
namespace AideDeJeu.Cmd
|
namespace AideDeJeu.Cmd
|
||||||
|
|
@ -22,7 +23,7 @@ namespace AideDeJeu.Cmd
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
public string GetDatabasePath(string databaseName)
|
public async Task<string> GetDatabasePathAsync(string databaseName)
|
||||||
{
|
{
|
||||||
return Path.Combine(Path.GetDirectoryName(Assembly.GetEntryAssembly().Location), @"..\..\..\..\..\Data\" + databaseName);
|
return Path.Combine(Path.GetDirectoryName(Assembly.GetEntryAssembly().Location), @"..\..\..\..\..\Data\" + databaseName);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -300,7 +300,7 @@ namespace AideDeJeuCmd
|
||||||
var store = new StoreViewModel();
|
var store = new StoreViewModel();
|
||||||
await store.PreloadAllItemsAsync();
|
await store.PreloadAllItemsAsync();
|
||||||
|
|
||||||
using (var context = new StoreViewModel.AideDeJeuContext())
|
using (var context = await StoreViewModel.GetDatabaseContextAsync())
|
||||||
{
|
{
|
||||||
await context.Database.EnsureDeletedAsync();
|
await context.Database.EnsureDeletedAsync();
|
||||||
await context.Database.EnsureCreatedAsync();
|
await context.Database.EnsureCreatedAsync();
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue