From 73bc6f8a022aedbbcdc4dc835e0095e90bcbb8f3 Mon Sep 17 00:00:00 2001 From: Yan Maniez Date: Fri, 12 Apr 2019 01:01:08 +0200 Subject: [PATCH] Presque... --- .../Backgrounds/BackgroundSpecialtyItem.cs | 27 ++++++++++++++++++- .../PlayerCharacterEditorViewModel.cs | 21 ++++++++------- .../Views/PlayerCharacterEditorPage.xaml | 3 ++- 3 files changed, 39 insertions(+), 12 deletions(-) diff --git a/AideDeJeu/AideDeJeu/Models/Backgrounds/BackgroundSpecialtyItem.cs b/AideDeJeu/AideDeJeu/Models/Backgrounds/BackgroundSpecialtyItem.cs index 0f4d8d79..67979c4b 100644 --- a/AideDeJeu/AideDeJeu/Models/Backgrounds/BackgroundSpecialtyItem.cs +++ b/AideDeJeu/AideDeJeu/Models/Backgrounds/BackgroundSpecialtyItem.cs @@ -1,8 +1,33 @@ -namespace AideDeJeuLib +using System.Collections.Generic; +using System.Linq; + +namespace AideDeJeuLib { public class BackgroundSpecialtyItem : Item, TableProperty { public string Table { get; set; } + public List BindableTable + { + get + { + return ExtractSimpleTable(Table); + } + } + public List ExtractSimpleTable(string table) + { + var lines = table.Split('\n'); + var result = new List(); + foreach (var line in lines.Skip(2)) + { + if (line.StartsWith("|")) + { + var cols = line.Split('|'); + var text = cols[2].Replace("", " ").Replace(" ", " "); + result.Add(text); + } + } + return result; + } } } diff --git a/AideDeJeu/AideDeJeu/ViewModels/PlayerCharacterEditorViewModel.cs b/AideDeJeu/AideDeJeu/ViewModels/PlayerCharacterEditorViewModel.cs index 198f62c0..625b31d0 100644 --- a/AideDeJeu/AideDeJeu/ViewModels/PlayerCharacterEditorViewModel.cs +++ b/AideDeJeu/AideDeJeu/ViewModels/PlayerCharacterEditorViewModel.cs @@ -1,6 +1,7 @@ using AideDeJeu.Tools; using AideDeJeuLib; using Microsoft.EntityFrameworkCore; +using System; using System.Collections.Generic; using System.Linq; using System.Text.RegularExpressions; @@ -24,7 +25,7 @@ namespace AideDeJeu.ViewModels PersonalityIdeals = new NotifyTaskCompletion>(null); PersonalityLinks = new NotifyTaskCompletion>(null); PersonalityDefects = new NotifyTaskCompletion>(null); - BackgroundSpecialties = new NotifyTaskCompletion>(null); + BackgroundSpecialties = new NotifyTaskCompletion(null); } #region Selected PC @@ -192,7 +193,7 @@ namespace AideDeJeu.ViewModels PersonalityIdeals = new NotifyTaskCompletion>(Task.Run(() => LoadPersonalityIdealsAsync(SelectedPlayerCharacter.Background))); PersonalityLinks = new NotifyTaskCompletion>(Task.Run(() => LoadPersonalityLinksAsync(SelectedPlayerCharacter.Background))); PersonalityDefects = new NotifyTaskCompletion>(Task.Run(() => LoadPersonalityDefectsAsync(SelectedPlayerCharacter.Background))); - BackgroundSpecialties = new NotifyTaskCompletion>(Task.Run(() => LoadBackgroundsSpecialtiesAsync(SelectedPlayerCharacter.Background))); + BackgroundSpecialties = new NotifyTaskCompletion(Task.Run(() => LoadBackgroundsSpecialtiesAsync(SelectedPlayerCharacter.Background))); Task.Run(async () => SelectedPlayerCharacter.BackgroundSkill = await LoadSkillAsync(SelectedPlayerCharacter.Background)); SelectedPlayerCharacter.SubBackground = null; SelectedPlayerCharacter.PersonalityTrait = null; @@ -249,7 +250,7 @@ namespace AideDeJeu.ViewModels } else { - SubBackgroundSpecialties = new NotifyTaskCompletion>(Task.Run(() => LoadBackgroundsSpecialtiesAsync(SelectedPlayerCharacter.SubBackground))); + SubBackgroundSpecialties = new NotifyTaskCompletion(Task.Run(() => LoadBackgroundsSpecialtiesAsync(SelectedPlayerCharacter.SubBackground))); Task.Run(async () => SelectedPlayerCharacter.SubBackgroundSkill = await LoadSkillAsync(SelectedPlayerCharacter.SubBackground)); } } @@ -302,8 +303,8 @@ namespace AideDeJeu.ViewModels SetProperty(ref _PersonalityDefects, value); } } - private NotifyTaskCompletion> _BackgroundSpecialties = null; - public NotifyTaskCompletion> BackgroundSpecialties + private NotifyTaskCompletion _BackgroundSpecialties = null; + public NotifyTaskCompletion BackgroundSpecialties { get { @@ -315,8 +316,8 @@ namespace AideDeJeu.ViewModels OnPropertyChanged(nameof(SelectedBackgroundSpecialties)); } } - private NotifyTaskCompletion> _SubBackgroundSpecialties = null; - public NotifyTaskCompletion> SubBackgroundSpecialties + private NotifyTaskCompletion _SubBackgroundSpecialties = null; + public NotifyTaskCompletion SubBackgroundSpecialties { get { @@ -328,7 +329,7 @@ namespace AideDeJeu.ViewModels OnPropertyChanged(nameof(SelectedBackgroundSpecialties)); } } - public NotifyTaskCompletion> SelectedBackgroundSpecialties + public NotifyTaskCompletion SelectedBackgroundSpecialties { get { @@ -425,7 +426,7 @@ namespace AideDeJeu.ViewModels } } - public async Task> LoadBackgroundsSpecialtiesAsync(BackgroundItem background) + public async Task LoadBackgroundsSpecialtiesAsync(BackgroundItem background) { if (background != null) { @@ -433,7 +434,7 @@ namespace AideDeJeu.ViewModels { var list = await context.BackgroundSpecialties.Where(it => it.ParentLink == background.Id).ToListAsync().ConfigureAwait(false); var item = list.FirstOrDefault(); - return item == null ? null : ExtractSimpleTable(item.Table); + return item; } } else diff --git a/AideDeJeu/AideDeJeu/Views/PlayerCharacterEditorPage.xaml b/AideDeJeu/AideDeJeu/Views/PlayerCharacterEditorPage.xaml index f2a103a8..3ee523c0 100644 --- a/AideDeJeu/AideDeJeu/Views/PlayerCharacterEditorPage.xaml +++ b/AideDeJeu/AideDeJeu/Views/PlayerCharacterEditorPage.xaml @@ -59,7 +59,8 @@ - + +