1
0
Fork 0
mirror of https://github.com/Nioux/AideDeJeu.git synced 2025-10-30 06:56:10 +00:00

Modif fonctionnement des attributes cause gros ramage

This commit is contained in:
Yan Maniez 2019-05-12 23:29:52 +02:00
parent 5c46b6d8f9
commit 4234becc93
4 changed files with 116 additions and 34 deletions

View file

@ -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)
{

View file

@ -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

View file

@ -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;
}

View file

@ -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)));
}
}
}