mirror of
				https://github.com/Nioux/AideDeJeu.git
				synced 2025-10-30 15:06:06 +00:00 
			
		
		
		
	Meilleure gestion filtres async
This commit is contained in:
		
							parent
							
								
									f1a726e6b1
								
							
						
					
					
						commit
						f9b6df738b
					
				
					 5 changed files with 99 additions and 99 deletions
				
			
		|  | @ -43,7 +43,7 @@ namespace AideDeJeu.Droid | ||||||
|                 { |                 { | ||||||
|                     using (var outStream = new FileStream(path, FileMode.Create)) |                     using (var outStream = new FileStream(path, FileMode.Create)) | ||||||
|                     { |                     { | ||||||
|                         inStream.CopyTo(outStream); |                         await inStream.CopyToAsync(outStream); | ||||||
|                     } |                     } | ||||||
|                 } |                 } | ||||||
|                 //using (var binaryReader = new BinaryReader(Android.App.Application.Context.Assets.Open(databaseName))) |                 //using (var binaryReader = new BinaryReader(Android.App.Application.Context.Assets.Open(databaseName))) | ||||||
|  |  | ||||||
|  | @ -1,6 +1,7 @@ | ||||||
| using AideDeJeu.Tools; | using AideDeJeu.Tools; | ||||||
| using System; | using System; | ||||||
| using System.IO; | using System.IO; | ||||||
|  | using System.Threading.Tasks; | ||||||
| 
 | 
 | ||||||
