Correction finale

pull/29/head
Augustin AFFOGNON 2 years ago
parent 6377ed7ccf
commit 2fe259c855

@ -1,6 +1,12 @@
using System; using System;
using System.Net;
using System.Runtime.ConstrainedExecution;
using Blazorise;
using System.Text;
using BlazorT.Models; using BlazorT.Models;
using Microsoft.AspNetCore.Components; using Microsoft.AspNetCore.Components;
using Microsoft.AspNetCore.Routing;
using static System.Collections.Specialized.BitVector32;
namespace BlazorT.Composants namespace BlazorT.Composants
{ {
@ -21,49 +27,95 @@ namespace BlazorT.Composants
[CascadingParameter] [CascadingParameter]
public Crafting Parent { get; set; } public Crafting Parent { get; set; }
///<summary>
/// Cette méthode est appelée lorsque l'utilisateur commence à faire glisser un élément
/// sur cette zone de dépôt(drop zone).
///Si la propriété NoDrop est définie à true, cette méthode ne fait rien.
/// Sinon, elle ajoute une nouvelle action de crafting dans la liste d'actions de l'objet Parent
//en utilisant les propriétés Item et Index de cet objet, et incrémente la variable Count de 1.
///</summary>
///
internal void OnDragEnter() internal void OnDragEnter()
{ {
if (NoDrop) if (NoDrop)
{ {
// Si la propriété NoDrop est définie à true, ne rien faire.
return; return;
}
}
// Ajouter une nouvelle action de crafting dans la liste d'actions de l'objet Parent
Parent.Actions.Add(new CraftingAction { Action = "Drag Enter", Item = this.Item, Index = this.Index }); Parent.Actions.Add(new CraftingAction { Action = "Drag Enter", Item = this.Item, Index = this.Index });
// Incrémenter la variable Count de 1.
Count += 1; Count += 1;
} }
///<summary>
///
/// Cette méthode est appelée lorsque l'utilisateur arrête de faire glisser un élément sur cette zone de dépôt (drop zone)
/// Si la propriété NoDrop est définie à true, cette méthode ne fait rien.
///Sinon, elle réinitialise les propriétés Item et Count de cet objet, et ajoute une nouvelle action de crafting
/// dans la liste d'actions de l'objet Parent en utilisant les propriétés Item et Index de cet objet.
/// </summary>
internal void OnDragLeave() internal void OnDragLeave()
{ {
if (NoDrop) if (NoDrop)
{ {
// Si la propriété NoDrop est définie à true, ne rien faire.
return; return;
} }
// Réinitialiser les propriétés Item et Count de cet objet.
Count = 0; Count = 0;
Item = null; Item = null;
// Ajouter une nouvelle action de crafting dans la liste d'actions de l'objet Parent
Parent.Actions.Add(new CraftingAction { Action = "Drag Leave", Item = this.Item, Index = this.Index }); Parent.Actions.Add(new CraftingAction { Action = "Drag Leave", Item = this.Item, Index = this.Index });
} }
///<summary>
///Cette méthode est appelée lorsque l'utilisateur lâche un élément sur cette zone de dépôt (drop zone).
///Si la propriété NoDrop est définie à true, cette méthode ne fait rien.
///Sinon, elle définit la propriété Item de cet objet avec l'élément actuellement en train d'être glissé-déposé,
///met à jour la liste Parent.RecipeItems avec cet élément à l'index correspondant, ajoute une nouvelle action de crafting
///dans la liste d'actions de l'objet Parent en utilisant les propriétés Item et Index de cet objet, et vérifie si la recette est complète.
/// </summary>
internal void OnDrop() internal void OnDrop()
{ {
if (NoDrop) if (NoDrop)
{ {
// Si la propriété NoDrop est définie à true, ne rien faire.
return; return;
} }
// Définir la propriété Item de cet objet avec l'élément actuellement en train d'être glissé-déposé.
this.Item = Parent.CurrentDragItem; this.Item = Parent.CurrentDragItem;
// Mettre à jour la liste Parent.RecipeItems avec cet élément à l'index correspondant.
Parent.RecipeItems[this.Index] = this.Item; Parent.RecipeItems[this.Index] = this.Item;
// Ajouter une nouvelle action de crafting dans la liste d'actions de l'objet Parent.
Parent.Actions.Add(new CraftingAction { Action = "Drop", Item = this.Item, Index = this.Index }); Parent.Actions.Add(new CraftingAction { Action = "Drop", Item = this.Item, Index = this.Index });
// Check recipe // Check recipe
// Vérifier si la recette est complète.
Parent.CheckRecipe(); Parent.CheckRecipe();
} }
///<summary>
/// Cette méthode est appelée lorsque l'utilisateur commence à faire glisser un élément de cette zone de dépôt (drop zone).
/// Elle définit la propriété Parent.CurrentDragItem avec l'élément actuellement en train d'être glissé-déposé,
///et ajoute une nouvelle action de crafting dans la liste d'actions de l'objet Parent en utilisant les propriétés Item et Index de cet objet.
///
///
/// </summary>
private void OnDragStart() private void OnDragStart()
{ {
// Définir la propriété Parent.CurrentDragItem avec l'élément actuellement en train d'être glissé-déposé.
Parent.CurrentDragItem = this.Item; Parent.CurrentDragItem = this.Item;
// Ajouter une nouvelle action de crafting dans la liste d'actions de l'objet Parent.
Parent.Actions.Add(new CraftingAction { Action = "Drag Start", Item = this.Item, Index = this.Index }); Parent.Actions.Add(new CraftingAction { Action = "Drag Start", Item = this.Item, Index = this.Index });
} }
} }

