mirror of
				https://github.com/Nioux/AideDeJeu.git
				synced 2025-10-30 23:16:09 +00:00 
			
		
		
		
	Modif fonctionnement des attributes cause gros ramage
This commit is contained in:
		
							parent
							
								
									5c46b6d8f9
								
							
						
					
					
						commit
						4234becc93
					
				
					 4 changed files with 116 additions and 34 deletions
				
			
		|  | @ -351,9 +351,44 @@ namespace AideDeJeuLib | ||||||
|             return $"{Name} ({NewId})"; |             return $"{Name} ({NewId})"; | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|  |         static IDeserializer _Deserializer = new DeserializerBuilder().WithNamingConvention(new PascalCaseNamingConvention()).Build(); | ||||||
|  |         static ISerializer _Serializer = new SerializerBuilder().WithNamingConvention(new PascalCaseNamingConvention()).Build(); | ||||||
|  | 
 | ||||||
|         [NotMapped] |         [NotMapped] | ||||||
|         [IgnoreDataMember] |         [IgnoreDataMember] | ||||||
|         public virtual OrderedDictionary Attributes { get; set; } = new OrderedDictionary(); |         public virtual OrderedDictionary Attributes | ||||||
|  |         { | ||||||
|  |             get | ||||||
|  |             { | ||||||
|  |                 if (string.IsNullOrEmpty(AttributesDictionary)) | ||||||
|  |                 { | ||||||
|  |                     return new OrderedDictionary(); | ||||||
|  |                 } | ||||||
|  |                 else | ||||||
|  |                 { | ||||||
|  |                     //var builder = new DeserializerBuilder(); | ||||||
|  |                     //var deserializer = builder | ||||||
|  |                     //    .WithNamingConvention(new PascalCaseNamingConvention()) | ||||||
|  |                     //    .Build(); | ||||||
|  |                     return _Deserializer.Deserialize<OrderedDictionary>(AttributesDictionary); | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |             set | ||||||
|  |             { | ||||||
|  |                 if (value == null) | ||||||
|  |                 { | ||||||
|  |                     AttributesDictionary = null; | ||||||
|  |                 } | ||||||
|  |                 else | ||||||
|  |                 { | ||||||
|  |                     //var builder = new SerializerBuilder(); | ||||||
|  |                     //var serializer = builder | ||||||
|  |                     //    .WithNamingConvention(new PascalCaseNamingConvention()) | ||||||
|  |                     //    .Build(); | ||||||
|  |                     AttributesDictionary = _Serializer.Serialize(value); | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |         }// = new OrderedDictionary(); | ||||||
| 
 | 
 | ||||||
|         public virtual OrderedDictionary AttributesKeyValue |         public virtual OrderedDictionary AttributesKeyValue | ||||||
|         { |         { | ||||||
|  | @ -364,25 +399,25 @@ namespace AideDeJeuLib | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         [DataMember] |         [DataMember] | ||||||
|         public virtual string AttributesDictionary |         public virtual string AttributesDictionary { get; set; } | ||||||
|         { |     //    { | ||||||
|             get |     //        get | ||||||
|             { |     //        { | ||||||
|                 var builder = new SerializerBuilder(); |     //            var builder = new SerializerBuilder(); | ||||||
|                 var serializer = builder |     //            var serializer = builder | ||||||
|                     .WithNamingConvention(new PascalCaseNamingConvention()) |     //                .WithNamingConvention(new PascalCaseNamingConvention()) | ||||||
|                     .Build(); |     //                .Build(); | ||||||
|                 return serializer.Serialize(Attributes); |     //            return serializer.Serialize(Attributes); | ||||||
|             } |     //        } | ||||||
|             set |     //        set | ||||||
|             { |     //        { | ||||||
|                 var builder = new DeserializerBuilder(); |     //            var builder = new DeserializerBuilder(); | ||||||
|                 var deserializer = builder |     //var deserializer = builder | ||||||
|                     .WithNamingConvention(new PascalCaseNamingConvention()) |     //    .WithNamingConvention(new PascalCaseNamingConvention()) | ||||||
|                     .Build(); |     //    .Build(); | ||||||
|                 Attributes = deserializer.Deserialize<OrderedDictionary>(value); |     //Attributes = deserializer.Deserialize<OrderedDictionary>(value); | ||||||
|             } |     //        } | ||||||
|         } |     //    } | ||||||
| 
 | 
 | ||||||
|         public virtual void ResetAttribute(string name) |         public virtual void ResetAttribute(string name) | ||||||
|         { |         { | ||||||
|  |  | ||||||
|  | @ -251,7 +251,8 @@ namespace AideDeJeu.ViewModels.Library | ||||||
|                         ( |                         ( | ||||||
|                             (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())) | ||||||
|                         )).OrderBy(spell => Helpers.RemoveDiacritics(spell.Name)).ToList(); |                         )).OrderBy(spell => Helpers.RemoveDiacritics(spell.Name) | ||||||
|  |                         ).ToList(); | ||||||
|                 } |                 } | ||||||
|             } |             } | ||||||
|             catch |             catch | ||||||
|  |  | ||||||
|  | @ -119,7 +119,10 @@ namespace AideDeJeu.ViewModels.Library | ||||||
|             { |             { | ||||||
|                 if (Filter != null) |                 if (Filter != null) | ||||||
|                 { |                 { | ||||||
|  |                     var start = DateTime.Now; | ||||||
|                     var items = await Task.Run(async() => await Filter.GetFilteredItemsAsync(cancellationToken: cancellationToken)); |                     var items = await Task.Run(async() => await Filter.GetFilteredItemsAsync(cancellationToken: cancellationToken)); | ||||||
|  |                     var end = DateTime.Now; | ||||||
|  |                     Debug.WriteLine((end - start).TotalMilliseconds); | ||||||
|                     Items = new Item(items.ToList()); |                     Items = new Item(items.ToList()); | ||||||
|                     Children = items; |                     Children = items; | ||||||
|                 } |                 } | ||||||
|  |  | ||||||
|  | @ -46,23 +46,66 @@ namespace AideDeJeu.Views.PlayerCharacter | ||||||
| 
 | 
 | ||||||
|         private async Task ExecuteShareCommandAsync() |         private async Task ExecuteShareCommandAsync() | ||||||
|         { |         { | ||||||
|             var result = await DisplayActionSheet("Actions", "Annuler", null, "Envoyer vers...", "Ouvrir avec..."); |             var SendTo = "Envoyer vers..."; | ||||||
|             if(result == "Ouvrir avec...") |             var OpenWith = "Ouvrir avec..."; | ||||||
|  |             var SaveTo = "Enregistrer sous..."; | ||||||
|  |             var commands = new List<string>(); | ||||||
|  |             switch(Device.RuntimePlatform) | ||||||
|             { |             { | ||||||
|                 string filePath = Path.Combine(Xamarin.Essentials.FileSystem.CacheDirectory, Path.Combine("pdf", WebUtility.UrlEncode(PdfFile.Result))); |                 case Device.Android: | ||||||
|                 await DependencyService.Get<PlayerCharacterEditorViewModel>().OpenPdfAsync(filePath); |                     commands.Add(SendTo); | ||||||
| 
 |                     commands.Add(OpenWith); | ||||||
|  |                     break; | ||||||
|  |                 case Device.UWP: | ||||||
|  |                     commands.Add(SendTo); | ||||||
|  |                     commands.Add(OpenWith); | ||||||
|  |                     commands.Add(SaveTo); | ||||||
|  |                     break; | ||||||
|  |                 case Device.iOS: | ||||||
|  |                     commands.Add(SendTo); | ||||||
|  |                     break; | ||||||
|             } |             } | ||||||
|             if(result == "Envoyer vers...") |             string result = null; | ||||||
|  |             if (commands.Count > 1) | ||||||
|             { |             { | ||||||
|                 string filePath = Path.Combine(Xamarin.Essentials.FileSystem.CacheDirectory, Path.Combine("pdf", WebUtility.UrlEncode(PdfFile.Result))); |                 result = await DisplayActionSheet("Actions", "Annuler", null, commands.ToArray()); | ||||||
|  |             } | ||||||
|  |             else | ||||||
|  |             { | ||||||
|  |                 result = commands.FirstOrDefault(); | ||||||
|  |             } | ||||||
|  |             if(result == OpenWith) | ||||||
|  |             { | ||||||
|  |                 await OpenWithAsync(PdfFile.Result); | ||||||
|  |             } | ||||||
|  |             else if(result == SendTo) | ||||||
|  |             { | ||||||
|  |                 await SendToAsync(PdfFile.Result); | ||||||
|  |             } | ||||||
|  |             else if (result == SaveTo) | ||||||
|  |             { | ||||||
|  |                 await SaveToAsync(PdfFile.Result); | ||||||
|  |             } | ||||||
|  |         } | ||||||
| 
 | 
 | ||||||
|  |         private async Task OpenWithAsync(string filename) | ||||||
|  |         { | ||||||
|  |             string filePath = Path.Combine(Xamarin.Essentials.FileSystem.CacheDirectory, Path.Combine("pdf", WebUtility.UrlEncode(filename))); | ||||||
|  |             await DependencyService.Get<PlayerCharacterEditorViewModel>().OpenPdfAsync(filePath); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         private async Task SendToAsync(string filename) | ||||||
|  |         { | ||||||
|  |             string filePath = Path.Combine(Xamarin.Essentials.FileSystem.CacheDirectory, Path.Combine("pdf", WebUtility.UrlEncode(filename))); | ||||||
|             await Xamarin.Essentials.Share.RequestAsync(new Xamarin.Essentials.ShareFileRequest |             await Xamarin.Essentials.Share.RequestAsync(new Xamarin.Essentials.ShareFileRequest | ||||||
|             { |             { | ||||||
|                 Title = PdfFile.Result, |                 Title = PdfFile.Result, | ||||||
|                 File = new Xamarin.Essentials.ShareFile(filePath) |                 File = new Xamarin.Essentials.ShareFile(filePath) | ||||||
|             }); |             }); | ||||||
|         } |         } | ||||||
|  |         private async Task SaveToAsync(string filename) | ||||||
|  |         { | ||||||
|  |             string filePath = Path.Combine(Xamarin.Essentials.FileSystem.CacheDirectory, Path.Combine("pdf", WebUtility.UrlEncode(filename))); | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
| } | } | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Yan Maniez
						Yan Maniez