mirror of
				https://github.com/Nioux/AideDeJeu.git
				synced 2025-10-31 07:26: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})"; | ||||
|         } | ||||
| 
 | ||||
|         static IDeserializer _Deserializer = new DeserializerBuilder().WithNamingConvention(new PascalCaseNamingConvention()).Build(); | ||||
|         static ISerializer _Serializer = new SerializerBuilder().WithNamingConvention(new PascalCaseNamingConvention()).Build(); | ||||
| 
 | ||||
|         [NotMapped] | ||||
|         [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 | ||||
|         { | ||||
|  | @ -364,25 +399,25 @@ namespace AideDeJeuLib | |||
|         } | ||||
| 
 | ||||
|         [DataMember] | ||||
|         public virtual string AttributesDictionary | ||||
|         { | ||||
|             get | ||||
|             { | ||||
|                 var builder = new SerializerBuilder(); | ||||
|                 var serializer = builder | ||||
|                     .WithNamingConvention(new PascalCaseNamingConvention()) | ||||
|                     .Build(); | ||||
|                 return serializer.Serialize(Attributes); | ||||
|             } | ||||
|             set | ||||
|             { | ||||
|                 var builder = new DeserializerBuilder(); | ||||
|                 var deserializer = builder | ||||
|                     .WithNamingConvention(new PascalCaseNamingConvention()) | ||||
|                     .Build(); | ||||
|                 Attributes = deserializer.Deserialize<OrderedDictionary>(value); | ||||
|             } | ||||
|         } | ||||
|         public virtual string AttributesDictionary { get; set; } | ||||
|     //    { | ||||
|     //        get | ||||
|     //        { | ||||
|     //            var builder = new SerializerBuilder(); | ||||
|     //            var serializer = builder | ||||
|     //                .WithNamingConvention(new PascalCaseNamingConvention()) | ||||
|     //                .Build(); | ||||
|     //            return serializer.Serialize(Attributes); | ||||
|     //        } | ||||
|     //        set | ||||
|     //        { | ||||
|     //            var builder = new DeserializerBuilder(); | ||||
|     //var deserializer = builder | ||||
|     //    .WithNamingConvention(new PascalCaseNamingConvention()) | ||||
|     //    .Build(); | ||||
|     //Attributes = deserializer.Deserialize<OrderedDictionary>(value); | ||||
|     //        } | ||||
|     //    } | ||||
| 
 | ||||
|         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.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 | ||||
|  |  | |||
|  | @ -119,7 +119,10 @@ namespace AideDeJeu.ViewModels.Library | |||
|             { | ||||
|                 if (Filter != null) | ||||
|                 { | ||||
|                     var start = DateTime.Now; | ||||
|                     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()); | ||||
|                     Children = items; | ||||
|                 } | ||||
|  |  | |||
|  | @ -46,23 +46,66 @@ namespace AideDeJeu.Views.PlayerCharacter | |||
| 
 | ||||
|         private async Task ExecuteShareCommandAsync() | ||||
|         { | ||||
|             var result = await DisplayActionSheet("Actions", "Annuler", null, "Envoyer vers...", "Ouvrir avec..."); | ||||
|             if(result == "Ouvrir avec...") | ||||
|             var SendTo = "Envoyer vers..."; | ||||
|             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))); | ||||
|                 await DependencyService.Get<PlayerCharacterEditorViewModel>().OpenPdfAsync(filePath); | ||||
| 
 | ||||
|                 case Device.Android: | ||||
|                     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))); | ||||
| 
 | ||||
|                 await Xamarin.Essentials.Share.RequestAsync(new Xamarin.Essentials.ShareFileRequest | ||||
|                 { | ||||
|                     Title = PdfFile.Result, | ||||
|                     File = new Xamarin.Essentials.ShareFile(filePath) | ||||
|                 }); | ||||
|                 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 | ||||
|             { | ||||
|                 Title = PdfFile.Result, | ||||
|                 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