@ -19,25 +19,42 @@ namespace BlazorT.Composants
[CascadingParameter] [CascadingParameter]
public InventoryComponent Parent { get; set; } public InventoryComponent Parent { get; set; }
///<summary>
///Cette méthode est appelée lorsque l'utilisateur commence à faire glisser un élément sur cette zone de dépôt (drop zone).
///Si la propriété NoDrop est définie à true, cette méthode ne fait rien.
///Sinon, elle ajoute une nouvelle action d'inventaire dans la liste d'actions de l'objet Parent en utilisant les propriétés Item et Index de cet objet.
///
/// </summary>
internal void OnDragEnter() internal void OnDragEnter()
{ {
if (NoDrop) if (NoDrop)
{ {
return; return;
}
// Si la propriété NoDrop est définie à true, ne rien faire.
}
// Ajouter une nouvelle action d'inventaire dans la liste d'actions de l'objet Parent en utilisant les propriétés Item et Index de cet objet.
Parent.Actions.Add(new InventoryAction { Action = "Drag Enter", Item = this.Item, Index = this.Index }); Parent.Actions.Add(new InventoryAction { Action = "Drag Enter", Item = this.Item, Index = this.Index });
} }
///<summary>
/// Cette méthode est appelée lorsque l'utilisateur arrête de faire glisser un élément sur cette zone de dépôt (drop zone).
///
/// Si la propriété NoDrop est définie à true, cette méthode ne fait rien.
///Sinon, elle réinitialise la propriété Count à 0 et la propriété Item à null, puis ajoute une nouvelle action d'inventaire dans la liste d'actions de l'objet Parent en utilisant les propriétés Item et Index de cet objet.
///</summary>
internal void OnDragLeave() internal void OnDragLeave()
{ {
if (NoDrop) if (NoDrop)
{ {
// Si la propriété NoDrop est définie à true, ne rien faire.
return; return;
} }
// Réinitialiser la propriété Count à 0 et la propriété Item à null
Count = 0; Count = 0;
Item = null; Item = null;
// Ajouter une nouvelle action d'inventaire dans la liste d'actions de l'objet Parent en utilisant les propriétés Item et Index de cet objet.
Parent.Actions.Add(new InventoryAction { Action = "Drag Leave", Item = this.Item, Index = this.Index }); Parent.Actions.Add(new InventoryAction { Action = "Drag Leave", Item = this.Item, Index = this.Index });
} }
@ -45,32 +62,41 @@ namespace BlazorT.Composants
{ {
if (NoDrop) if (NoDrop)
{ {
// Si la propriété NoDrop est définie à true, ne rien faire.
return; return;
} }
if(this.Item != null && this.Item.Name == Parent.CurrentDragItem.Name ) if(this.Item != null && this.Item.Name == Parent.CurrentDragItem.Name )
{ {
// Si un élément est déjà présent dans cette zone de dépôt et que c'est le même que celui que l'utilisateur est en train de glisser, incrémenter la propriété Count de cet objet.
Count += 1; Count += 1;
} }
else if(this.Item == null) else if(this.Item == null)
{ {
// Si aucun élément n'est présent dans cette zone de dépôt, définir la propriété Item de cet objet à l'élément en cours de glissement et modifier la propriété Parent.RecipeItems à l'index de cet objet en utilisant la propriété Item de cet objet. Définir également la propriété Count de cet objet à 1.
this.Item = Parent.CurrentDragItem; this.Item = Parent.CurrentDragItem;
Parent.RecipeItems[this.Index] = this.Item; Parent.RecipeItems[this.Index] = this.Item;
Count = 1; Count = 1;
} }
// Ajouter une nouvelle action d'inventaire dans la liste d'actions de l'objet Parent en utilisant les propriétés Item et Index de cet objet.
Parent.Actions.Add(new InventoryAction { Action = "Drop", Item = this.Item, Index = this.Index }); Parent.Actions.Add(new InventoryAction { Action = "Drop", Item = this.Item, Index = this.Index });
// Check recipe // Vérifier la recette
Parent.CheckRecipe(); Parent.CheckRecipe();
} }
///<summary>
///Cette méthode est appelée lorsque l'utilisateur commence à glisser un élément dans cette zone de dépôt (drop zone).
///Elle définit la propriété Parent.CurrentDragItem à la propriété Item de cet objet.
///Elle ajoute ensuite une nouvelle action d'inventaire dans la liste d'actions de l'objet Parent en utilisant les propriétés Item et Index de cet objet.
/// </summary>
private void OnDragStart() private void OnDragStart()
{ {
// Définir la propriété Parent.CurrentDragItem à la propriété Item de cet objet.
Parent.CurrentDragItem = this.Item; Parent.CurrentDragItem = this.Item;
// Ajouter une nouvelle action d'inventaire dans la liste d'actions de l'objet Parent en utilisant les propriétés Item et Index de cet objet.
Parent.Actions.Add(new InventoryAction { Action = "Drag Start", Item = this.Item, Index = this.Index }); Parent.Actions.Add(new InventoryAction { Action = "Drag Start", Item = this.Item, Index = this.Index });
} }
} }

