1
0
Fork 0
mirror of https://github.com/Nioux/AideDeJeu.git synced 2025-10-29 22:45:44 +00:00

RootId + Like

This commit is contained in:
Yan Maniez 2018-10-21 23:24:14 +02:00
parent 2230ddea79
commit 9d83e524cd
8 changed files with 27 additions and 11 deletions

View file

@ -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))
{

View file

@ -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))
{

View file

@ -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;
}

View file

@ -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; }

View file

@ -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();
}

View file

@ -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();
}
}

View file

@ -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");
}
}
}

Binary file not shown.