mirror of
				https://github.com/Nioux/AideDeJeu.git
				synced 2025-10-31 07:26:09 +00:00 
			
		
		
		
	Nettoyage, suppression d'une couche dans le MVVM
This commit is contained in:
		
							parent
							
								
									fc19a60f70
								
							
						
					
					
						commit
						1585525519
					
				
					 24 changed files with 28 additions and 581 deletions
				
			
		|  | @ -50,7 +50,7 @@ | ||||||
|     <Reference Include="System.Xml" /> |     <Reference Include="System.Xml" /> | ||||||
|   </ItemGroup> |   </ItemGroup> | ||||||
|   <ItemGroup> |   <ItemGroup> | ||||||
|     <PackageReference Include="Xamarin.Forms" Version="2.5.0.280555" /> |     <PackageReference Include="Xamarin.Forms" Version="2.5.1.444934" /> | ||||||
|     <PackageReference Include="Xamarin.Android.Support.Design" Version="25.4.0.2" /> |     <PackageReference Include="Xamarin.Android.Support.Design" Version="25.4.0.2" /> | ||||||
|     <PackageReference Include="Xamarin.Android.Support.v7.AppCompat" Version="25.4.0.2" /> |     <PackageReference Include="Xamarin.Android.Support.v7.AppCompat" Version="25.4.0.2" /> | ||||||
|     <PackageReference Include="Xamarin.Android.Support.v4" Version="25.4.0.2" /> |     <PackageReference Include="Xamarin.Android.Support.v4" Version="25.4.0.2" /> | ||||||
|  |  | ||||||
|  | @ -165,8 +165,8 @@ | ||||||
|     </Page> |     </Page> | ||||||
|   </ItemGroup> |   </ItemGroup> | ||||||
|   <ItemGroup> |   <ItemGroup> | ||||||
|     <PackageReference Include="Xamarin.Forms" Version="2.5.0.280555" /> |     <PackageReference Include="Xamarin.Forms" Version="2.5.1.444934" /> | ||||||
|     <PackageReference Include="Microsoft.NETCore.UniversalWindowsPlatform" Version="6.0.1" /> |     <PackageReference Include="Microsoft.NETCore.UniversalWindowsPlatform" Version="6.1.2" /> | ||||||
|   </ItemGroup> |   </ItemGroup> | ||||||
|   <ItemGroup> |   <ItemGroup> | ||||||
|     <ProjectReference Include="..\AideDeJeu\AideDeJeu.csproj"> |     <ProjectReference Include="..\AideDeJeu\AideDeJeu.csproj"> | ||||||
|  |  | ||||||
|  | @ -122,7 +122,7 @@ | ||||||
|     <Reference Include="Xamarin.iOS" /> |     <Reference Include="Xamarin.iOS" /> | ||||||
|   </ItemGroup> |   </ItemGroup> | ||||||
|   <ItemGroup> |   <ItemGroup> | ||||||
|     <PackageReference Include="Xamarin.Forms" Version="2.5.0.280555" /> |     <PackageReference Include="Xamarin.Forms" Version="2.5.1.444934" /> | ||||||
|   </ItemGroup> |   </ItemGroup> | ||||||
|   <ItemGroup> |   <ItemGroup> | ||||||
|     <BundleResource Include="Resources\tab_about.png" /> |     <BundleResource Include="Resources\tab_about.png" /> | ||||||
|  |  | ||||||
|  | @ -9,7 +9,7 @@ | ||||||
|   </ItemGroup> |   </ItemGroup> | ||||||
| 
 | 
 | ||||||
|   <ItemGroup> |   <ItemGroup> | ||||||
|     <PackageReference Include="Xamarin.Forms" Version="2.5.0.280555" /> |     <PackageReference Include="Xamarin.Forms" Version="2.5.1.444934" /> | ||||||
|   </ItemGroup> |   </ItemGroup> | ||||||
| 
 | 
 | ||||||
|   <ItemGroup> |   <ItemGroup> | ||||||
|  | @ -32,19 +32,15 @@ | ||||||
|     <Compile Update="Views\SpellDetailPage.xaml.cs"> |     <Compile Update="Views\SpellDetailPage.xaml.cs"> | ||||||
|       <DependentUpon>SpellDetailPage.xaml</DependentUpon> |       <DependentUpon>SpellDetailPage.xaml</DependentUpon> | ||||||
|     </Compile> |     </Compile> | ||||||
|     <Compile Update="Views\ItemDetailPage.xaml.cs"> |  | ||||||
|       <SubType>Code</SubType> |  | ||||||
|     </Compile> |  | ||||||
|     <Compile Update="Views\ItemsPage.xaml.cs"> |  | ||||||
|       <SubType>Code</SubType> |  | ||||||
|     </Compile> |  | ||||||
|     <Compile Update="Views\SpellsPage.xaml.cs"> |     <Compile Update="Views\SpellsPage.xaml.cs"> | ||||||
|       <SubType>Code</SubType> |       <SubType>Code</SubType> | ||||||
|       <DependentUpon>SpellsPage.xaml</DependentUpon> |       <DependentUpon>SpellsPage.xaml</DependentUpon> | ||||||
|     </Compile> |     </Compile> | ||||||
|     <Compile Update="Views\NewItemPage.xaml.cs"> |   </ItemGroup> | ||||||
|       <SubType>Code</SubType> | 
 | ||||||
