mirror of
				https://github.com/Nioux/AideDeJeu.git
				synced 2025-10-30 23:16:09 +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
	
	 Yan Maniez
						Yan Maniez