diff --git a/AideDeJeu/AideDeJeu.Android/AideDeJeu.Android.csproj b/AideDeJeu/AideDeJeu.Android/AideDeJeu.Android.csproj index 1ffedc4e..c53b9000 100644 --- a/AideDeJeu/AideDeJeu.Android/AideDeJeu.Android.csproj +++ b/AideDeJeu/AideDeJeu.Android/AideDeJeu.Android.csproj @@ -73,6 +73,12 @@ 1.5.231 + + 4.5.0 + + + 4.5.1 + 3.2.0.871581 diff --git a/AideDeJeu/AideDeJeu.Android/NativeAPI.cs b/AideDeJeu/AideDeJeu.Android/NativeAPI.cs index 903ab93e..043dd2e8 100644 --- a/AideDeJeu/AideDeJeu.Android/NativeAPI.cs +++ b/AideDeJeu/AideDeJeu.Android/NativeAPI.cs @@ -29,36 +29,36 @@ namespace AideDeJeu.Droid public string GetDatabasePath(string databaseName) { - string path = Environment.GetFolderPath(Environment.SpecialFolder.Personal); - string dbPath = Path.Combine(path, databaseName); - return dbPath; - //var documentsDirectoryPath = System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal); - //var path = Path.Combine(documentsDirectoryPath, databaseName); + //string path = Environment.GetFolderPath(Environment.SpecialFolder.Personal); + //string dbPath = Path.Combine(path, databaseName); + //return dbPath; + var documentsDirectoryPath = System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal); + var path = Path.Combine(documentsDirectoryPath, databaseName); - //// This is where we copy in our pre-created database - //if (!File.Exists(path)) - //{ - // using (var inStream = Android.App.Application.Context.Assets.Open(databaseName)) - // { - // using (var outStream = new FileStream(path, FileMode.Create)) - // { - // inStream.CopyTo(outStream); - // } - // } - // //using (var binaryReader = new BinaryReader(Android.App.Application.Context.Assets.Open(databaseName))) - // //{ - // // using (var binaryWriter = new BinaryWriter(new FileStream(path, FileMode.Create))) - // // { - // // byte[] buffer = new byte[2048]; - // // int length = 0; - // // while ((length = binaryReader.Read(buffer, 0, buffer.Length)) > 0) - // // { - // // binaryWriter.Write(buffer, 0, length); - // // } - // // } - // //} - //} - //return path; + // This is where we copy in our pre-created database + if (!File.Exists(path)) + { + using (var inStream = Android.App.Application.Context.Assets.Open(databaseName)) + { + using (var outStream = new FileStream(path, FileMode.Create)) + { + inStream.CopyTo(outStream); + } + } + //using (var binaryReader = new BinaryReader(Android.App.Application.Context.Assets.Open(databaseName))) + //{ + // using (var binaryWriter = new BinaryWriter(new FileStream(path, FileMode.Create))) + // { + // byte[] buffer = new byte[2048]; + // int length = 0; + // while ((length = binaryReader.Read(buffer, 0, buffer.Length)) > 0) + // { + // binaryWriter.Write(buffer, 0, length); + // } + // } + //} + } + return path; } } } \ No newline at end of file diff --git a/AideDeJeu/AideDeJeu/ViewModels/StoreViewModel.cs b/AideDeJeu/AideDeJeu/ViewModels/StoreViewModel.cs index 33e632e2..b5e73888 100644 --- a/AideDeJeu/AideDeJeu/ViewModels/StoreViewModel.cs +++ b/AideDeJeu/AideDeJeu/ViewModels/StoreViewModel.cs @@ -354,6 +354,7 @@ namespace AideDeJeu.ViewModels { var anchors = new Dictionary(); //MakeAnchors(source, anchors, item); + item.Id = $"{source}.md"; _AllItems[source] = item; } } @@ -365,38 +366,43 @@ namespace AideDeJeu.ViewModels public class AideDeJeuContext : DbContext { + public DbSet Items { get; set; } + public DbSet Equipments { get; set; } public DbSet Spells { get; set; } public DbSet Monsters { get; set; } - //private static bool _created = false; - //public AideDeJeuContext() - //{ - // if (!_created) - // { - // _created = true; - // Database.EnsureDeleted(); - // Database.EnsureCreated(); - // } - //} - protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { var dbPath = DependencyService.Get().GetDatabasePath("database.db"); optionsBuilder.UseSqlite($"Data Source='{dbPath}'"); } + + protected override void OnModelCreating(ModelBuilder modelBuilder) + { + base.OnModelCreating(modelBuilder); + modelBuilder.Entity(); + modelBuilder.Entity(); + modelBuilder.Entity(); + modelBuilder.Entity(); + } } public async Task GetItemFromDataAsync(string source, string anchor) { + var id = $"{source}.md".TrimStart('/'); + if (!string.IsNullOrEmpty(anchor)) + { + id += $"#{anchor}"; + } using (var context = new AideDeJeuContext()) { - //var monsters = await context.Monsters.ToListAsync(); - await context.SaveChangesAsync(); + return await context.Items.Where(item => item.Id == id).FirstOrDefaultAsync(); } - return null; + } - - var id = $"{source}.md#{anchor}"; + public async Task GetItemFromDataAsyncOld(string source, string anchor) + { + var id = $"{source}.md".TrimStart('/'); //await Task.Delay(3000); if (!_AllItems.ContainsKey(id) && !_AllItems.ContainsKey(source)) { diff --git a/AideDeJeu/AideDeJeuCmd/NativeAPI.cs b/AideDeJeu/AideDeJeuCmd/NativeAPI.cs index 7bb93fc8..153df151 100644 --- a/AideDeJeu/AideDeJeuCmd/NativeAPI.cs +++ b/AideDeJeu/AideDeJeuCmd/NativeAPI.cs @@ -24,7 +24,7 @@ namespace AideDeJeu.Cmd public string GetDatabasePath(string databaseName) { - return Path.Combine(Path.GetDirectoryName(Assembly.GetEntryAssembly().Location), databaseName); + return Path.Combine(Path.GetDirectoryName(Assembly.GetEntryAssembly().Location), @"..\..\..\..\..\Data\" + databaseName); } } } \ No newline at end of file diff --git a/AideDeJeu/AideDeJeuCmd/Program.cs b/AideDeJeu/AideDeJeuCmd/Program.cs index 3c038d65..81123d54 100644 --- a/AideDeJeu/AideDeJeuCmd/Program.cs +++ b/AideDeJeu/AideDeJeuCmd/Program.cs @@ -297,11 +297,20 @@ namespace AideDeJeuCmd //var store = new StoreViewModel(); //await store.GetItemFromDataAsync("test", "truc"); + var store = new StoreViewModel(); + await store.PreloadAllItemsAsync(); + using (var context = new StoreViewModel.AideDeJeuContext()) { await context.Database.EnsureDeletedAsync(); await context.Database.EnsureCreatedAsync(); + + await context.Items.AddRangeAsync(store._AllItems.Values); + await context.SaveChangesAsync(); + + var items = await context.Items.Where(item => (item.Source != null && item.Source.Contains("SRD"))).ToListAsync(); var monsters = await context.Monsters.ToListAsync(); + var spells = await context.Spells.ToListAsync(); } return; diff --git a/Data/database.db b/Data/database.db index 9731b320..cb3ebe16 100644 Binary files a/Data/database.db and b/Data/database.db differ