|     </Compile> |   <ItemGroup> | ||||||
|  |     <Folder Include="Models\" /> | ||||||
|  |     <Folder Include="Services\" /> | ||||||
|   </ItemGroup> |   </ItemGroup> | ||||||
| 
 | 
 | ||||||
| </Project> | </Project> | ||||||
|  | @ -1,11 +0,0 @@ | ||||||
| using System; |  | ||||||
| 
 |  | ||||||
| namespace AideDeJeu.Models |  | ||||||
| { |  | ||||||
|     public class Item |  | ||||||
|     { |  | ||||||
|         public string Id { get; set; } |  | ||||||
|         public string Text { get; set; } |  | ||||||
|         public string Description { get; set; } |  | ||||||
|     } |  | ||||||
| } |  | ||||||
|  | @ -1,16 +0,0 @@ | ||||||
| using System; |  | ||||||
| using System.Collections.Generic; |  | ||||||
| using System.Threading.Tasks; |  | ||||||
| 
 |  | ||||||
| namespace AideDeJeu.Services |  | ||||||
| { |  | ||||||
|     public interface IDataStore<T> |  | ||||||
|     { |  | ||||||
|         Task<bool> AddItemAsync(T item); |  | ||||||
|         Task<bool> UpdateItemAsync(T item); |  | ||||||
|         Task<bool> DeleteItemAsync(T item); |  | ||||||
|         Task<T> GetItemAsync(string id); |  | ||||||
|         Task<IEnumerable<T>> GetItemsAsync(bool forceRefresh = false); |  | ||||||
|         Task<IEnumerable<T>> GetItemsAsync(string classe, int niveauMin, int niveauMax, string ecole, string rituel, string source); |  | ||||||
|     } |  | ||||||
| } |  | ||||||
|  | @ -1,78 +0,0 @@ | ||||||
| using System; |  | ||||||
| using System.Collections.Generic; |  | ||||||
| using System.Linq; |  | ||||||
| using System.Threading.Tasks; |  | ||||||
| 
 |  | ||||||
| using AideDeJeu.Models; |  | ||||||
| using AideDeJeuLib; |  | ||||||
| using AideDeJeuLib.Spells; |  | ||||||
| 
 |  | ||||||
| [assembly: Xamarin.Forms.Dependency(typeof(AideDeJeu.Services.MockDataStore))] |  | ||||||
| namespace AideDeJeu.Services |  | ||||||
| { |  | ||||||
|     public class MockDataStore : IDataStore<Item> |  | ||||||
|     { |  | ||||||
|         List<Item> items; |  | ||||||
| 
 |  | ||||||
|         public MockDataStore() |  | ||||||
|         { |  | ||||||
|             items = new List<Item>(); |  | ||||||
|             var mockItems = new List<Item> |  | ||||||
|             { |  | ||||||
|                 new Item { Id = Guid.NewGuid().ToString(), Text = "First item", Description="This is an item description." }, |  | ||||||
|                 new Item { Id = Guid.NewGuid().ToString(), Text = "Second item", Description="This is an item description." }, |  | ||||||
|                 new Item { Id = Guid.NewGuid().ToString(), Text = "Third item", Description="This is an item description." }, |  | ||||||
|                 new Item { Id = Guid.NewGuid().ToString(), Text = "Fourth item", Description="This is an item description." }, |  | ||||||
|                 new Item { Id = Guid.NewGuid().ToString(), Text = "Fifth item", Description="This is an item description." }, |  | ||||||
|                 new Item { Id = Guid.NewGuid().ToString(), Text = "Sixth item", Description="This is an item description." }, |  | ||||||
|             }; |  | ||||||
| 
 |  | ||||||
|             foreach (var item in mockItems) |  | ||||||
|             { |  | ||||||
|                 items.Add(item); |  | ||||||
|             } |  | ||||||
|         } |  | ||||||
| 
 |  | ||||||
|         public async Task<bool> AddItemAsync(Item item) |  | ||||||
|         { |  | ||||||
|             items.Add(item); |  | ||||||
| 
 |  | ||||||
|             return await Task.FromResult(true); |  | ||||||
|         } |  | ||||||
| 
 |  | ||||||
|         public async Task<bool> UpdateItemAsync(Item item) |  | ||||||
|         { |  | ||||||
|             var _item = items.Where((Item arg) => arg.Id == item.Id).FirstOrDefault(); |  | ||||||
|             items.Remove(_item); |  | ||||||
|             items.Add(item); |  | ||||||
| 
 |  | ||||||
|             return await Task.FromResult(true); |  | ||||||
|         } |  | ||||||
| 
 |  | ||||||
|         public async Task<bool> DeleteItemAsync(Item item) |  | ||||||
|         { |  | ||||||
|             var _item = items.Where((Item arg) => arg.Id == item.Id).FirstOrDefault(); |  | ||||||
|             items.Remove(_item); |  | ||||||
| 
 |  | ||||||
|             return await Task.FromResult(true); |  | ||||||
|         } |  | ||||||
| 
 |  | ||||||
|         public async Task<Item> GetItemAsync(string id) |  | ||||||
|         { |  | ||||||
|             return await Task.FromResult(items.FirstOrDefault(s => s.Id == id)); |  | ||||||
|         } |  | ||||||
| 
 |  | ||||||
|         public async Task<IEnumerable<Item>> GetItemsAsync(bool forceRefresh = false) |  | ||||||
|         { |  | ||||||
|             var scrapper = new SpellsScrappers(); |  | ||||||
|             var spells = await scrapper.GetSpells(await scrapper.GetSpellIds("c")); |  | ||||||
|             items = spells.Select(spell => new Item() { Text = spell.Title, Description = spell.DescriptionText }).ToList(); |  | ||||||
|             return await Task.FromResult(items); |  | ||||||
|         } |  | ||||||
|         public async Task<IEnumerable<Item>> GetItemsAsync(string classe, int minLevel, int maxLevel, string ecole, string rituel, string source) |  | ||||||
|         { |  | ||||||
|             return await GetItemsAsync(); |  | ||||||
|         } |  | ||||||
| 
 |  | ||||||
|     } |  | ||||||
| } |  | ||||||
|  | @ -1,79 +0,0 @@ | ||||||
| using System; |  | ||||||
| using System.Collections.Generic; |  | ||||||
| using System.Linq; |  | ||||||
| using System.Threading.Tasks; |  | ||||||
| 
 |  | ||||||
