mirror of
https://github.com/Nioux/AideDeJeu.git
synced 2025-10-29 22:45:44 +00:00
Dispose
This commit is contained in:
parent
ea491f8bcc
commit
f73d89f4b4
2 changed files with 20 additions and 54 deletions
|
|
@ -233,46 +233,29 @@ namespace AideDeJeu.ViewModels
|
|||
|
||||
|
||||
|
||||
private string MonstersJson
|
||||
private IEnumerable<Monster> _AllMonsters = null;
|
||||
private IEnumerable<Monster> AllMonsters
|
||||
{
|
||||
get
|
||||
{
|
||||
var assembly = typeof(AboutViewModel).GetTypeInfo().Assembly;
|
||||
//var names = assembly.GetManifestResourceNames();
|
||||
using (var stream = assembly.GetManifestResourceStream("AideDeJeu.monsters.json"))
|
||||
if (_AllMonsters == null)
|
||||
{
|
||||
using (var reader = new System.IO.StreamReader(stream))
|
||||
var serializer = new DataContractJsonSerializer(typeof(IEnumerable<Monster>));
|
||||
var assembly = typeof(AboutViewModel).GetTypeInfo().Assembly;
|
||||
//var names = assembly.GetManifestResourceNames();
|
||||
using (var stream = assembly.GetManifestResourceStream("AideDeJeu.monsters.json"))
|
||||
{
|
||||
return reader.ReadToEnd();
|
||||
_AllMonsters = serializer.ReadObject(stream) as IEnumerable<Monster>;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private IEnumerable<Monster> _Monsters = null;
|
||||
private IEnumerable<Monster> Monsters
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_Monsters == null)
|
||||
{
|
||||
DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(IEnumerable<Monster>));
|
||||
MemoryStream stream = new MemoryStream();
|
||||
var writer = new StreamWriter(stream);
|
||||
writer.Write(MonstersJson);
|
||||
writer.Flush();
|
||||
stream.Seek(0, SeekOrigin.Begin);
|
||||
|
||||
_Monsters = serializer.ReadObject(stream) as IEnumerable<Monster>;
|
||||
}
|
||||
return _Monsters;
|
||||
return _AllMonsters;
|
||||
}
|
||||
}
|
||||
|
||||
public IEnumerable<Monster> GetMonsters(string category, string type, string minPower, string maxPower, string size, string legendary, string source)
|
||||
{
|
||||
var powerComparer = new PowerComparer();
|
||||
return Monsters.Where(monster =>
|
||||
return AllMonsters.Where(monster =>
|
||||
monster.Type.Contains(type) &&
|
||||
(string.IsNullOrEmpty(size) || monster.Size.Equals(size)) &&
|
||||
monster.Source.Contains(source) &&
|
||||
|
|
|
|||
|
|
@ -179,45 +179,28 @@ namespace AideDeJeu.ViewModels
|
|||
{
|
||||
}
|
||||
|
||||
private string SpellsJson
|
||||
private IEnumerable<Spell> _AllSpells = null;
|
||||
private IEnumerable<Spell> AllSpells
|
||||
{
|
||||
get
|
||||
{
|
||||
var assembly = typeof(AboutViewModel).GetTypeInfo().Assembly;
|
||||
//var names = assembly.GetManifestResourceNames();
|
||||
using (var stream = assembly.GetManifestResourceStream("AideDeJeu.spells.json"))
|
||||
if(_AllSpells == null)
|
||||
{
|
||||
using (var reader = new System.IO.StreamReader(stream))
|
||||
var serializer = new DataContractJsonSerializer(typeof(IEnumerable<Spell>));
|
||||
var assembly = typeof(AboutViewModel).GetTypeInfo().Assembly;
|
||||
//var names = assembly.GetManifestResourceNames();
|
||||
using (var stream = assembly.GetManifestResourceStream("AideDeJeu.spells.json"))
|
||||
{
|
||||
return reader.ReadToEnd();
|
||||
_AllSpells = serializer.ReadObject(stream) as IEnumerable<Spell>;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private IEnumerable<Spell> _Spells = null;
|
||||
private IEnumerable<Spell> Spells
|
||||
{
|
||||
get
|
||||
{
|
||||
if(_Spells == null)
|
||||
{
|
||||
DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(IEnumerable<Spell>));
|
||||
MemoryStream stream = new MemoryStream();
|
||||
var writer = new StreamWriter(stream);
|
||||
writer.Write(SpellsJson);
|
||||
writer.Flush();
|
||||
stream.Seek(0, SeekOrigin.Begin);
|
||||
|
||||
_Spells = serializer.ReadObject(stream) as IEnumerable<Spell>;
|
||||
}
|
||||
return _Spells;
|
||||
return _AllSpells;
|
||||
}
|
||||
}
|
||||
|
||||
public IEnumerable<Spell> GetSpells(string classe, string niveauMin, string niveauMax, string ecole, string rituel, string source)
|
||||
{
|
||||
return Spells.Where(spell =>
|
||||
return AllSpells.Where(spell =>
|
||||
(int.Parse(spell.Level) >= int.Parse(niveauMin)) &&
|
||||
(int.Parse(spell.Level) <= int.Parse(niveauMax)) &&
|
||||
spell.Type.Contains(ecole) &&
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue