1
0
Fork 0
mirror of https://github.com/Nioux/AideDeJeu.git synced 2025-11-01 07:56:04 +00:00

Blindage BDD

This commit is contained in:
Yan Maniez 2018-12-16 02:43:21 +01:00
parent d5b731ef06
commit 5951e8195e
7 changed files with 212 additions and 137 deletions

View file

@ -29,10 +29,17 @@ namespace AideDeJeu.Droid
public async Task<string> GetDatabasePathAsync(string databaseName) public async Task<string> GetDatabasePathAsync(string databaseName)
{ {
if (await CheckDatabaseVersionAsync(databaseName)) try
{ {
await CopyOldToNewFileAsync(databaseName, "db"); if (await CheckDatabaseVersionAsync(databaseName))
await CopyOldToNewFileAsync(databaseName, "ver"); {
await CopyOldToNewFileAsync(databaseName, "db");
await CopyOldToNewFileAsync(databaseName, "ver");
}
}
catch
{
} }
return GetNewFilePath(databaseName, "db"); return GetNewFilePath(databaseName, "db");
} }

View file

@ -1,11 +1,11 @@
#pragma warning disable 1591 #pragma warning disable 1591
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
// <auto-generated> // <auto-generated>
// This code was generated by a tool. // Ce code a été généré par un outil.
// Runtime Version:4.0.30319.42000 // Version du runtime :4.0.30319.42000
// //
// Changes to this file may cause incorrect behavior and will be lost if // Les modifications apportées à ce fichier peuvent provoquer un comportement incorrect et seront perdues si
// the code is regenerated. // le code est régénéré.
// </auto-generated> // </auto-generated>
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------

View file

@ -25,10 +25,17 @@ namespace AideDeJeu.UWP
public async Task<string> GetDatabasePathAsync(string databaseName) public async Task<string> GetDatabasePathAsync(string databaseName)
{ {
if (await CheckDatabaseVersionAsync(databaseName)) try
{ {
await CopyOldToNewFileAsync(databaseName, "db"); if (await CheckDatabaseVersionAsync(databaseName))
await CopyOldToNewFileAsync(databaseName, "ver"); {
await CopyOldToNewFileAsync(databaseName, "db");
await CopyOldToNewFileAsync(databaseName, "ver");
}
}
catch
{
} }
return GetNewFilePath(databaseName, "db"); return GetNewFilePath(databaseName, "db");
} }

View file

@ -59,62 +59,70 @@ namespace AideDeJeu.ViewModels
public async Task<IEnumerable<SearchedItem>> DeepSearchAllItemsAsync(string searchText) public async Task<IEnumerable<SearchedItem>> DeepSearchAllItemsAsync(string searchText)
{ {
using (var context = await StoreViewModel.GetLibraryContextAsync()) try
{ {
var primary = await context.Items. using (var context = await StoreViewModel.GetLibraryContextAsync())
Where(item => EF.Functions.Like(item.Name, $"%{searchText}%")). {
Select(item => new SearchedItem() { Item = item, Preview = item.ParentName != null ? $"> {item.ParentName}" : "" }). var primary = await context.Items.
ToListAsync(); Where(item => EF.Functions.Like(item.Name, $"%{searchText}%")).
var secondary = await context.Items. Select(item => new SearchedItem() { Item = item, Preview = item.ParentName != null ? $"> {item.ParentName}" : "" }).
Where(item => EF.Functions.Like(item.Markdown, $"%{searchText}%")). ToListAsync();
Select(item => new SearchedItem() var secondary = await context.Items.
{ Where(item => EF.Functions.Like(item.Markdown, $"%{searchText}%")).
Item = item, Preview = (item.ParentName != null ? $"> {item.ParentName} > " : "") + GetPreview(item.Markdown, searchText) Select(item => new SearchedItem()
}).ToListAsync(); {
//var primary = await context.Items. Item = item,
// Where(item => item.Name.Contains(searchText)). Preview = (item.ParentName != null ? $"> {item.ParentName} > " : "") + GetPreview(item.Markdown, searchText)
// Select(item => new SearchedItem() { Item = item, Preview = item.Name }). }).ToListAsync();
// ToListAsync(); //var primary = await context.Items.
//var secondary = await context.Items. // Where(item => item.Name.Contains(searchText)).
// Where(item => item.Markdown.Contains(searchText)). // Select(item => new SearchedItem() { Item = item, Preview = item.Name }).
// Select(item => new SearchedItem() // ToListAsync();
//var secondary = await context.Items.
// Where(item => item.Markdown.Contains(searchText)).
// Select(item => new SearchedItem()
// {
// Item = item,
// Preview = GetPreview(item.Markdown, searchText)
// }).ToListAsync();
primary.AddRange(secondary);
return primary.ToList();
}
//List<SearchedItem> primaryItems = new List<SearchedItem>();
//List<SearchedItem> secondaryItems = new List<SearchedItem>();
//var cleanSearchText = Tools.Helpers.RemoveDiacritics(searchText ?? string.Empty).ToLower();
//foreach (var item in Store._AllItems)
//{
// var name = item.Value.Name;
// var cleanName = Tools.Helpers.RemoveDiacritics(name).ToLower();
// if (cleanName.Contains(cleanSearchText))
// { // {
// Item = item, // primaryItems.Add(new SearchedItem() { Item = item.Value, Preview = name });
// Preview = GetPreview(item.Markdown, searchText) // }
// }).ToListAsync(); // else
primary.AddRange(secondary); // {
return primary.ToList(); // var markdown = item.Value.Markdown;
// var cleanMarkdown = Tools.Helpers.RemoveDiacritics(markdown).ToLower();
// if (cleanMarkdown.Contains(cleanSearchText))
// {
// int position = cleanMarkdown.IndexOf(cleanSearchText);
// int startPosition = Math.Max(0, position - 30);
// int endPosition = Math.Min(markdown.Length, position + searchText.Length + 30);
// var preview = markdown.Substring(startPosition, endPosition - startPosition - 1);
// secondaryItems.Add(new SearchedItem() { Item = item.Value, Preview = preview });
// }
// }
//}
//primaryItems.AddRange(secondaryItems);
//return primaryItems;
}
catch
{
return new List<SearchedItem>();
} }
//List<SearchedItem> primaryItems = new List<SearchedItem>();
//List<SearchedItem> secondaryItems = new List<SearchedItem>();
//var cleanSearchText = Tools.Helpers.RemoveDiacritics(searchText ?? string.Empty).ToLower();
//foreach (var item in Store._AllItems)
//{
// var name = item.Value.Name;
// var cleanName = Tools.Helpers.RemoveDiacritics(name).ToLower();
// if (cleanName.Contains(cleanSearchText))
// {
// primaryItems.Add(new SearchedItem() { Item = item.Value, Preview = name });
// }
// else
// {
// var markdown = item.Value.Markdown;
// var cleanMarkdown = Tools.Helpers.RemoveDiacritics(markdown).ToLower();
// if (cleanMarkdown.Contains(cleanSearchText))
// {
// int position = cleanMarkdown.IndexOf(cleanSearchText);
// int startPosition = Math.Max(0, position - 30);
// int endPosition = Math.Min(markdown.Length, position + searchText.Length + 30);
// var preview = markdown.Substring(startPosition, endPosition - startPosition - 1);
// secondaryItems.Add(new SearchedItem() { Item = item.Value, Preview = preview });
// }
// }
//}
//primaryItems.AddRange(secondaryItems);
//return primaryItems;
} }

View file

@ -317,19 +317,26 @@ namespace AideDeJeu.ViewModels
var ecole = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.School).SelectedKey ?? ""; var ecole = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.School).SelectedKey ?? "";
var ritual = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.Ritual).SelectedKey ?? ""; var ritual = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.Ritual).SelectedKey ?? "";
var source = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.Source).SelectedKey ?? ""; var source = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.Source).SelectedKey ?? "";
using (var context = await StoreViewModel.GetLibraryContextAsync()) try
{ {
return context.SpellsVO.Where(spell => using (var context = await StoreViewModel.GetLibraryContextAsync())
levelComparer.Compare(spell.Level, niveauMin) >= 0 && {
levelComparer.Compare(spell.Level, niveauMax) <= 0 && return context.SpellsVO.Where(spell =>
spell.Type.ToLower().Contains(ecole.ToLower()) && levelComparer.Compare(spell.Level, niveauMin) >= 0 &&
(spell.Source != null && spell.Source.Contains(source)) && levelComparer.Compare(spell.Level, niveauMax) <= 0 &&
(spell.Classes != null && spell.Classes.Contains(classe)) && spell.Type.ToLower().Contains(ecole.ToLower()) &&
(string.IsNullOrEmpty(ritual) || (spell.Ritual != null && spell.Ritual.Contains(ritual))) && (spell.Source != null && spell.Source.Contains(source)) &&
( (spell.Classes != null && spell.Classes.Contains(classe)) &&
(Helpers.RemoveDiacritics(spell.Name).ToLower().Contains(Helpers.RemoveDiacritics(SearchText ?? string.Empty).ToLower())) || (string.IsNullOrEmpty(ritual) || (spell.Ritual != null && spell.Ritual.Contains(ritual))) &&
(Helpers.RemoveDiacritics(spell.AltNameText ?? string.Empty).ToLower().Contains(Helpers.RemoveDiacritics(SearchText ?? string.Empty).ToLower())) (
)).OrderBy(spell => spell.Name).ToList(); (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 => spell.Name).ToList();
}
}
catch
{
return new List<Item>();
} }
} }
@ -397,19 +404,26 @@ namespace AideDeJeu.ViewModels
var ecole = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.School).SelectedKey ?? ""; var ecole = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.School).SelectedKey ?? "";
var ritual = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.Ritual).SelectedKey ?? ""; var ritual = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.Ritual).SelectedKey ?? "";
var source = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.Source).SelectedKey ?? ""; var source = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.Source).SelectedKey ?? "";
using (var context = await StoreViewModel.GetLibraryContextAsync()) try
{ {
return context.SpellsHD.Where(spell => using (var context = await StoreViewModel.GetLibraryContextAsync())
levelComparer.Compare(spell.Level, niveauMin) >= 0 && {
levelComparer.Compare(spell.Level, niveauMax) <= 0 && return context.SpellsHD.Where(spell =>
spell.Type.ToLower().Contains(ecole.ToLower()) && levelComparer.Compare(spell.Level, niveauMin) >= 0 &&
(spell.Source != null && spell.Source.Contains(source)) && levelComparer.Compare(spell.Level, niveauMax) <= 0 &&
(spell.Classes != null && spell.Classes.Contains(classe)) && spell.Type.ToLower().Contains(ecole.ToLower()) &&
(string.IsNullOrEmpty(ritual) || (spell.Ritual != null && spell.Ritual.Contains(ritual))) && (spell.Source != null && spell.Source.Contains(source)) &&
( (spell.Classes != null && spell.Classes.Contains(classe)) &&
(Helpers.RemoveDiacritics(spell.Name).ToLower().Contains(Helpers.RemoveDiacritics(SearchText ?? string.Empty).ToLower())) || (string.IsNullOrEmpty(ritual) || (spell.Ritual != null && spell.Ritual.Contains(ritual))) &&
(Helpers.RemoveDiacritics(spell.AltNameText ?? string.Empty).ToLower().Contains(Helpers.RemoveDiacritics(SearchText ?? string.Empty).ToLower())) (
)).OrderBy(spell => spell.Name).ToList(); (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 => spell.Name).ToList();
}
}
catch
{
return new List<Item>();
} }
} }
@ -658,22 +672,28 @@ namespace AideDeJeu.ViewModels
var source = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.Source).SelectedKey ?? ""; var source = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.Source).SelectedKey ?? "";
token.ThrowIfCancellationRequested(); token.ThrowIfCancellationRequested();
using (var context = await StoreViewModel.GetLibraryContextAsync()) try
{ {
return context.MonstersVO.Where(monster => using (var context = await StoreViewModel.GetLibraryContextAsync())
monster != null && {
monster.Type.Contains(type) && return context.MonstersVO.Where(monster =>
(string.IsNullOrEmpty(size) || monster.Size.Equals(size)) && monster != null &&
(string.IsNullOrEmpty(source) || (monster.Source != null && monster.Source.Contains(source))) && monster.Type.Contains(type) &&
powerComparer.Compare(monster.Challenge, minPower) >= 0 && (string.IsNullOrEmpty(size) || monster.Size.Equals(size)) &&
powerComparer.Compare(monster.Challenge, maxPower) <= 0 && (string.IsNullOrEmpty(source) || (monster.Source != null && monster.Source.Contains(source))) &&
( powerComparer.Compare(monster.Challenge, minPower) >= 0 &&
(Helpers.RemoveDiacritics(monster.Name).ToLower().Contains(Helpers.RemoveDiacritics(SearchText ?? string.Empty).ToLower())) || powerComparer.Compare(monster.Challenge, maxPower) <= 0 &&
(Helpers.RemoveDiacritics(monster.AltNameText ?? string.Empty).ToLower().Contains(Helpers.RemoveDiacritics(SearchText ?? string.Empty).ToLower())) (
) (Helpers.RemoveDiacritics(monster.Name).ToLower().Contains(Helpers.RemoveDiacritics(SearchText ?? string.Empty).ToLower())) ||
).OrderBy(monster => monster.Name).ToList(); (Helpers.RemoveDiacritics(monster.AltNameText ?? string.Empty).ToLower().Contains(Helpers.RemoveDiacritics(SearchText ?? string.Empty).ToLower()))
)
).OrderBy(monster => monster.Name).ToList();
}
}
catch
{
return new List<Item>();
} }
} }
public override List<KeyValuePair<string, string>> Categories { get; } = new List<KeyValuePair<string, string>>() public override List<KeyValuePair<string, string>> Categories { get; } = new List<KeyValuePair<string, string>>()
@ -774,22 +794,28 @@ namespace AideDeJeu.ViewModels
var source = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.Source).SelectedKey ?? ""; var source = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.Source).SelectedKey ?? "";
token.ThrowIfCancellationRequested(); token.ThrowIfCancellationRequested();
using (var context = await StoreViewModel.GetLibraryContextAsync()) try
{ {
return context.MonstersHD.Where(monster => using (var context = await StoreViewModel.GetLibraryContextAsync())
monster != null && {
monster.Type.Contains(type) && return context.MonstersHD.Where(monster =>
(string.IsNullOrEmpty(size) || monster.Size.Equals(size)) && monster != null &&
(string.IsNullOrEmpty(source) || (monster.Source != null && monster.Source.Contains(source))) && monster.Type.Contains(type) &&
powerComparer.Compare(monster.Challenge, minPower) >= 0 && (string.IsNullOrEmpty(size) || monster.Size.Equals(size)) &&
powerComparer.Compare(monster.Challenge, maxPower) <= 0 && (string.IsNullOrEmpty(source) || (monster.Source != null && monster.Source.Contains(source))) &&
( powerComparer.Compare(monster.Challenge, minPower) >= 0 &&
(Helpers.RemoveDiacritics(monster.Name).ToLower().Contains(Helpers.RemoveDiacritics(SearchText ?? string.Empty).ToLower())) || powerComparer.Compare(monster.Challenge, maxPower) <= 0 &&
(Helpers.RemoveDiacritics(monster.AltNameText ?? string.Empty).ToLower().Contains(Helpers.RemoveDiacritics(SearchText ?? string.Empty).ToLower())) (
) (Helpers.RemoveDiacritics(monster.Name).ToLower().Contains(Helpers.RemoveDiacritics(SearchText ?? string.Empty).ToLower())) ||
).OrderBy(monster => monster.Name).ToList(); (Helpers.RemoveDiacritics(monster.AltNameText ?? string.Empty).ToLower().Contains(Helpers.RemoveDiacritics(SearchText ?? string.Empty).ToLower()))
)
).OrderBy(monster => monster.Name).ToList();
}
}
catch
{
return new List<Item>();
} }
} }
public override List<KeyValuePair<string, string>> Categories { get; } = new List<KeyValuePair<string, string>>() public override List<KeyValuePair<string, string>> Categories { get; } = new List<KeyValuePair<string, string>>()
{ {
@ -907,18 +933,25 @@ namespace AideDeJeu.ViewModels
var minPrice = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.MinPrice).SelectedKey ?? "0 pc"; var minPrice = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.MinPrice).SelectedKey ?? "0 pc";
var maxPrice = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.MaxPrice).SelectedKey ?? "1 000 000 po"; var maxPrice = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.MaxPrice).SelectedKey ?? "1 000 000 po";
using (var context = await GetLibraryContextAsync()) try
{ {
return context.Equipments.Where(equipment => using (var context = await GetLibraryContextAsync())
equipment.Type.ToLower().Contains(type.ToLower()) && {
priceComparer.Compare(equipment.Price, minPrice) >= 0 && return context.Equipments.Where(equipment =>
priceComparer.Compare(equipment.Price, maxPrice) <= 0 && equipment.Type.ToLower().Contains(type.ToLower()) &&
( priceComparer.Compare(equipment.Price, minPrice) >= 0 &&
(Helpers.RemoveDiacritics(equipment.Name).ToLower().Contains(Helpers.RemoveDiacritics(SearchText ?? string.Empty).ToLower())) || priceComparer.Compare(equipment.Price, maxPrice) <= 0 &&
(Helpers.RemoveDiacritics(equipment.AltNameText ?? string.Empty).ToLower().Contains(Helpers.RemoveDiacritics(SearchText ?? string.Empty).ToLower())) (
) (Helpers.RemoveDiacritics(equipment.Name).ToLower().Contains(Helpers.RemoveDiacritics(SearchText ?? string.Empty).ToLower())) ||
).OrderBy(eq => eq.Name) (Helpers.RemoveDiacritics(equipment.AltNameText ?? string.Empty).ToLower().Contains(Helpers.RemoveDiacritics(SearchText ?? string.Empty).ToLower()))
.ToList(); )
).OrderBy(eq => eq.Name)
.ToList();
}
}
catch
{
return new List<Item>();
} }
} }
@ -1007,14 +1040,21 @@ namespace AideDeJeu.ViewModels
var rarity = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.Rarity).SelectedKey ?? ""; var rarity = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.Rarity).SelectedKey ?? "";
var attunement = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.Attunement).SelectedKey ?? ""; var attunement = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.Attunement).SelectedKey ?? "";
using (var context = await GetLibraryContextAsync()) try
{ {
return context.MagicItems.Where(magicitem => using (var context = await GetLibraryContextAsync())
MatchContains(magicitem.Type, type) && {
MatchContains(magicitem.Rarity, rarity) && return context.MagicItems.Where(magicitem =>
MatchContains(magicitem.Attunement, attunement) && MatchContains(magicitem.Type, type) &&
MatchSearch(magicitem) MatchContains(magicitem.Rarity, rarity) &&
).OrderBy(eq => eq.Name).ToList(); MatchContains(magicitem.Attunement, attunement) &&
MatchSearch(magicitem)
).OrderBy(eq => eq.Name).ToList();
}
}
catch
{
return new List<Item>();
} }
} }

View file

@ -418,9 +418,16 @@ namespace AideDeJeu.ViewModels
{ {
id += $"#{anchor}"; id += $"#{anchor}";
} }
using (var context = await GetLibraryContextAsync()) try
{ {
return await context.Items.Where(item => item.Id == id || item.RootId == id).FirstOrDefaultAsync(); using (var context = await GetLibraryContextAsync())
{
return await context.Items.Where(item => item.Id == id || item.RootId == id).FirstOrDefaultAsync();
}
}
catch
{
return null;
} }
} }

View file

@ -62,9 +62,15 @@ namespace AideDeJeu.Views
async Task InitDBEngineAsync() async Task InitDBEngineAsync()
{ {
await Task.Delay(1000).ConfigureAwait(false); await Task.Delay(1000).ConfigureAwait(false);
using (var context = await StoreViewModel.GetLibraryContextAsync().ConfigureAwait(false)) try
{
using (var context = await StoreViewModel.GetLibraryContextAsync().ConfigureAwait(false))
{
var item = context.Items.FirstOrDefault();
}
}
catch
{ {
var item = context.Items.FirstOrDefault();
} }
} }