1
0
Fork 0
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:
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})"; 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)
{ {

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

View file

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

View file

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