@ -2,8 +2,16 @@
public static class ItemFactory public static class ItemFactory
{ {
///<summary>
/// Cette méthode statique permet de créer un modèle d'élément (ItemModel) à partir d'une instance de la classe Item.
///@param item : l'instance de la classe Item utilisée pour créer le modèle d'élément.
/// @param imageContent : le contenu de l'image de l'élément en tant que tableau d'octets.
/// @return : un nouveau modèle d'élément avec les propriétés initialisées à partir de l'instance de la classe Item.
///</summary>
public static ItemModel ToModel(Item item, byte[] imageContent) public static ItemModel ToModel(Item item, byte[] imageContent)
{ {
// Créer un nouveau modèle d'élément avec les propriétés initialisées à partir de l'instance de la classe Item.
return new ItemModel return new ItemModel
{ {
Id = item.Id, Id = item.Id,
@ -17,9 +25,15 @@ public static class ItemFactory
ImageBase64 = string.IsNullOrWhiteSpace(item.ImageBase64) ? Convert.ToBase64String(imageContent) : item.ImageBase64 ImageBase64 = string.IsNullOrWhiteSpace(item.ImageBase64) ? Convert.ToBase64String(imageContent) : item.ImageBase64
}; };
} }
///<summary>
/// Cette méthode statique permet de créer une nouvelle instance de la classe Item à partir d'un modèle d'élément (ItemModel).
///@param model : le modèle d'élément utilisé pour créer la nouvelle instance de la classe Item.
/// @return : une nouvelle instance de la classe Item avec les propriétés initialisées à partir du modèle d'élément.
///</summary>
public static Item Create(ItemModel model) public static Item Create(ItemModel model)
{ {
// Créer une nouvelle instance de la classe Item avec les propriétés initialisées à partir du modèle d'élément.
return new Item return new Item
{ {
Id = model.Id, Id = model.Id,

@ -19,17 +19,30 @@ namespace BlazorT.Modals
public int Id { get; set; } public int Id { get; set; }
private Item item = new Item(); private Item item = new Item();
///<summary>
///
///Elle récupère un élément à partir d'un service de données en utilisant un ID fourni.
/// </summary>méthode asynchrone qui est appelée lorsque le composant est initialisé.
protected override async Task OnInitializedAsync() protected override async Task OnInitializedAsync()
{ {
// Get the item // Get the item
item = await DataService.GetById(Id); item = await DataService.GetById(Id);
} }
///<summary>
///méthode de gestionnaire d'événements pour des actions utilisateur.
///
///"ConfirmDelete" est appelé lorsque l'utilisateur confirme qu'il veut supprimer l'élément
/// </summary>
void ConfirmDelete() void ConfirmDelete()
{ {
ModalInstance.CloseAsync(ModalResult.Ok(true)); ModalInstance.CloseAsync(ModalResult.Ok(true));
} }
///<summary>
///
///"Cancel" est appelé lorsque l'utilisateur annule l'opération de suppression et ferme la fenêtre de dialogue modale sans résultat.
/// </summary>
void Cancel() void Cancel()
{ {

@ -18,6 +18,9 @@ public class ErrorModel : PageModel
{ {
_logger = logger; _logger = logger;
} }
///<summary>
///une méthode de la classe Razor PageModel et est utilisé pour gérer les requêtes GET vers la page associée
/// </summary>
public void OnGet() public void OnGet()
{ {

@ -3,6 +3,7 @@ using BlazorT.Composants;
using BlazorT.Models; using BlazorT.Models;
using BlazorT.Services; using BlazorT.Services;
using Microsoft.AspNetCore.Components; using Microsoft.AspNetCore.Components;
using Sve.Blazor.Core.Services;
namespace BlazorT.Pages namespace BlazorT.Pages
{ {
@ -14,6 +15,13 @@ namespace BlazorT.Pages
public List<Item> Items { get; set; } = new List<Item>(); public List<Item> Items { get; set; } = new List<Item>();
private List<CraftingRecipe> Recipes { get; set; } = new List<CraftingRecipe>(); private List<CraftingRecipe> Recipes { get; set; } = new List<CraftingRecipe>();
///<summary>
///
/// Cette methode charge les données des éléments (Items) à partir de la source de données, ainsi que le nombre de recettes à afficher (NombreRecipes)
/// et les recettes elles-mêmes(Recipes), en utilisant des appels asynchrones aux méthodes DataService.
///</summary>
protected override async Task OnAfterRenderAsync(bool firstRender) protected override async Task OnAfterRenderAsync(bool firstRender)
{ {

@ -1,4 +1,5 @@
using System; using System;
using System.Security.AccessControl;
using BlazorT.Composants; using BlazorT.Composants;
using BlazorT.Models; using BlazorT.Models;
using BlazorT.Services; using BlazorT.Services;
@ -19,6 +20,12 @@ public partial class Inventory
[Inject] [Inject]
public IConfiguration Configuration { set; get; } public IConfiguration Configuration { set; get; }
///<summary>
/// une méthode asynchrone de cycle de vie appelée OnAfterRenderAsync, qui est exécutée après le rendu initial de la page ou du composant.
/// La méthode commence par appeler la version de la méthode de cycle de vie parente avec l'instruction base.OnAfterRenderAsync (firstRender)
///</summary>
protected override async Task OnAfterRenderAsync(bool firstRender) protected override async Task OnAfterRenderAsync(bool firstRender)
{ {
base.OnAfterRenderAsync(firstRender); base.OnAfterRenderAsync(firstRender);

@ -68,6 +68,11 @@ public partial class List
await LocalStorage.SetItemAsync("data", originalData); await LocalStorage.SetItemAsync("data", originalData);
} }
} }
/// <summary>
/// méthode asynchrone qui gère la suppression d'un élément dans la liste. Elle prend en paramètre l'ID de l'élément à supprimer.
/// </summary>
private async Task OnDeleteAsync(int id) private async Task OnDeleteAsync(int id)
{ {

@ -3,24 +3,24 @@ Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16 # Visual Studio Version 16
VisualStudioVersion = 25.0.1704.0 VisualStudioVersion = 25.0.1704.0
MinimumVisualStudioVersion = 10.0.40219.1 MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BlazorT", "BlazorT\BlazorT.csproj", "{F701F649-2370-4B9B-A32E-9E92058CBFD2}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Minecraft.Crafting.Api", "Minecraft.Crafting.Api\Minecraft.Crafting.Api.csproj", "{2DD212EA-6458-4ED6-873A-B7D298AA08BB}" Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Minecraft.Crafting.Api", "Minecraft.Crafting.Api\Minecraft.Crafting.Api.csproj", "{2DD212EA-6458-4ED6-873A-B7D298AA08BB}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BlazorT", "BlazorT\BlazorT.csproj", "{E2A80934-A1DB-4E90-B9E6-220DC12BCDD9}"
EndProject
Global Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU Release|Any CPU = Release|Any CPU
EndGlobalSection EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution GlobalSection(ProjectConfigurationPlatforms) = postSolution
{F701F649-2370-4B9B-A32E-9E92058CBFD2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{F701F649-2370-4B9B-A32E-9E92058CBFD2}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F701F649-2370-4B9B-A32E-9E92058CBFD2}.Release|Any CPU.ActiveCfg = Release|Any CPU
{F701F649-2370-4B9B-A32E-9E92058CBFD2}.Release|Any CPU.Build.0 = Release|Any CPU
{2DD212EA-6458-4ED6-873A-B7D298AA08BB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {2DD212EA-6458-4ED6-873A-B7D298AA08BB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{2DD212EA-6458-4ED6-873A-B7D298AA08BB}.Debug|Any CPU.Build.0 = Debug|Any CPU {2DD212EA-6458-4ED6-873A-B7D298AA08BB}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2DD212EA-6458-4ED6-873A-B7D298AA08BB}.Release|Any CPU.ActiveCfg = Release|Any CPU {2DD212EA-6458-4ED6-873A-B7D298AA08BB}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2DD212EA-6458-4ED6-873A-B7D298AA08BB}.Release|Any CPU.Build.0 = Release|Any CPU {2DD212EA-6458-4ED6-873A-B7D298AA08BB}.Release|Any CPU.Build.0 = Release|Any CPU
{E2A80934-A1DB-4E90-B9E6-220DC12BCDD9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E2A80934-A1DB-4E90-B9E6-220DC12BCDD9}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E2A80934-A1DB-4E90-B9E6-220DC12BCDD9}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E2A80934-A1DB-4E90-B9E6-220DC12BCDD9}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection EndGlobalSection
GlobalSection(SolutionProperties) = preSolution GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE HideSolutionNode = FALSE

Loading…
Cancel
Save