mirror of
https://github.com/Nioux/AideDeJeu.git
synced 2025-10-29 22:45:44 +00:00
RootId + Like
This commit is contained in:
parent
2230ddea79
commit
9d83e524cd
8 changed files with 27 additions and 11 deletions
|
|
@ -34,12 +34,12 @@ namespace AideDeJeu.Droid
|
|||
//string dbPath = Path.Combine(path, databaseName);
|
||||
//return dbPath;
|
||||
var documentsDirectoryPath = System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal);
|
||||
var path = Path.Combine(documentsDirectoryPath, databaseName);
|
||||
var path = Path.Combine(documentsDirectoryPath, $"{databaseName}.db");
|
||||
|
||||
// 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 inStream = Android.App.Application.Context.Assets.Open($"{databaseName}.db"))
|
||||
{
|
||||
using (var outStream = new FileStream(path, FileMode.Create))
|
||||
{
|
||||
|
|
|
|||
|
|
@ -26,12 +26,12 @@ namespace AideDeJeu.UWP
|
|||
public async Task<string> GetDatabasePathAsync(string databaseName)
|
||||
{
|
||||
var documentsDirectoryPath = Windows.Storage.ApplicationData.Current.LocalFolder.Path;
|
||||
var path = Path.Combine(documentsDirectoryPath, databaseName);
|
||||
var path = Path.Combine(documentsDirectoryPath, $"{databaseName}.db");
|
||||
|
||||
if (!File.Exists(path))
|
||||
{
|
||||
var assembly = typeof(Version_UWP).GetTypeInfo().Assembly;
|
||||
using (var inStream = assembly.GetManifestResourceStream("AideDeJeu.UWP." + databaseName))
|
||||
using (var inStream = assembly.GetManifestResourceStream($"AideDeJeu.UWP.{databaseName}.db"))
|
||||
{
|
||||
using (var outStream = new FileStream(path, FileMode.Create))
|
||||
{
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ namespace AideDeJeu.Droid
|
|||
|
||||
public async Task<string> GetDatabasePathAsync(string databaseName)
|
||||
{
|
||||
return NSBundle.MainBundle.PathForResource("library", "db");
|
||||
return NSBundle.MainBundle.PathForResource(databaseName, "db");
|
||||
//var databasePath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "..", "Library", databaseName);
|
||||
//return databasePath;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
using AideDeJeu.ViewModels;
|
||||
using SQLite;
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
|
|
@ -99,8 +100,12 @@ namespace AideDeJeuLib
|
|||
//}
|
||||
|
||||
[DataMember]
|
||||
[PrimaryKey]
|
||||
public virtual string Id { get; set; }
|
||||
[DataMember]
|
||||
[Indexed]
|
||||
public string RootId { get; set; }
|
||||
[DataMember]
|
||||
public string Name { get; set; }
|
||||
[DataMember]
|
||||
public int NameLevel { get; set; }
|
||||
|
|
|
|||
|
|
@ -62,15 +62,26 @@ namespace AideDeJeu.ViewModels
|
|||
using (var context = await StoreViewModel.GetLibraryContextAsync())
|
||||
{
|
||||
var primary = await context.Items.
|
||||
Where(item => item.Name.Contains(searchText)).
|
||||
Where(item => EF.Functions.Like(item.Name, $"%{searchText}%")).
|
||||
Select(item => new SearchedItem() { Item = item, Preview = item.Name }).
|
||||
ToListAsync();
|
||||
var secondary = await context.Items.
|
||||
Where(item => item.Markdown.Contains(searchText)).
|
||||
Where(item => EF.Functions.Like(item.Markdown, $"%{searchText}%")).
|
||||
Select(item => new SearchedItem()
|
||||
{
|
||||
Item = item, Preview = GetPreview(item.Markdown, searchText)
|
||||
}).ToListAsync();
|
||||
//var primary = await context.Items.
|
||||
// Where(item => item.Name.Contains(searchText)).
|
||||
// Select(item => new SearchedItem() { Item = item, Preview = item.Name }).
|
||||
// ToListAsync();
|
||||
//var secondary = await context.Items.
|
||||
// Where(item => item.Markdown.Contains(searchText)).
|
||||
// Select(item => new SearchedItem()
|
||||
// {
|
||||
// Item = item,
|
||||
// Preview = GetPreview(item.Markdown, searchText)
|
||||
// }).ToListAsync();
|
||||
primary.AddRange(secondary);
|
||||
return primary.ToList();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -357,7 +357,7 @@ namespace AideDeJeu.ViewModels
|
|||
{
|
||||
var anchors = new Dictionary<string, Item>();
|
||||
//MakeAnchors(source, anchors, item);
|
||||
item.Id = $"{source}.md";
|
||||
item.RootId = $"{source}.md";
|
||||
_AllItems[source] = item;
|
||||
}
|
||||
}
|
||||
|
|
@ -404,7 +404,7 @@ namespace AideDeJeu.ViewModels
|
|||
|
||||
public static async Task<AideDeJeuContext> GetLibraryContextAsync()
|
||||
{
|
||||
var dbPath = await DependencyService.Get<INativeAPI>().GetDatabasePathAsync("library.db");
|
||||
var dbPath = await DependencyService.Get<INativeAPI>().GetDatabasePathAsync("library");
|
||||
return new AideDeJeuContext(dbPath);
|
||||
}
|
||||
|
||||
|
|
@ -417,7 +417,7 @@ namespace AideDeJeu.ViewModels
|
|||
}
|
||||
using (var context = await GetLibraryContextAsync())
|
||||
{
|
||||
return await context.Items.Where(item => item.Id == id).FirstOrDefaultAsync();
|
||||
return await context.Items.Where(item => item.Id == id || item.RootId == id).FirstOrDefaultAsync();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ namespace AideDeJeu.Cmd
|
|||
|
||||
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}.db");
|
||||
}
|
||||
}
|
||||
}
|
||||
BIN
Data/library.db
BIN
Data/library.db
Binary file not shown.
Loading…
Add table
Add a link
Reference in a new issue