| using AideDeJeu.Models; |  | ||||||
| using AideDeJeuLib; |  | ||||||
| using AideDeJeuLib.Monsters; |  | ||||||
| using AideDeJeuLib.Spells; |  | ||||||
| 
 |  | ||||||
| [assembly: Xamarin.Forms.Dependency(typeof(AideDeJeu.Services.SpellDataStore))] |  | ||||||
| namespace AideDeJeu.Services |  | ||||||
| { |  | ||||||
|     //public class MonsterDataStore : IDataStore<Monster> |  | ||||||
|     //{ |  | ||||||
|     //    List<Spell> items; |  | ||||||
| 
 |  | ||||||
|     //    public MonsterDataStore() |  | ||||||
|     //    { |  | ||||||
|     //        items = new List<Spell>(); |  | ||||||
|     //        var mockItems = new List<Spell> |  | ||||||
|     //        { |  | ||||||
|     //        }; |  | ||||||
| 
 |  | ||||||
|     //        foreach (var item in mockItems) |  | ||||||
|     //        { |  | ||||||
|     //            items.Add(item); |  | ||||||
|     //        } |  | ||||||
|     //    } |  | ||||||
| 
 |  | ||||||
|     //    public async Task<bool> AddItemAsync(Spell item) |  | ||||||
|     //    { |  | ||||||
|     //        items.Add(item); |  | ||||||
| 
 |  | ||||||
|     //        return await Task.FromResult(true); |  | ||||||
|     //    } |  | ||||||
| 
 |  | ||||||
|     //    public async Task<bool> UpdateItemAsync(Spell item) |  | ||||||
|     //    { |  | ||||||
|     //        var _item = items.Where((Spell arg) => arg.Id == item.Id).FirstOrDefault(); |  | ||||||
|     //        items.Remove(_item); |  | ||||||
|     //        items.Add(item); |  | ||||||
| 
 |  | ||||||
|     //        return await Task.FromResult(true); |  | ||||||
|     //    } |  | ||||||
| 
 |  | ||||||
|     //    public async Task<bool> DeleteItemAsync(Spell item) |  | ||||||
|     //    { |  | ||||||
|     //        var _item = items.Where((Spell arg) => arg.Id == item.Id).FirstOrDefault(); |  | ||||||
|     //        items.Remove(_item); |  | ||||||
| 
 |  | ||||||
|     //        return await Task.FromResult(true); |  | ||||||
|     //    } |  | ||||||
| 
 |  | ||||||
|     //    public async Task<Spell> GetItemAsync(string id) |  | ||||||
|     //    { |  | ||||||
|     //        return await Task.FromResult(items.FirstOrDefault(s => s.Id == id)); |  | ||||||
|     //    } |  | ||||||
| 
 |  | ||||||
|     //    public async Task<IEnumerable<Monster>> GetItemsAsync(bool forceRefresh = false) |  | ||||||
|     //    { |  | ||||||
|     //        var scrapper = new MonstersScrappers(); |  | ||||||
|     //        //items = (await scrapper.GetSpells(await scrapper.GetSpellIds(""))).ToList(); |  | ||||||
|     //        items = (await scrapper.GetMonsters()).ToList(); |  | ||||||
| 
 |  | ||||||
|     //        //items = spells.Select(spell => new Item() { Text = spell.Title, Description = spell.DescriptionText }).ToList(); |  | ||||||
|     //        return await Task.FromResult(items); |  | ||||||
|     //    } |  | ||||||
| 
 |  | ||||||
|     //    public async Task<IEnumerable<Monster>> GetItemsAsync(string classe, int niveauMin, int niveauMax, string ecole, string rituel, string source) |  | ||||||
|     //    { |  | ||||||
|     //        var scrapper = new MonstersScrappers(); |  | ||||||
|     //        items = (await scrapper.GetMonsters(classe: classe, niveauMin: niveauMin, niveauMax: niveauMax, ecole: ecole, rituel: rituel, source: source)).ToList(); |  | ||||||
| 
 |  | ||||||
|     //        return await Task.FromResult(items); |  | ||||||
|     //    } |  | ||||||
| 
 |  | ||||||
|     //} |  | ||||||
| } |  | ||||||
|  | @ -1,78 +0,0 @@ | ||||||
| using System; |  | ||||||
| using System.Collections.Generic; |  | ||||||
| using System.Linq; |  | ||||||
| using System.Threading.Tasks; |  | ||||||
| 
 |  | ||||||
