mirror of
https://github.com/Nioux/AideDeJeu.git
synced 2025-10-30 15:06:06 +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());
|
||||||
|
|
||||||
await Xamarin.Essentials.Share.RequestAsync(new Xamarin.Essentials.ShareFileRequest
|
|
||||||
{
|
|
||||||
Title = PdfFile.Result,
|
|
||||||
File = new Xamarin.Essentials.ShareFile(filePath)
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
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