| [assembly: Xamarin.Forms.Dependency(typeof(AideDeJeu.GTK.Version_GTK))] | [assembly: Xamarin.Forms.Dependency(typeof(AideDeJeu.GTK.Version_GTK))] | ||||||
| namespace AideDeJeu.GTK | namespace AideDeJeu.GTK | ||||||
|  | @ -28,7 +29,7 @@ namespace AideDeJeu.GTK | ||||||
|             //return info.VersionCode; |             //return info.VersionCode; | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         public string GetDatabasePath(string databaseName) |         public async Task<string> GetDatabasePathAsync(string databaseName) | ||||||
|         { |         { | ||||||
|             return null; |             return null; | ||||||
|             //var documentsDirectoryPath = System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal); |             //var documentsDirectoryPath = System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal); | ||||||
|  |  | ||||||
|  | @ -35,7 +35,7 @@ namespace AideDeJeu.UWP | ||||||
|                 { |                 { | ||||||
|                     using (var outStream = new FileStream(path, FileMode.Create)) |                     using (var outStream = new FileStream(path, FileMode.Create)) | ||||||
|                     { |                     { | ||||||
|                         inStream.CopyTo(outStream); |                         await inStream.CopyToAsync(outStream); | ||||||
|                     } |                     } | ||||||
|                 } |                 } | ||||||
|             } |             } | ||||||
|  |  | ||||||
|  | @ -1,6 +1,5 @@ | ||||||
| using AideDeJeu.Tools; | using AideDeJeu.Tools; | ||||||
| using AideDeJeuLib; | using AideDeJeuLib; | ||||||
| using Microsoft.EntityFrameworkCore; |  | ||||||
| using System.Collections.Generic; | using System.Collections.Generic; | ||||||
| using System.Linq; | using System.Linq; | ||||||
| using System.Threading; | using System.Threading; | ||||||
|  | @ -13,7 +12,7 @@ namespace AideDeJeu.ViewModels | ||||||
|     public abstract class FilterViewModel : BaseViewModel |     public abstract class FilterViewModel : BaseViewModel | ||||||
|     { |     { | ||||||
|         public ICommand LoadItemsCommand { get; set; } |         public ICommand LoadItemsCommand { get; set; } | ||||||
|         public abstract Task<IEnumerable<Item>> FilterItems(IEnumerable<Item> items, CancellationToken cancellationToken = default); |         public abstract Task<IEnumerable<Item>> GetFilteredItemsAsync(CancellationToken cancellationToken = default); | ||||||
|         public abstract IEnumerable<Filter> Filters { get; } |         public abstract IEnumerable<Filter> Filters { get; } | ||||||
|         private string _SearchText = ""; |         private string _SearchText = ""; | ||||||
|         public string SearchText |         public string SearchText | ||||||
|  | @ -139,43 +138,43 @@ namespace AideDeJeu.ViewModels | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     public class SearchFilterViewModel : FilterViewModel |     //public class SearchFilterViewModel : FilterViewModel | ||||||
|     { |     //{ | ||||||
|         private IEnumerable<Filter> _Filters = null; |     //    private IEnumerable<Filter> _Filters = null; | ||||||
|         public override IEnumerable<Filter> Filters |     //    public override IEnumerable<Filter> Filters | ||||||
|         { |     //    { | ||||||
|             get |     //        get | ||||||
|             { |     //        { | ||||||
|                 if (_Filters == null) |     //            if (_Filters == null) | ||||||
|                 { |     //            { | ||||||
|                     _Filters = new List<Filter>() |     //                _Filters = new List<Filter>() | ||||||
|                     { |     //                { | ||||||
|                     }; |     //                }; | ||||||
|                     RegisterFilters(); |     //                RegisterFilters(); | ||||||
|                 } |     //            } | ||||||
|                 return _Filters; |     //            return _Filters; | ||||||
|             } |     //        } | ||||||
|         } |     //    } | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|         public override async Task<IEnumerable<Item>> FilterItems(IEnumerable<Item> items, CancellationToken token = default) |     //    public override async Task<IEnumerable<Item>> GetFilteredItemsAsync(CancellationToken token = default) | ||||||
|         { |     //    { | ||||||
|             return await Task.Run(() => |     //        return await Task.Run(() => | ||||||
|             { |     //        { | ||||||
|                 return items.Where(item => |     //            return items.Where(item => | ||||||
|                 { |     //            { | ||||||
|                     var spell = item; |     //                var spell = item; | ||||||
|                     return |     //                return | ||||||
|                         ( |     //                    ( | ||||||
|                             (Helpers.RemoveDiacritics(spell.Name).ToLower().Contains(Helpers.RemoveDiacritics(SearchText ?? string.Empty).ToLower())) || |     //                        (Helpers.RemoveDiacritics(spell.Name).ToLower().Contains(Helpers.RemoveDiacritics(SearchText ?? string.Empty).ToLower())) || | ||||||
|                             (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())) | ||||||
|                         ); |     //                    ); | ||||||
|                 }).AsEnumerable(); |     //            }).AsEnumerable(); | ||||||
|             }, token); |     //        }, token); | ||||||
| 
 | 
 | ||||||
|         } |     //    } | ||||||
| 
 | 
 | ||||||
|     } |     //} | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|     #region Spells |     #region Spells | ||||||
|  | @ -249,7 +248,7 @@ namespace AideDeJeu.ViewModels | ||||||
| 
 | 
 | ||||||
|     public class VFSpellFilterViewModel : SpellFilterViewModel |     public class VFSpellFilterViewModel : SpellFilterViewModel | ||||||
|     { |     { | ||||||
|         public override Task<IEnumerable<Item>> FilterItems(IEnumerable<Item> items, CancellationToken cancellationToken = default) |         public override Task<IEnumerable<Item>> GetFilteredItemsAsync(CancellationToken cancellationToken = default) | ||||||
|         { |         { | ||||||
|             throw new System.NotImplementedException(); |             throw new System.NotImplementedException(); | ||||||
|         } |         } | ||||||
|  | @ -309,7 +308,7 @@ 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>> GetFilteredItemsAsync(CancellationToken token = default) | ||||||
|         { |         { | ||||||
|             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 ?? ""; | ||||||
|  | @ -389,7 +388,7 @@ 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>> GetFilteredItemsAsync(CancellationToken token = default) | ||||||
|         { |         { | ||||||
|             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 ?? ""; | ||||||
|  | @ -557,7 +556,7 @@ namespace AideDeJeu.ViewModels | ||||||
|     public class VFMonsterFilterViewModel : MonsterFilterViewModel |     public class VFMonsterFilterViewModel : MonsterFilterViewModel | ||||||
|     { |     { | ||||||
| 
 | 
 | ||||||
|         public override async Task<IEnumerable<Item>> FilterItems(IEnumerable<Item> items, CancellationToken token = default) |         public override async Task<IEnumerable<Item>> GetFilteredItemsAsync(CancellationToken token = default) | ||||||
|         { |         { | ||||||
|             throw new System.Exception(); |             throw new System.Exception(); | ||||||
|         } |         } | ||||||
|  | @ -648,7 +647,7 @@ 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>> GetFilteredItemsAsync(CancellationToken token = default) | ||||||
|         { |         { | ||||||
|             var powerComparer = new PowerComparer(); |             var powerComparer = new PowerComparer(); | ||||||
| 
 | 
 | ||||||
|  | @ -764,7 +763,7 @@ 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>> GetFilteredItemsAsync(CancellationToken token = default) | ||||||
|         { |         { | ||||||
|             var powerComparer = new PowerComparer(); |             var powerComparer = new PowerComparer(); | ||||||
| 
 | 
 | ||||||
|  | @ -901,7 +900,7 @@ namespace AideDeJeu.ViewModels | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         public override async Task<IEnumerable<Item>> FilterItems(IEnumerable<Item> items, CancellationToken token = default) |         public override async Task<IEnumerable<Item>> GetFilteredItemsAsync(CancellationToken token = default) | ||||||
|         { |         { | ||||||
|             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 ?? ""; | ||||||
|  | @ -1001,7 +1000,7 @@ namespace AideDeJeu.ViewModels | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         public override async Task<IEnumerable<Item>> FilterItems(IEnumerable<Item> items, CancellationToken token = default) |         public override async Task<IEnumerable<Item>> GetFilteredItemsAsync(CancellationToken token = default) | ||||||
|         { |         { | ||||||
|             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 ?? ""; | ||||||
|  |  | ||||||
|  | @ -119,7 +119,7 @@ namespace AideDeJeu.ViewModels | ||||||
|             { |             { | ||||||
|                 if (Filter != null) |                 if (Filter != null) | ||||||
|                 { |                 { | ||||||
|                     var items = await Task.Run(async() => await Filter.FilterItems(await AllItems.GetChildrenAsync(), cancellationToken: cancellationToken)); |                     var items = await Task.Run(async() => await Filter.GetFilteredItemsAsync(cancellationToken: cancellationToken)); | ||||||
|                     Items = new Item(items.ToList()); |                     Items = new Item(items.ToList()); | ||||||
|                     Children = items; |                     Children = items; | ||||||
|                 } |                 } | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Yan Maniez
						Yan Maniez