| using AideDeJeu.Models; |  | ||||||
| using AideDeJeuLib; |  | ||||||
| using AideDeJeuLib.Spells; |  | ||||||
| 
 |  | ||||||
| [assembly: Xamarin.Forms.Dependency(typeof(AideDeJeu.Services.SpellDataStore))] |  | ||||||
| namespace AideDeJeu.Services |  | ||||||
| { |  | ||||||
|     public class SpellDataStore : IDataStore<Spell> |  | ||||||
|     { |  | ||||||
|         List<Spell> items; |  | ||||||
| 
 |  | ||||||
|         public SpellDataStore() |  | ||||||
|         { |  | ||||||
|             items = new List<Spell>(); |  | ||||||
|             var mockItems = new List<Spell> |  | ||||||
|             { |  | ||||||
|             }; |  | ||||||
| 
 |  | ||||||
|             foreach (var item in mockItems) |  | ||||||
|             { |  | ||||||
|                 items.Add(item); |  | ||||||
|             } |  | ||||||
|         } |  | ||||||
| 
 |  | ||||||
|         public async Task<bool> AddItemAsync(Spell item) |  | ||||||
|         { |  | ||||||
|             items.Add(item); |  | ||||||
| 
 |  | ||||||
|             return await Task.FromResult(true); |  | ||||||
|         } |  | ||||||
| 
 |  | ||||||
|         public async Task<bool> UpdateItemAsync(Spell item) |  | ||||||
|         { |  | ||||||
|             var _item = items.Where((Spell arg) => arg.Id == item.Id).FirstOrDefault(); |  | ||||||
|             items.Remove(_item); |  | ||||||
|             items.Add(item); |  | ||||||
| 
 |  | ||||||
|             return await Task.FromResult(true); |  | ||||||
|         } |  | ||||||
| 
 |  | ||||||
|         public async Task<bool> DeleteItemAsync(Spell item) |  | ||||||
|         { |  | ||||||
|             var _item = items.Where((Spell arg) => arg.Id == item.Id).FirstOrDefault(); |  | ||||||
|             items.Remove(_item); |  | ||||||
| 
 |  | ||||||
|             return await Task.FromResult(true); |  | ||||||
|         } |  | ||||||
| 
 |  | ||||||
|         public async Task<Spell> GetItemAsync(string id) |  | ||||||
|         { |  | ||||||
|             return await Task.FromResult(items.FirstOrDefault(s => s.Id == id)); |  | ||||||
|         } |  | ||||||
| 
 |  | ||||||
|         public async Task<IEnumerable<Spell>> GetItemsAsync(bool forceRefresh = false) |  | ||||||
|         { |  | ||||||
|             var scrapper = new SpellsScrappers(); |  | ||||||
|             //items = (await scrapper.GetSpells(await scrapper.GetSpellIds(""))).ToList(); |  | ||||||
|             items = (await scrapper.GetSpells()).ToList(); |  | ||||||
| 
 |  | ||||||
|             //items = spells.Select(spell => new Item() { Text = spell.Title, Description = spell.DescriptionText }).ToList(); |  | ||||||
|             return await Task.FromResult(items); |  | ||||||
|         } |  | ||||||
| 
 |  | ||||||
|         public async Task<IEnumerable<Spell>> GetItemsAsync(string classe, int niveauMin, int niveauMax, string ecole, string rituel, string source) |  | ||||||
|         { |  | ||||||
|             var scrapper = new SpellsScrappers(); |  | ||||||
|             items = (await scrapper.GetSpells(classe: classe, niveauMin: niveauMin, niveauMax: niveauMax, ecole: ecole, rituel: rituel, source: source)).ToList(); |  | ||||||
| 
 |  | ||||||
|             return await Task.FromResult(items); |  | ||||||
|         } |  | ||||||
| 
 |  | ||||||
|     } |  | ||||||
| } |  | ||||||
|  | @ -5,17 +5,17 @@ using System.Runtime.CompilerServices; | ||||||
| 
 | 
 | ||||||
| using Xamarin.Forms; | using Xamarin.Forms; | ||||||
| 
 | 
 | ||||||
| using AideDeJeu.Models; |  | ||||||
| using AideDeJeu.Services; |  | ||||||
| using AideDeJeuLib; |  | ||||||
| using AideDeJeuLib.Spells; | using AideDeJeuLib.Spells; | ||||||
|  | using AideDeJeuLib.Monsters; | ||||||
| 
 | 
 | ||||||
| namespace AideDeJeu.ViewModels | namespace AideDeJeu.ViewModels | ||||||
| { | { | ||||||
|     public class BaseViewModel : INotifyPropertyChanged |     public class BaseViewModel : INotifyPropertyChanged | ||||||
|     { |     { | ||||||
|         public IDataStore<Item> DataStore => DependencyService.Get<IDataStore<Item>>() ?? new MockDataStore(); |         //public IDataStore<Item> DataStore => DependencyService.Get<IDataStore<Item>>() ?? new MockDataStore(); | ||||||
|         public IDataStore<Spell> SpellDataStore => DependencyService.Get<IDataStore<Spell>>() ?? new SpellDataStore(); |         //public IDataStore<Spell> SpellDataStore => DependencyService.Get<IDataStore<Spell>>() ?? new SpellDataStore(); | ||||||
|  |         public SpellsScrappers SpellsScrappers => DependencyService.Get<SpellsScrappers>() ?? new SpellsScrappers(); | ||||||
|  |         public MonstersScrappers MonsterScrappers => DependencyService.Get<MonstersScrappers>() ?? new MonstersScrappers(); | ||||||
| 
 | 
 | ||||||
|         bool isBusy = false; |         bool isBusy = false; | ||||||
|         public bool IsBusy |         public bool IsBusy | ||||||
|  |  | ||||||
|  | @ -1,16 +0,0 @@ | ||||||
| using System; |  | ||||||
| 
 |  | ||||||
| using AideDeJeu.Models; |  | ||||||
| 
 |  | ||||||
| namespace AideDeJeu.ViewModels |  | ||||||
| { |  | ||||||
|     public class ItemDetailViewModel : BaseViewModel |  | ||||||
|     { |  | ||||||
|         public Item Item { get; set; } |  | ||||||
|         public ItemDetailViewModel(Item item = null) |  | ||||||
|         { |  | ||||||
|             Title = item?.Text; |  | ||||||
|             Item = item; |  | ||||||
|         } |  | ||||||
|     } |  | ||||||
| } |  | ||||||
|  | @ -1,58 +0,0 @@ | ||||||
| using System; |  | ||||||
| using System.Collections.ObjectModel; |  | ||||||
| using System.Diagnostics; |  | ||||||
| using System.Threading.Tasks; |  | ||||||
| 
 |  | ||||||
| using Xamarin.Forms; |  | ||||||
| 
 |  | ||||||
| using AideDeJeu.Models; |  | ||||||
| using AideDeJeu.Views; |  | ||||||
| 
 |  | ||||||
| namespace AideDeJeu.ViewModels |  | ||||||
| { |  | ||||||
|     public class ItemsViewModel : BaseViewModel |  | ||||||
|     { |  | ||||||
|         public ObservableCollection<Item> Items { get; set; } |  | ||||||
|         public Command LoadItemsCommand { get; set; } |  | ||||||
| 
 |  | ||||||
|         public ItemsViewModel() |  | ||||||
|         { |  | ||||||
|             Title = "Browse"; |  | ||||||
|             Items = new ObservableCollection<Item>(); |  | ||||||
|             LoadItemsCommand = new Command(async () => await ExecuteLoadItemsCommand()); |  | ||||||
| 
 |  | ||||||
|             MessagingCenter.Subscribe<NewItemPage, Item>(this, "AddItem", async (obj, item) => |  | ||||||
|             { |  | ||||||
|                 var _item = item as Item; |  | ||||||
|                 Items.Add(_item); |  | ||||||
|                 await DataStore.AddItemAsync(_item); |  | ||||||
|             }); |  | ||||||
|         } |  | ||||||
| 
 |  | ||||||
|         async Task ExecuteLoadItemsCommand() |  | ||||||
|         { |  | ||||||
|             if (IsBusy) |  | ||||||
|                 return; |  | ||||||
| 
 |  | ||||||
|             IsBusy = true; |  | ||||||
| 
 |  | ||||||
|             try |  | ||||||
|             { |  | ||||||
|                 Items.Clear(); |  | ||||||
|                 var items = await DataStore.GetItemsAsync(true); |  | ||||||
|                 foreach (var item in items) |  | ||||||
|                 { |  | ||||||
|                     Items.Add(item); |  | ||||||
|                 } |  | ||||||
|             } |  | ||||||
|             catch (Exception ex) |  | ||||||
|             { |  | ||||||
|                 Debug.WriteLine(ex); |  | ||||||
|             } |  | ||||||
|             finally |  | ||||||
|             { |  | ||||||
|                 IsBusy = false; |  | ||||||
|             } |  | ||||||
|         } |  | ||||||
|     } |  | ||||||
| } |  | ||||||
|  | @ -5,10 +5,6 @@ using System.Threading.Tasks; | ||||||
| 
 | 
 | ||||||
| using Xamarin.Forms; | using Xamarin.Forms; | ||||||
| 
 | 
 | ||||||
| using AideDeJeu.Models; |  | ||||||
| using AideDeJeu.Views; |  | ||||||
| using AideDeJeuLib; |  | ||||||
| using AideDeJeuLib.Spells; |  | ||||||
| using System.Collections.Generic; | using System.Collections.Generic; | ||||||
| using AideDeJeuLib.Monsters; | using AideDeJeuLib.Monsters; | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -5,9 +5,6 @@ using System.Threading.Tasks; | ||||||
| 
 | 
 | ||||||
| using Xamarin.Forms; | using Xamarin.Forms; | ||||||
| 
 | 
 | ||||||
| using AideDeJeu.Models; |  | ||||||
| using AideDeJeu.Views; |  | ||||||
| using AideDeJeuLib; |  | ||||||
| using AideDeJeuLib.Spells; | using AideDeJeuLib.Spells; | ||||||
| using System.Collections.Generic; | using System.Collections.Generic; | ||||||
| 
 | 
 | ||||||
|  | @ -194,7 +191,7 @@ namespace AideDeJeu.ViewModels | ||||||
|                 //<option value="k">Sorcier</option> |                 //<option value="k">Sorcier</option> | ||||||
| 
 | 
 | ||||||
|                 Items.Clear(); |                 Items.Clear(); | ||||||
|                 var items = await SpellDataStore.GetItemsAsync(classe: Classes[Classe].Key, niveauMin: NiveauMin, niveauMax: NiveauMax, ecole: Ecoles[Ecole].Key, rituel: Rituels[Rituel].Key, source: Sources[Source].Key); |                 var items = await SpellsScrappers.GetSpells(classe: Classes[Classe].Key, niveauMin: NiveauMin, niveauMax: NiveauMax, ecole: Ecoles[Ecole].Key, rituel: Rituels[Rituel].Key, source: Sources[Source].Key); | ||||||
|                 foreach (var item in items) |                 foreach (var item in items) | ||||||
|                 { |                 { | ||||||
|                     Items.Add(item); |                     Items.Add(item); | ||||||
|  |  | ||||||
|  | @ -1,10 +0,0 @@ | ||||||
| <?xml version="1.0" encoding="utf-8" ?> |  | ||||||
| <ContentPage xmlns="http://xamarin.com/schemas/2014/forms" |  | ||||||
|              xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" |  | ||||||
|              x:Class="AideDeJeu.Views.ItemDetailPage" |  | ||||||
|              Title="{Binding Title}"> |  | ||||||
|     <StackLayout Spacing="20" Padding="15"> |  | ||||||
|         <Label Text="{Binding Item.Text}" Style="{StaticResource Key=section}" /> |  | ||||||
|         <Label Text="{Binding Item.Description}" Style="{StaticResource Key=subsection}" /> |  | ||||||
|     </StackLayout> |  | ||||||
| </ContentPage> |  | ||||||
|  | @ -1,37 +0,0 @@ | ||||||
| using System; |  | ||||||
| 
 |  | ||||||
| using Xamarin.Forms; |  | ||||||
| using Xamarin.Forms.Xaml; |  | ||||||
| 
 |  | ||||||
| using AideDeJeu.Models; |  | ||||||
| using AideDeJeu.ViewModels; |  | ||||||
| 
 |  | ||||||
| namespace AideDeJeu.Views |  | ||||||
| { |  | ||||||
| 	[XamlCompilation(XamlCompilationOptions.Compile)] |  | ||||||
| 	public partial class ItemDetailPage : ContentPage |  | ||||||
| 	{ |  | ||||||
|         ItemDetailViewModel viewModel; |  | ||||||
| 
 |  | ||||||
|         public ItemDetailPage(ItemDetailViewModel viewModel) |  | ||||||
|         { |  | ||||||
|             InitializeComponent(); |  | ||||||
| 
 |  | ||||||
|             BindingContext = this.viewModel = viewModel; |  | ||||||
|         } |  | ||||||
| 
 |  | ||||||
|         public ItemDetailPage() |  | ||||||
|         { |  | ||||||
|             InitializeComponent(); |  | ||||||
| 
 |  | ||||||
|             var item = new Item |  | ||||||
|             { |  | ||||||
|                 Text = "Item 1", |  | ||||||
|                 Description = "This is an item description." |  | ||||||
|             }; |  | ||||||
| 
 |  | ||||||
|             viewModel = new ItemDetailViewModel(item); |  | ||||||
|             BindingContext = viewModel; |  | ||||||
|         } |  | ||||||
|     } |  | ||||||
| } |  | ||||||
|  | @ -1,40 +0,0 @@ | ||||||
| <?xml version="1.0" encoding="utf-8" ?> |  | ||||||
| <ContentPage xmlns="http://xamarin.com/schemas/2014/forms" |  | ||||||
|              xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" |  | ||||||
|              x:Class="AideDeJeu.Views.ItemsPage" |  | ||||||
|               Title="{Binding Title}" |  | ||||||
|              x:Name="BrowseItemsPage"> |  | ||||||
|     <ContentPage.ToolbarItems> |  | ||||||
|         <ToolbarItem Text="Add" Clicked="AddItem_Clicked" /> |  | ||||||
|     </ContentPage.ToolbarItems> |  | ||||||
|     <ContentPage.Content> |  | ||||||
|         <StackLayout> |  | ||||||
|             <ListView x:Name="ItemsListView"  |  | ||||||
|                 ItemsSource="{Binding Items}" |  | ||||||
|                 VerticalOptions="FillAndExpand" |  | ||||||
|                  HasUnevenRows="true" |  | ||||||
|                  RefreshCommand="{Binding LoadItemsCommand}" |  | ||||||
|                  IsPullToRefreshEnabled="true" |  | ||||||
|                  IsRefreshing="{Binding IsBusy, Mode=OneWay}" |  | ||||||
|                  CachingStrategy="RecycleElement" |  | ||||||
|                  ItemSelected="OnItemSelected"> |  | ||||||
|                 <ListView.ItemTemplate> |  | ||||||
|                     <DataTemplate> |  | ||||||
|                         <ViewCell> |  | ||||||
|                             <StackLayout Padding="10"> |  | ||||||
|                                 <Label Text="{Binding Text}"  |  | ||||||
|                        LineBreakMode="NoWrap"  |  | ||||||
|                        Style="{DynamicResource ListItemTextStyle}"  |  | ||||||
|                        FontSize="16" /> |  | ||||||
|                                 <Label Text="{Binding Description}"  |  | ||||||
|                        LineBreakMode="NoWrap" |  | ||||||
|                        Style="{DynamicResource ListItemDetailTextStyle}" |  | ||||||
|                        FontSize="13" /> |  | ||||||
|                             </StackLayout> |  | ||||||
|                         </ViewCell> |  | ||||||
|                     </DataTemplate> |  | ||||||
|                 </ListView.ItemTemplate> |  | ||||||
|             </ListView> |  | ||||||
|         </StackLayout> |  | ||||||
|     </ContentPage.Content> |  | ||||||
| </ContentPage> |  | ||||||
|  | @ -1,53 +0,0 @@ | ||||||
| using System; |  | ||||||
| using System.Collections.Generic; |  | ||||||
| using System.Linq; |  | ||||||
| using System.Text; |  | ||||||
| using System.Threading.Tasks; |  | ||||||
| 
 |  | ||||||
| using Xamarin.Forms; |  | ||||||
| using Xamarin.Forms.Xaml; |  | ||||||
| 
 |  | ||||||
| using AideDeJeu.Models; |  | ||||||
| using AideDeJeu.Views; |  | ||||||
| using AideDeJeu.ViewModels; |  | ||||||
| 
 |  | ||||||
| namespace AideDeJeu.Views |  | ||||||
| { |  | ||||||
| 	[XamlCompilation(XamlCompilationOptions.Compile)] |  | ||||||
| 	public partial class ItemsPage : ContentPage |  | ||||||
| 	{ |  | ||||||
|         ItemsViewModel viewModel; |  | ||||||
| 
 |  | ||||||
|         public ItemsPage() |  | ||||||
|         { |  | ||||||
|             InitializeComponent(); |  | ||||||
| 
 |  | ||||||
|             BindingContext = viewModel = new ItemsViewModel(); |  | ||||||
|         } |  | ||||||
| 
 |  | ||||||
|         async void OnItemSelected(object sender, SelectedItemChangedEventArgs args) |  | ||||||
|         { |  | ||||||
|             var item = args.SelectedItem as Item; |  | ||||||
|             if (item == null) |  | ||||||
|                 return; |  | ||||||
| 
 |  | ||||||
|             await Navigation.PushAsync(new ItemDetailPage(new ItemDetailViewModel(item))); |  | ||||||
| 
 |  | ||||||
|             // Manually deselect item. |  | ||||||
|             ItemsListView.SelectedItem = null; |  | ||||||
|         } |  | ||||||
| 
 |  | ||||||
|         async void AddItem_Clicked(object sender, EventArgs e) |  | ||||||
|         { |  | ||||||
|             await Navigation.PushModalAsync(new NavigationPage(new NewItemPage())); |  | ||||||
|         } |  | ||||||
| 
 |  | ||||||
|         protected override void OnAppearing() |  | ||||||
|         { |  | ||||||
|             base.OnAppearing(); |  | ||||||
| 
 |  | ||||||
|             if (viewModel.Items.Count == 0) |  | ||||||
|                 viewModel.LoadItemsCommand.Execute(null); |  | ||||||
|         } |  | ||||||
|     } |  | ||||||
| } |  | ||||||
|  | @ -1,14 +1,9 @@ | ||||||
| using System; |  | ||||||
| 
 | using AideDeJeu.ViewModels; | ||||||
|  | using AideDeJeuLib.Monsters; | ||||||
| using Xamarin.Forms; | using Xamarin.Forms; | ||||||
| using Xamarin.Forms.Xaml; | using Xamarin.Forms.Xaml; | ||||||
| 
 | 
 | ||||||
| using AideDeJeu.Models; |  | ||||||
| using AideDeJeu.ViewModels; |  | ||||||
| using AideDeJeuLib; |  | ||||||
| using AideDeJeuLib.Spells; |  | ||||||
| using AideDeJeuLib.Monsters; |  | ||||||
| 
 |  | ||||||
| namespace AideDeJeu.Views | namespace AideDeJeu.Views | ||||||
| { | { | ||||||
|     [XamlCompilation(XamlCompilationOptions.Compile)] |     [XamlCompilation(XamlCompilationOptions.Compile)] | ||||||
|  |  | ||||||
|  | @ -1,8 +1,5 @@ | ||||||
| using AideDeJeu.Models; | using AideDeJeu.ViewModels; | ||||||
| using AideDeJeu.ViewModels; |  | ||||||
| using AideDeJeuLib; |  | ||||||
| using AideDeJeuLib.Monsters; | using AideDeJeuLib.Monsters; | ||||||
| using AideDeJeuLib.Spells; |  | ||||||
| using System; | using System; | ||||||
| 
 | 
 | ||||||
| using Xamarin.Forms; | using Xamarin.Forms; | ||||||
|  |  | ||||||
|  | @ -1,17 +0,0 @@ | ||||||
| <?xml version="1.0" encoding="UTF-8"?> |  | ||||||
| <ContentPage xmlns="http://xamarin.com/schemas/2014/forms"  |  | ||||||
|              xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"  |  | ||||||
|              x:Class="AideDeJeu.Views.NewItemPage" |  | ||||||
| 		     Title="New Item"> |  | ||||||
|     <ContentPage.ToolbarItems> |  | ||||||
|         <ToolbarItem Text="Save" Clicked="Save_Clicked" /> |  | ||||||
|     </ContentPage.ToolbarItems> |  | ||||||
|     <ContentPage.Content> |  | ||||||
|         <StackLayout Spacing="20" Padding="15"> |  | ||||||
|             <Label Text="Text" FontSize="Medium" /> |  | ||||||
|             <Entry Text="{Binding Item.Text}" FontSize="Small" /> |  | ||||||
|             <Label Text="Description" FontSize="Medium" /> |  | ||||||
|             <Editor Text="{Binding Item.Description}" FontSize="Small" Margin="0" /> |  | ||||||
|         </StackLayout> |  | ||||||
|     </ContentPage.Content> |  | ||||||
| </ContentPage> |  | ||||||
|  | @ -1,35 +0,0 @@ | ||||||
| using System; |  | ||||||
| using System.Collections.Generic; |  | ||||||
| 
 |  | ||||||
| using Xamarin.Forms; |  | ||||||
| using Xamarin.Forms.Xaml; |  | ||||||
| 
 |  | ||||||
| using AideDeJeu.Models; |  | ||||||
| 
 |  | ||||||
| namespace AideDeJeu.Views |  | ||||||
| { |  | ||||||
|     [XamlCompilation(XamlCompilationOptions.Compile)] |  | ||||||
|     public partial class NewItemPage : ContentPage |  | ||||||
|     { |  | ||||||
|         public Item Item { get; set; } |  | ||||||
| 
 |  | ||||||
|         public NewItemPage() |  | ||||||
|         { |  | ||||||
|             InitializeComponent(); |  | ||||||
| 
 |  | ||||||
|             Item = new Item |  | ||||||
|             { |  | ||||||
|                 Text = "Item name", |  | ||||||
|                 Description = "This is an item description." |  | ||||||
|             }; |  | ||||||
| 
 |  | ||||||
|             BindingContext = this; |  | ||||||
|         } |  | ||||||
| 
 |  | ||||||
|         async void Save_Clicked(object sender, EventArgs e) |  | ||||||
|         { |  | ||||||
|             MessagingCenter.Send(this, "AddItem", Item); |  | ||||||
|             await Navigation.PopModalAsync(); |  | ||||||
|         } |  | ||||||
|     } |  | ||||||
| } |  | ||||||
|  | @ -1,13 +1,9 @@ | ||||||
| using System; |  | ||||||
| 
 | using AideDeJeu.ViewModels; | ||||||
|  | using AideDeJeuLib.Spells; | ||||||
| using Xamarin.Forms; | using Xamarin.Forms; | ||||||
| using Xamarin.Forms.Xaml; | using Xamarin.Forms.Xaml; | ||||||
| 
 | 
 | ||||||
| using AideDeJeu.Models; |  | ||||||
| using AideDeJeu.ViewModels; |  | ||||||
| using AideDeJeuLib; |  | ||||||
| using AideDeJeuLib.Spells; |  | ||||||
| 
 |  | ||||||
| namespace AideDeJeu.Views | namespace AideDeJeu.Views | ||||||
| { | { | ||||||
|     [XamlCompilation(XamlCompilationOptions.Compile)] |     [XamlCompilation(XamlCompilationOptions.Compile)] | ||||||
|  |  | ||||||
|  | @ -1,6 +1,4 @@ | ||||||
| using AideDeJeu.Models; | using AideDeJeu.ViewModels; | ||||||
| using AideDeJeu.ViewModels; |  | ||||||
| using AideDeJeuLib; |  | ||||||
| using AideDeJeuLib.Spells; | using AideDeJeuLib.Spells; | ||||||
| using System; | using System; | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Yan Maniez
						Yan Maniez