Compare commits
214 Commits
@ -0,0 +1,71 @@
|
||||
kind: pipeline
|
||||
name: CI
|
||||
type: docker
|
||||
|
||||
trigger:
|
||||
event:
|
||||
- push
|
||||
|
||||
steps:
|
||||
- name: build
|
||||
image: mcr.microsoft.com/dotnet/sdk:6.0
|
||||
commands:
|
||||
- cd WF-WebAdmin/WF-WebAdmin
|
||||
- dotnet restore WF-WebAdmin.csproj
|
||||
- dotnet build WF-WebAdmin.csproj -c Release --no-restore
|
||||
- dotnet publish WF-WebAdmin.csproj -c Release --no-restore -o $CI_PROJECT_DIR/build/publish
|
||||
|
||||
- name: tests
|
||||
image: mcr.microsoft.com/dotnet/sdk:6.0
|
||||
commands:
|
||||
- cd WF-WebAdmin/WF-WebAdmin
|
||||
- dotnet restore WF-WebAdmin.csproj
|
||||
- dotnet test WF-WebAdmin.csproj --no-restore
|
||||
depends_on: [ build ]
|
||||
|
||||
- name: code-analysis
|
||||
image: hub.codefirst.iut.uca.fr/marc.chevaldonne/codefirst-dronesonarplugin-dotnet8
|
||||
commands:
|
||||
- cd WF-WebAdmin/
|
||||
- dotnet restore WF-WebAdmin.sln
|
||||
- dotnet sonarscanner begin /k:$${project_key} /d:sonar.host.url=$${sonar_host} /d:sonar.coverageReportPaths="coveragereport/SonarQube.xml" /d:sonar.coverage.exclusions=$${coverage_exclusions} /d:sonar.login=$${sonar_token}
|
||||
- dotnet build WF-WebAdmin.sln -c Release --no-restore
|
||||
- dotnet test WF-WebAdmin.sln --logger trx --no-restore /p:CollectCoverage=true /p:CoverletOutputFormat=cobertura --collect "XPlat Code Coverage"
|
||||
- reportgenerator -reports:"**/coverage.cobertura.xml" -reporttypes:SonarQube -targetdir:"coveragereport"
|
||||
- dotnet publish WF-WebAdmin.sln -c Release --no-restore -o $CI_PROJECT_DIR/build/release
|
||||
- dotnet sonarscanner end /d:sonar.login=$${sonar_token}
|
||||
secrets: [ SECRET_SONAR_LOGIN ]
|
||||
environment:
|
||||
sonar_host: https://codefirst.iut.uca.fr/sonar/
|
||||
sonar_token:
|
||||
from_secret: sonar_token
|
||||
project_key: web_admin
|
||||
coverage_exclusions: "Tests/**"
|
||||
depends_on: [ tests ]
|
||||
|
||||
- name: generate-and-deploy-docs
|
||||
image: hub.codefirst.iut.uca.fr/thomas.bellembois/codefirst-docdeployer
|
||||
failure: ignore
|
||||
volumes:
|
||||
- name: docs
|
||||
path: /docs
|
||||
commands:
|
||||
- /entrypoint.sh
|
||||
when:
|
||||
branch:
|
||||
- master
|
||||
depends_on: [ build ]
|
||||
|
||||
- name: docker_build
|
||||
image: plugins/docker
|
||||
settings:
|
||||
repo: hub.codefirst.iut.uca.fr/whatthefantasy/wf-webadmin
|
||||
registry: hub.codefirst.iut.uca.fr
|
||||
dockerfile: Docker/Dockerfile
|
||||
tags:
|
||||
- latest
|
||||
username:
|
||||
from_secret: docker_username
|
||||
password:
|
||||
from_secret: docker_password
|
||||
depends_on: [ build, tests, code-analysis ]
|
@ -0,0 +1,27 @@
|
||||
# 1. Étape de build (SDK .NET 6)
|
||||
FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build
|
||||
WORKDIR /src
|
||||
|
||||
# Copier le csproj et restaurer les dépendances
|
||||
COPY WF-WebAdmin/WF-WebAdmin/WF-WebAdmin.csproj ./
|
||||
RUN dotnet restore WF-WebAdmin.csproj
|
||||
|
||||
# Copier le reste du code et compiler
|
||||
COPY WF-WebAdmin/WF-WebAdmin/ ./
|
||||
RUN dotnet publish WF-WebAdmin.csproj -c Release -o /app/publish
|
||||
|
||||
# 2. Étape finale (runtime .NET 6)
|
||||
FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS final
|
||||
WORKDIR /app
|
||||
|
||||
# Désactiver le rechargement de config pour éviter les erreurs inotify
|
||||
ENV ASPNETCORE_HOSTBUILDER__RELOADCONFIGONCHANGE=false
|
||||
|
||||
# Copier les binaires publiés
|
||||
COPY --from=build /app/publish ./
|
||||
|
||||
# Exposer le port HTTP (80) ; adapte si besoin
|
||||
EXPOSE 80
|
||||
|
||||
# Lancement
|
||||
ENTRYPOINT ["dotnet", "WF-WebAdmin.dll"]
|
@ -1,2 +1,81 @@
|
||||
# WF-WebAdmin
|
||||
# Projet Blazor What the Fantasy
|
||||
|
||||
## Description
|
||||
|
||||
Ce projet est une application web construite avec **Blazor**, permettant aux administrateurs de gérer plusieurs aspects du site, notamment :
|
||||
|
||||
- Administration des comptes utilisateurs : possibilité de **modifier** ou **supprimer** des comptes utilisateurs.
|
||||
- Gestion des citations : les administrateurs peuvent **modifier**, **valider** ou **supprimer** des citations présentes sur le site.
|
||||
- Création et génération de **quiz** : l'application permet de **créer** et **générer** des quiz interactifs.
|
||||
|
||||
L'application fournit une interface utilisateur claire et intuitive pour les administrateurs, offrant une expérience de gestion efficace et dynamique en utilisant **C#** au lieu de JavaScript, tout en tirant parti des technologies Blazor et .NET.
|
||||
|
||||
### Fonctionnalités principales
|
||||
|
||||
- **Gestion des utilisateurs** : Visualiser la liste des utilisateurs, modifier leurs informations, ou supprimer leur compte.
|
||||
- **Gestion des citations** : Ajouter, valider, éditer ou supprimer des citations.
|
||||
- **Gestion des quiz** : Créer de nouveaux quiz, ajouter des questions et gérer les résultats.
|
||||
- **Tableau de bord administrateur** : Interface pour naviguer entre les différentes sections de gestion avec des statistiques en temps réel.
|
||||
|
||||
## Prérequis
|
||||
|
||||
Avant de pouvoir exécuter ce projet, assurez-vous d'avoir installé les éléments suivants sur votre machine :
|
||||
- [.NET 6 SDK](https://dotnet.microsoft.com/download)
|
||||
- Un navigateur compatible avec WebAssembly (par exemple, Chrome, Firefox, Edge, Safari)
|
||||
- Visual Studio ou Visual Studio Code (optionnel, mais recommandé pour le développement)
|
||||
|
||||
|
||||
## Installation
|
||||
|
||||
### 1. Cloner le repository
|
||||
|
||||
Clonez le dépôt Git sur votre machine locale avec la commande suivante :
|
||||
|
||||
```bash
|
||||
git clone https://codefirst.iut.uca.fr/git/WhatTheFantasy/WF-WebAdmin.git
|
||||
```
|
||||
### 2. Ouvrir le projet dans votre IDE
|
||||
|
||||
Une fois le dépôt cloné, ouvrez le dossier du projet dans votre IDE préféré (par exemple, Visual Studio ou Visual Studio Code).
|
||||
|
||||
### 3. Restaurer les dépendances (si besoin)
|
||||
|
||||
Avant de pouvoir exécuter l'application, vous devez restaurer les dépendances NuGet. Dans le terminal, naviguez dans le répertoire du projet cloné (si ce n'est pas déjà fait) et exécutez la commande suivante :
|
||||
```bash
|
||||
cd blazor-admin-app
|
||||
dotnet restore
|
||||
```
|
||||
### 4. Lancer l'application
|
||||
|
||||
Une fois les dépendances installées, vous pouvez démarrer l'application en mode développement avec la commande suivante :
|
||||
```bash
|
||||
dotnet run
|
||||
```
|
||||
L'application sera maintenant accessible dans votre navigateur à l'adresse suivante : http://localhost:5000.
|
||||
|
||||
### 5. Ouvrir l'application dans le navigateur
|
||||
|
||||
L'application devrait se lancer automatiquement dans votre navigateur par défaut. Si ce n'est pas le cas, ouvrez manuellement un navigateur et accédez à l'adresse **http://localhost:5000** pour voir l'application en action.
|
||||
|
||||
|
||||
# Blazor Apps (30 points)
|
||||
🟨 En cours / ✅ Fait / ❌ Pas fait<br/><br/>
|
||||
|
||||
✅ Mise en place d'une page de visualisation des données avec pagination (2 points) <br/>
|
||||
✅ Page d'ajout d'un élement avec validation (2 point)<br/>
|
||||
✅ Page d'édition d'un élement avec validation (2 point)<br/>
|
||||
✅ Supression d'un élement avec une confirmation (2 point)<br/>
|
||||
✅ Composant complexe (5 point)<br/>
|
||||
🟨 Use API (Get / Insert / Update / Delete) (3 point)<br/>
|
||||
✅ Utilisation IOC & DI (4 point)<br/>
|
||||
✅ Localisation & Globalisation (au moins deux langues) (1 point) <br/>
|
||||
❓ Utilisation de la configuration (1 point)<br/>
|
||||
✅ Logs (2 point)<br/>
|
||||
🟨 Propreté du code (Vous pouvez vous servir de sonarqube) (2 point)<br/>
|
||||
✅ IHM (Design global, placement des boutons, ...) (2 point)<br/>
|
||||
✅ Emplacement du code (Pas de code dans les vues) (2 point)<br/>
|
||||
|
||||
# Documentation (10 points)
|
||||
✅ Le Readme (2 points)<br/>
|
||||
✅ Description du fonctionnement de la solution client (illustrutration au niveau du code) (6 points)<br/>
|
||||
✅ Merge request (2 points)<br/>
|
||||
|
@ -0,0 +1,11 @@
|
||||
namespace UnitTestWF
|
||||
{
|
||||
public class UnitTest1
|
||||
{
|
||||
[Fact]
|
||||
public void Test1()
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,29 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
|
||||
<IsPackable>false</IsPackable>
|
||||
<IsTestProject>true</IsTestProject>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="coverlet.collector" Version="6.0.4">
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
</PackageReference>
|
||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.12.0" />
|
||||
<PackageReference Include="xunit" Version="2.9.3" />
|
||||
<PackageReference Include="xunit.runner.visualstudio" Version="3.0.2">
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
</PackageReference>
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Using Include="Xunit" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
@ -1,39 +1,32 @@
|
||||
@page "/"
|
||||
|
||||
@using WF_WebAdmin.Model
|
||||
|
||||
<PageTitle>Accueil</PageTitle>
|
||||
|
||||
<h1>Accueil</h1>
|
||||
<h2><strong>@Localizer["AccueilWelcome"] ?? "Bienvenue"</strong></h2>
|
||||
|
||||
<button>Mettre une citation aléatoire</button>
|
||||
<h4>@Localizer["AccueilTitle"]</h4>
|
||||
|
||||
@if (quotes != null)
|
||||
@if (Dailyquote != null)
|
||||
{
|
||||
<table class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Id</th>
|
||||
<th>Content</th>
|
||||
<th>Charactére</th>
|
||||
<th>Title Source</th>
|
||||
<th>Like</th>
|
||||
<th>Langue</th>
|
||||
<th>Date Source</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach (var quote in quotes)
|
||||
@foreach(var quote in Dailyquote)
|
||||
{
|
||||
<tr>
|
||||
<td>@quote.Id</td>
|
||||
<td>@quote.Content</td>
|
||||
<td>@quote.Charac</td>
|
||||
<td>@quote.TitleSrc</td>
|
||||
<td>@quote.Like</td>
|
||||
<td>@quote.Langue</td>
|
||||
<td>@quote.DateSrc.ToShortDateString()</td>
|
||||
</tr>
|
||||
<div class="QuoteDiv">
|
||||
<img class="imgProfil" src="@quote.ImgPath" />
|
||||
<p class ="pseudo"> @quote.Content</p>
|
||||
|
||||
<p class="pseudo"><strong>@Localizer["AccueilCharacter"]</strong> @quote.Charac</p>
|
||||
<p class="pseudo"><strong>@Localizer["AccueilSrc"]</strong> @quote.TitleSrc</p>
|
||||
|
||||
</div>
|
||||
}
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
<p>@Localizer["AccueilNoQuote"]</p>
|
||||
}
|
||||
|
||||
<h4>@Localizer["AccueilManualChange"]</h4>
|
||||
<button @onclick="() => RandomDailyquote()">@Localizer["AccueilAddRandomQuote"]</button>
|
||||
|
||||
|
@ -0,0 +1,58 @@
|
||||
@using WF_WebAdmin.Model;
|
||||
|
||||
@page "/add"
|
||||
|
||||
<h3>@Localizer["TitleAddQuiz"]</h3>
|
||||
|
||||
|
||||
<EditForm Model="@_quizModel" OnValidSubmit="@HandleValidSubmit">
|
||||
<DataAnnotationsValidator />
|
||||
<ValidationSummary />
|
||||
|
||||
<p>
|
||||
<label for="display-quest">
|
||||
@Localizer["TitleQuestion"]
|
||||
<InputText id="display-quest" @bind-Value="_quizModel.Question" />
|
||||
</label>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<label for="display-a">
|
||||
@Localizer["AnswerA"]
|
||||
<InputText id="display-a" @bind-Value="_quizModel.AnswerA" />
|
||||
</label>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<label for="display-b">
|
||||
@Localizer["AnswerB"]
|
||||
<InputText id="display-b" @bind-Value="_quizModel.AnswerB" />
|
||||
</label>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<label for="display-c">
|
||||
@Localizer["AnswerC"]
|
||||
<InputText id="display-c" @bind-Value="_quizModel.AnswerC" />
|
||||
</label>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<label for="display-d">
|
||||
@Localizer["AnswerD"]
|
||||
<InputText id="display-d" @bind-Value="_quizModel.AnswerD" />
|
||||
</label>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<label for="cA">
|
||||
@Localizer["GoodAnswer"]
|
||||
<input name="cA" type="radio" @onchange="@(e => OnCAwnserChange("A"))" /> A
|
||||
<input name="cA" type="radio" @onchange="@(e => OnCAwnserChange("B"))" /> B
|
||||
<input name="cA" type="radio" @onchange="@(e => OnCAwnserChange("C"))" /> C
|
||||
<input name="cA" type="radio" @onchange="@(e => OnCAwnserChange("D"))" /> D
|
||||
</label>
|
||||
</p>
|
||||
|
||||
<button type="submit">@Localizer["Submit"]</button>
|
||||
</EditForm>
|
@ -0,0 +1,37 @@
|
||||
@page "/commentary-chart"
|
||||
|
||||
<h1>Nombre de commentaires par mois</h1>
|
||||
|
||||
<MudChart ChartType="ChartType.Bar" ChartSeries="@Series" @bind-SelectedIndex="Index" LegendPosition="Position.Bottom" XAxisLabels="@XAxisLabels" Width="100%" Height="350px"></MudChart>
|
||||
|
||||
@code {
|
||||
private int Index = -1;
|
||||
private List<ChartSeries> Series = new();
|
||||
private string[] XAxisLabels = { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" };
|
||||
|
||||
[Inject] private WF_WebAdmin.Service.ICommentaryService CommentaryService { get; set; } = default!;
|
||||
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
var comments = await CommentaryService.GetCommentsAsync();
|
||||
var groupedData = comments.GroupBy(c => c.DateCreation.Month)
|
||||
.OrderBy(g => g.Key)
|
||||
.Select(g => new { Month = g.Key - 1, Value = g.Count() })
|
||||
.ToList();
|
||||
|
||||
double[] data = new double[12];
|
||||
foreach (var item in groupedData)
|
||||
{
|
||||
data[item.Month] = item.Value;
|
||||
}
|
||||
|
||||
Series = new List<ChartSeries>
|
||||
{
|
||||
new ChartSeries
|
||||
{
|
||||
Name = "",
|
||||
Data = data
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
@ -1,45 +1,118 @@
|
||||
@page "/deleteuser"
|
||||
@using WF_WebAdmin.Model
|
||||
|
||||
<PageTitle>Gestion utilisateur</PageTitle>
|
||||
|
||||
<h3>Gestion des utilisateurs</h3>
|
||||
|
||||
<h3>@Localizer["TitleUser"]</h3>
|
||||
|
||||
@if(_users == null)
|
||||
{
|
||||
<p><strong>@Localizer["UserNobody"]</strong></p>
|
||||
}
|
||||
|
||||
@if (users != null)
|
||||
else
|
||||
{
|
||||
<p>Utilisateurs présents:</p>
|
||||
@foreach (var user in users)
|
||||
<DataGrid TItem="User"
|
||||
Data="@_users"
|
||||
PageSize="@MaxValue"
|
||||
ReadData="@OnReadData"
|
||||
TotalItems="@_totalItem"
|
||||
ShowPager
|
||||
Responsive>
|
||||
|
||||
<DataGridColumn TItem="User" Field="@nameof(User.Id)" Caption="Id" />
|
||||
<DataGridColumn TItem="User" Field="@nameof(User.IsAdmin)" Caption="Admin" />
|
||||
<DataGridColumn TItem="User" Field="@nameof(User.Name)" Caption="Nom" />
|
||||
<DataGridColumn TItem="User" Field="@nameof(User.Email)" Caption="Email" />
|
||||
<DataGridColumn TItem="User" Field="@nameof(User.DateCreation)" Caption="Date de création"/>
|
||||
</DataGrid>
|
||||
|
||||
<p>@Localizer["UserHere"]</p>
|
||||
|
||||
@foreach (var user in _users)
|
||||
{
|
||||
<div class="userDiv">
|
||||
<div class="userDiv" id="@user.Id">
|
||||
<img class="imgProfil" src="@user.Image" />
|
||||
<p class="idUser"><strong>Identifiant d'utilisateur :</strong> @user.Id</p>
|
||||
<p class="pseudo"><strong>Nom d'utilisateur :</strong> @user.Name</p>
|
||||
<p class="mail"><strong>Email de l'utilisateur :</strong> @user.Email</p>
|
||||
<p class="dateCrea"><strong>Date de création de l'utilisateur :</strong> @user.DateCreation.ToShortDateString()</p>
|
||||
<button id="DeleteButton" @onclick="() => ShowConfirmation(user)">Supprimer l'utilisateur</button>
|
||||
@if (user.IsAdmin)
|
||||
{
|
||||
|
||||
<p class="pseudo"><strong>@Localizer["UserName"]</strong> @user.Name <strong>(@Localizer["UserAdmin"])</strong></p>
|
||||
}
|
||||
else
|
||||
{
|
||||
<p class="pseudo"><strong>@Localizer["UserName"]</strong> @user.Name</p>
|
||||
}
|
||||
|
||||
<p class="mail"><strong>@Localizer["UserEmail"]</strong> @user.Email</p>
|
||||
<p class="dateCrea"><strong>@Localizer["UserDate"]</strong> @user.DateCreation.ToShortDateString()</p>
|
||||
|
||||
@if(user.Comments != null)
|
||||
{
|
||||
<p class="titleComments"><strong>▶ @Localizer["UserComment"] @user.Name : </strong></p>
|
||||
@foreach (var comment in user.Comments)
|
||||
{
|
||||
<p class="comments">@comment.DateCreation.ToShortDateString() - @comment.Text</p>
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
<p><i>@Localizer["UserNoComment"]</i></p>
|
||||
}
|
||||
|
||||
<button id="ModifyButton" @onclick="() => ShowModifyConfirmation(user)">Modifier l'utilisateur</button>
|
||||
<button id="DeleteButton" @onclick="() => ShowConfirmation(user)">@Localizer["UserDelete"]</button>
|
||||
|
||||
@if (!user.IsAdmin)
|
||||
{
|
||||
<button id="AdminButton" @onclick="() => ShowConfirmationAdmin(user)">@Localizer["UserAddAdmin"]</button>
|
||||
}
|
||||
else
|
||||
{
|
||||
<button id="AdminButton" @onclick="() => ShowConfirmationAdmin(user)">@Localizer["UserDeleteAdmin"]</button>
|
||||
}
|
||||
|
||||
</div>
|
||||
|
||||
<!-- Fenêtre de confirmation de suppression -->
|
||||
@if (_showPopupDelete)
|
||||
{
|
||||
<div class="divPopup">
|
||||
<div class="contentPopup">
|
||||
<p>@Localizer["UserPopupTitle"]</p>
|
||||
<button @onclick="() => RemoveUser()">@Localizer["UserConfirmButton"]</button>
|
||||
<button @onclick="ClosePopup">@Localizer["UserDeleteButton"]</button>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
<!-- Fenêtre de confirmation -->
|
||||
@if (showPopup)
|
||||
@if (_showModifyPopup)
|
||||
{
|
||||
<div class="divPopup">
|
||||
<div class="contentPopup">
|
||||
<p>Êtes-vous sûr de vouloir supprimer cet utilisateur ?</p>
|
||||
<button @onclick="() => RemoveUser()">Confirmer</button>
|
||||
<p>Modifier les informations de l'utilisateur :</p>
|
||||
<label>Nom d'utilisateur:</label>
|
||||
<input type="text" @bind="_selectedUser.Name"/>
|
||||
<label>Email:</label>
|
||||
<input type="email" @bind="_selectedUser.Email" />
|
||||
<label>Image:</label>
|
||||
<input type="text" @bind="_selectedUser.Image" />
|
||||
<button @onclick="ModifyUser">Sauvegarder</button>
|
||||
<button @onclick="ClosePopup">Annuler</button>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
<p><strong>Aucun utilisateurs présents sur le site</strong></p>
|
||||
}
|
||||
|
||||
<!-- Fenêtre de confirmation d'ajout admin-->
|
||||
@if (_showPopupAdmin)
|
||||
{
|
||||
<div class="divPopup">
|
||||
<div class="contentPopup">
|
||||
<p>@Localizer["UserPopupTitle2"]</p>
|
||||
<button @onclick="() => setAdmin()">@Localizer["UserConfirmButton"]</button>
|
||||
<button @onclick="ClosePopup">@Localizer["UserDeleteButton"]</button>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
|
||||
@code {
|
||||
|
||||
}
|
||||
|
@ -0,0 +1,48 @@
|
||||
@using WF_WebAdmin.Model
|
||||
@page "/edit/{Id:int}"
|
||||
|
||||
<h3>Editer</h3>
|
||||
|
||||
<EditForm Model="@_quoteModel" OnValidSubmit="@HandleValidSubmit">
|
||||
<DataAnnotationsValidator />
|
||||
<ValidationSummary />
|
||||
|
||||
<p>
|
||||
<label for="display-cit">
|
||||
Citation:
|
||||
<InputText id="display-cit" @bind-Value="_quoteModel.Content" />
|
||||
</label>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<label for="lang">
|
||||
Langue:
|
||||
<input name="lang" type="radio" @onchange="@(e => OnlangChange("fr"))" /> fr
|
||||
<input name="lang" type="radio" @onchange="@(e => OnlangChange("en"))" /> en
|
||||
</label>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<label for="charac">
|
||||
<InputSelect id="charac" @bind-Value="_quoteModel.Charac">
|
||||
@foreach (Character display in _charac)
|
||||
{
|
||||
<option value="@display.caracter">@display.caracter (ID: @display.id_caracter)</option>
|
||||
}
|
||||
</InputSelect>
|
||||
</label>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<label for="src">
|
||||
<InputSelect id="src" @bind-Value="_quoteModel.TitleSrc">
|
||||
@foreach (Source display in _src)
|
||||
{
|
||||
<option value="@display.title">@display.title (ID: @display.id_source)</option>
|
||||
}
|
||||
</InputSelect>
|
||||
</label>
|
||||
</p>
|
||||
|
||||
<button type="submit">Submit</button>
|
||||
</EditForm>
|
@ -0,0 +1,31 @@
|
||||
@page "/login"
|
||||
@using WF_WebAdmin.Model
|
||||
@using System.Globalization
|
||||
|
||||
<h1>▶@Localizer["LoginTitle"]◀</h1>
|
||||
|
||||
<div class="login">
|
||||
<EditForm Model="userLogin" OnValidSubmit="validlogin">
|
||||
<DataAnnotationsValidator />
|
||||
<ValidationSummary />
|
||||
|
||||
<label for="name"><strong>@Localizer["LoginId"]*</strong></label>
|
||||
<InputText @bind-Value="userLogin.Name" id="name" placeholder="@Localizer["LoginEnterPseudo"]" class="connexion" required />
|
||||
|
||||
<label for="mdp">
|
||||
<strong>@Localizer["LoginPassWd"]*</strong></label>
|
||||
<InputText @bind-Value="@userLogin.Mdp" type="password" placeholder="@Localizer["LoginEnterPassWd"]" class="connexion" required />
|
||||
|
||||
|
||||
<div class="buttonSubmitDiv">
|
||||
<button class="buttonSudmite" type="submit">@Localizer["LoginConnexion"]</button>
|
||||
</div>
|
||||
<p class="ErrorMsg"><i>@ErrorConnexion</i></p>
|
||||
</EditForm>
|
||||
</div>
|
||||
<p><i>Indice de connexion : admin / admin</i></p>
|
||||
|
||||
|
||||
@code {
|
||||
|
||||
}
|
@ -0,0 +1,31 @@
|
||||
@page "/logs"
|
||||
|
||||
<h3>@Localizer["LogTitle"]</h3>
|
||||
|
||||
|
||||
@if (logs is null)
|
||||
{
|
||||
<p>@Localizer["NotLog"]</p>
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
<p>@Localizer["Log"]</p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>@Localizer["LogLvl"]</th>
|
||||
<th>@Localizer["LogContent"]</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach (var log in logs)
|
||||
{
|
||||
<tr>
|
||||
<td>@log.LogLevel</td>
|
||||
<td>@log.Message</td>
|
||||
</tr>
|
||||
}
|
||||
</tbody>
|
||||
</table>
|
||||
}
|
@ -0,0 +1,69 @@
|
||||
@using WF_WebAdmin.Model
|
||||
@page "/modifquiz"
|
||||
|
||||
<PageTitle>@Localizer["TitlePage"]</PageTitle>
|
||||
|
||||
<h3>@Localizer["TitlePage"]</h3>
|
||||
|
||||
<div>
|
||||
<NavLink class="btn btn-primary" href="Add" Match="NavLinkMatch.All">
|
||||
<i class="fa fa-plus"></i> @Localizer["Add"]
|
||||
</NavLink>
|
||||
</div>
|
||||
|
||||
<DataGrid TItem="Quiz"
|
||||
Data="@quiz"
|
||||
PageSize="@MaxValue"
|
||||
ReadData="@OnReadData"
|
||||
TotalItems="@totalItem"
|
||||
ShowPager
|
||||
Responsive>
|
||||
|
||||
<DataGridColumn TItem="Quiz" Field="@nameof(Quiz.Id)" Caption="@Localizer["Id"]" />
|
||||
<DataGridColumn TItem="Quiz" Field="@nameof(Quiz.Question)" Caption="@Localizer["Question"]" />
|
||||
<DataGridColumn TItem="Quiz" Field="@nameof(Quiz.AnswerA)" Caption="@Localizer["AnswerA"]" />
|
||||
<DataGridColumn TItem="Quiz" Field="@nameof(Quiz.AnswerB)" Caption="@Localizer["AnswerB"]" />
|
||||
<DataGridColumn TItem="Quiz" Field="@nameof(Quiz.AnswerC)" Caption="@Localizer["AnswerC"]" />
|
||||
<DataGridColumn TItem="Quiz" Field="@nameof(Quiz.AnswerD)" Caption="@Localizer["AnswerD"]" />
|
||||
<DataGridColumn TItem="Quiz" Field="@nameof(Quiz.CAnswer)" Caption="@Localizer["GoodAnswer"]" />
|
||||
<DataGridColumn TItem="Quiz" Field="@nameof(Quiz.Id)" Caption="@Localizer["Action"]">
|
||||
<DisplayTemplate>
|
||||
<button type="button" class="btn btn-primary" @onclick="() => OnEditButtonClicked(context)"><i class="fa fa-edit"></i> @Localizer["Edit"]</button>
|
||||
<button type="button" class="btn btn-primary" @onclick="() => OnDelete(context)"><i class="fa fa-trash"></i> @Localizer["Delete"]</button>
|
||||
</DisplayTemplate>
|
||||
</DataGridColumn>
|
||||
</DataGrid>
|
||||
|
||||
@if (showEditQuiz && selectedQuiz != null)
|
||||
{
|
||||
<div class="divPopup">
|
||||
<div class="contentPopup">
|
||||
<p>@Localizer["ModifInfoUser"]</p>
|
||||
<label>@Localizer["Question"]</label>
|
||||
<input type="text" @bind="selectedQuiz.Question"/>
|
||||
<label>@Localizer["AnswerA"]</label>
|
||||
<input type="text" @bind="selectedQuiz.AnswerA" />
|
||||
<label>@Localizer["AnswerB"]</label>
|
||||
<input type="text" @bind="selectedQuiz.AnswerB" />
|
||||
<label>@Localizer["AnswerC"]</label>
|
||||
<input type="text" @bind="selectedQuiz.AnswerC" />
|
||||
<label>@Localizer["AnswerD"]</label>
|
||||
<input type="text" @bind="selectedQuiz.AnswerD" />
|
||||
<label>@Localizer["GoodAnswer"]</label>
|
||||
<input type="text" @bind="selectedQuiz.CAnswer" />
|
||||
<button @onclick="EditQuiz">@Localizer["Save"] </button>
|
||||
<button @onclick="ClosePopup">@Localizer["Delete"]</button>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
|
||||
@if (showPopupDelete)
|
||||
{
|
||||
<div class="divPopup">
|
||||
<div class="contentPopup">
|
||||
<p>@Localizer["PopupQuestion"]</p>
|
||||
<button @onclick="RemoveQuote">@Localizer["Yes"]</button>
|
||||
<button @onclick="ClosePopup">@Localizer["Cancel"]</button>
|
||||
</div>
|
||||
</div>
|
||||
}
|
@ -0,0 +1,162 @@
|
||||
using Blazorise.DataGrid;
|
||||
using Microsoft.AspNetCore.Components;
|
||||
using Microsoft.Extensions.Localization;
|
||||
using System.Security.Claims;
|
||||
using WF_WebAdmin.Model;
|
||||
using WF_WebAdmin.Service;
|
||||
|
||||
namespace WF_WebAdmin.Pages
|
||||
{
|
||||
public partial class ModifQuiz
|
||||
{
|
||||
private Quiz[] quiz;
|
||||
|
||||
private int MaxValue = 5;
|
||||
|
||||
private int totalItem;
|
||||
|
||||
private bool showEditQuiz = false;
|
||||
|
||||
private Quiz? selectedQuiz;
|
||||
|
||||
private bool showPopupDelete = false;
|
||||
|
||||
private int page = 1;
|
||||
|
||||
[Inject]
|
||||
public ILogger<ModifQuiz>? Logger { get; set; }
|
||||
|
||||
[Inject]
|
||||
public IStringLocalizer<ModifQuiz> Localizer { get; set; }
|
||||
|
||||
[Inject]
|
||||
public IQuizService QuizService { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Handles the data reading event for a data grid, fetching quiz data based on the specified page and page size.
|
||||
/// This method makes an asynchronous call to retrieve a specific page of quizzes and updates the `quiz` list and pagination details.
|
||||
/// If the cancellation token is requested, it exits early without making further calls or updates.
|
||||
/// </summary>
|
||||
/// <param name="e">The event arguments containing pagination details such as page size and page number.</param>
|
||||
private async Task OnReadData(DataGridReadDataEventArgs<Quiz> e)
|
||||
{
|
||||
// Check if the cancellation token has been requested
|
||||
if (e.CancellationToken.IsCancellationRequested)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
// Fetch the quiz data for the specified page and page size
|
||||
var response = await QuizService.getSommeQuiz(e.PageSize, e.Page);
|
||||
|
||||
// If cancellation hasn't been requested, process the data
|
||||
if (!e.CancellationToken.IsCancellationRequested)
|
||||
{
|
||||
// Get the total number of quizzes for pagination purposes
|
||||
totalItem = await QuizService.getNbQuiz();
|
||||
|
||||
// Update the quiz data for the current page
|
||||
quiz = response.ToArray();
|
||||
|
||||
// Update the current page number
|
||||
page = e.Page;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Handles the event when the "Edit" button is clicked for a quiz.
|
||||
/// This method checks if a valid quiz is passed. If so, it sets the `selectedQuiz` to the clicked quiz and shows the quiz edit modal.
|
||||
/// </summary>
|
||||
/// <param name="quiz">The quiz object that was clicked for editing.</param>
|
||||
private void OnEditButtonClicked(Quiz quiz)
|
||||
{
|
||||
// If the quiz is null, return early
|
||||
if (quiz == null) return;
|
||||
|
||||
// Set the selected quiz to the one clicked by the user
|
||||
selectedQuiz = quiz;
|
||||
|
||||
// Show the modal or UI for editing the quiz
|
||||
showEditQuiz = true;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Closes the open popups and resets any related states.
|
||||
/// This method hides the quiz edit popup, the delete confirmation popup, and resets the selected quiz to `null`.
|
||||
/// </summary>
|
||||
private void ClosePopup()
|
||||
{
|
||||
// Hide the edit quiz popup
|
||||
showEditQuiz = false;
|
||||
|
||||
// Hide the delete confirmation popup
|
||||
showPopupDelete = false;
|
||||
|
||||
// Reset the selected quiz to null
|
||||
selectedQuiz = null;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Edits the selected quiz by updating it in the quiz service.
|
||||
/// This method asynchronously sends the updated quiz data to the service for persistence.
|
||||
/// After updating the quiz, it clears the selected quiz and closes any open popups.
|
||||
/// </summary>
|
||||
private async Task EditQuiz()
|
||||
{
|
||||
// Update the quiz in the service
|
||||
LoggerSaveStub.Log(Logger, LogLevel.Information, $"Editing the question {selectedQuiz.Question}");
|
||||
await QuizService.updateQuiz(selectedQuiz);
|
||||
|
||||
// Clear the selected quiz after successful update
|
||||
selectedQuiz = null;
|
||||
|
||||
// Close the popups after the edit operation
|
||||
ClosePopup();
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Handles the event when the delete action is triggered for a quiz.
|
||||
/// This method sets the selected quiz to the one passed as a parameter and shows the delete confirmation popup.
|
||||
/// </summary>
|
||||
/// <param name="q">The quiz to be deleted.</param>
|
||||
private void OnDelete(Quiz q)
|
||||
{
|
||||
// Set the selected quiz to the one passed in
|
||||
selectedQuiz = q;
|
||||
|
||||
// Show the delete confirmation popup
|
||||
showPopupDelete = true;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Removes the selected quiz from the quiz service and updates the quiz list.
|
||||
/// This method first checks if a quiz is selected, and if so, it deletes the quiz by calling the service.
|
||||
/// After removal, it clears the `selectedQuiz`, updates the quiz list, and closes the delete confirmation popup.
|
||||
/// </summary>
|
||||
private async Task RemoveQuote()
|
||||
{
|
||||
// Check if a quiz is selected for deletion
|
||||
if (selectedQuiz != null)
|
||||
{
|
||||
// Remove the selected quiz from the service by its ID
|
||||
LoggerSaveStub.Log(Logger, LogLevel.Information, $"Delete the question {selectedQuiz.Question}");
|
||||
await QuizService.removeQuiz(selectedQuiz.Id);
|
||||
|
||||
// Clear the selected quiz after successful removal
|
||||
selectedQuiz = null;
|
||||
|
||||
// Update the quiz list by fetching the latest data
|
||||
var response = await QuizService.getSommeQuiz(MaxValue, page);
|
||||
quiz = response.ToArray();
|
||||
}
|
||||
|
||||
// Close the delete confirmation popup
|
||||
showPopupDelete = false;
|
||||
}
|
||||
}
|
||||
}
|
@ -1,24 +1,58 @@
|
||||
@using WF_WebAdmin.Model
|
||||
@page "/modifquote"
|
||||
|
||||
<PageTitle>Corection des citation</PageTitle>
|
||||
<PageTitle>@Localizer["TitlePage"]</PageTitle>
|
||||
|
||||
<h3>Corection des citation</h3>
|
||||
<h3>@Localizer["TitlePage"]</h3>
|
||||
|
||||
<p>Ajouter une recherche</p>
|
||||
|
||||
@if (quotes != null)
|
||||
{
|
||||
<DataGrid TItem="Quote"
|
||||
<DataGrid TItem="Quote"
|
||||
Data="@quotes"
|
||||
PageSize="int.MaxValue"
|
||||
PageSize="@MaxValue"
|
||||
ReadData="@OnReadData"
|
||||
TotalItems="@totalItem"
|
||||
ShowPager
|
||||
Responsive>
|
||||
|
||||
<DataGridColumn TItem="Quote" Field="@nameof(Quote.Id)" Caption="Id"/>
|
||||
<DataGridColumn TItem="Quote" Field="@nameof(Quote.Content)" Caption="Citation"/>
|
||||
<DataGridColumn TItem="Quote" Field="@nameof(Quote.Charac)" Caption="Personage"/>
|
||||
<DataGridColumn TItem="Quote" Field="@nameof(Quote.TitleSrc)" Caption="Source" />
|
||||
<DataGridColumn TItem="Quote" Field="@nameof(Quote.Langue)" Caption="Langue" />
|
||||
<DataGridColumn TItem="Quote" Field="@nameof(Quote.DateSrc)" Caption="Date" DisplayFormat="{0:d}" DisplayFormatProvider="@System.Globalization.CultureInfo.GetCultureInfo("fr-FR")" />
|
||||
</DataGrid>
|
||||
<DataGridColumn TItem="Quote" Field="@nameof(Quote.Id)" Caption="@Localizer["Id"]" />
|
||||
<DataGridColumn TItem="Quote" Field="@nameof(Quote.Content)" Caption="@Localizer["Quote"]" />
|
||||
<DataGridColumn TItem="Quote" Field="@nameof(Quote.Charac)" Caption="@Localizer["Character"]" />
|
||||
<DataGridColumn TItem="Quote" Field="@nameof(Quote.TitleSrc)" Caption="@Localizer["Source"]" />
|
||||
<DataGridColumn TItem="Quote" Field="@nameof(Quote.Langue)" Caption="@Localizer["Language"]" />
|
||||
<DataGridColumn TItem="Quote" Field="@nameof(Quote.DateSrc)" Caption="@Localizer["Date"]" DisplayFormat="{0:d}" DisplayFormatProvider="@System.Globalization.CultureInfo.GetCultureInfo("fr-FR")" />
|
||||
<DataGridColumn TItem="Quote" Field="@nameof(Quote.Id)" Caption="@Localizer["Action"]">
|
||||
<DisplayTemplate>
|
||||
@* <button @onclick="() => OnEditButtonClicked(context) " style="background-color: lightgray; padding: 0">
|
||||
<img alt="Bouton Modifier" src="edit.png" width="30" height="30"/>
|
||||
</button> *@
|
||||
<a href="Edit/@(context.Id)" class="btn btn-primary"><i class="fa fa-edit"></i> @Localizer["Edit"]</a>
|
||||
<button type="button" class="btn btn-primary" @onclick="() => OnDelete(context)"><i class="fa fa-trash"></i> @Localizer["Delete"]</button>
|
||||
</DisplayTemplate>
|
||||
</DataGridColumn>
|
||||
</DataGrid>
|
||||
|
||||
@* @if (showEditQuote && selectedQuote != null)
|
||||
{
|
||||
<div class="divPopup">
|
||||
<div class="contentPopup">
|
||||
<p>Modifier les informations de l'utilisateur :</p>
|
||||
<label>Citation:</label>
|
||||
<input type="text" @bind="selectedQuote.Content"/>
|
||||
<label>Personnage:</label>
|
||||
<input type="text" @bind="selectedQuote.Charac" />
|
||||
<label>Source:</label>
|
||||
<input type="text" @bind="selectedQuote.TitleSrc" />
|
||||
<button @onclick="EditQuote">Sauvegarder </button>
|
||||
<button @onclick="ClosePopup">Annuler</button>
|
||||
</div>
|
||||
</div> *@
|
||||
|
||||
@if (showPopupDelete)
|
||||
{
|
||||
<div class="divPopup">
|
||||
<div class="contentPopup">
|
||||
<p>@Localizer["PopupQuestion"]</p>
|
||||
<button @onclick="RemoveQuote">@Localizer["Yes"]</button>
|
||||
<button @onclick="ClosePopup">@Localizer["Cancel"]</button>
|
||||
</div>
|
||||
</div>
|
||||
}
|
@ -1,48 +1,35 @@
|
||||
@page "/ValidQuote"
|
||||
@using WF_WebAdmin.Model
|
||||
|
||||
<h3>Citations non validées</h3>
|
||||
<h3>@Localizer["TitleValid"]</h3>
|
||||
|
||||
@if (quotes == null)
|
||||
@if (quotes is null)
|
||||
{
|
||||
<p> Chargement des quotes ... </p>
|
||||
<p>@Localizer["LoginQuote"]</p>
|
||||
}
|
||||
@* else if (quotes.Count == 0)
|
||||
{
|
||||
<p>Aucune citation en attente de validation.</p>
|
||||
} *@
|
||||
else
|
||||
{
|
||||
<p> Quotes en attente de validation : </p>
|
||||
<p>@Localizer["QuoteValid"]</p>
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>#</th>
|
||||
<th>citation</th>
|
||||
<th>personnage</th>
|
||||
<th>source</th>
|
||||
<th>langue</th>
|
||||
<th>date</th>
|
||||
<th>actions</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach (var quote in quotes)
|
||||
{
|
||||
<tr>
|
||||
<td>@quote.Id</td>
|
||||
<td>@quote.Content</td>
|
||||
<td>@quote.Charac</td>
|
||||
<td>@quote.TitleSrc</td>
|
||||
<td>@quote.Langue</td>
|
||||
<td>@quote.DateSrc</td>
|
||||
<div class="boutons">
|
||||
<button style="background-color: darkseagreen" @onclick="() => OnValidButton(quote)">
|
||||
<img alt="validate" src="check.png" />
|
||||
</button>
|
||||
<button style="background-color: indianred" @onclick="() => OnRejectButton(quote)">
|
||||
<img alt="reject" src="cross.png" />
|
||||
</button>
|
||||
<div class="QuoteDiv">
|
||||
<p><strong>@Localizer["Id"]</strong> @quote.Id</p>
|
||||
<p><strong>@Localizer["Content"]</strong> @quote.Content</p>
|
||||
<p><strong>@Localizer["Language"]</strong> @quote.Langue</p>
|
||||
|
||||
<p><strong>@Localizer["Character"]</strong> @quote.Charac</p>
|
||||
<p><strong>@Localizer["Image"]</strong> @quote.ImgPath</p>
|
||||
<p><strong>@Localizer["Source"]</strong> @quote.TitleSrc</p>
|
||||
<p><strong>@Localizer["Date"]</strong> @quote.DateSrc.ToShortDateString()</p>
|
||||
<p><strong>@Localizer["User"]</strong> @quote.UserProposition</p>
|
||||
|
||||
@* <button @onclick="() => ValiderQuote(quote.Id)">Valider</button>
|
||||
<button @onclick="() => RejeterQuote(quote.Id)">Rejeter</button> *@
|
||||
</div>
|
||||
</tr>
|
||||
}
|
||||
</tbody>
|
||||
</table>
|
||||
}
|
||||
|
@ -0,0 +1,141 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="AccueilAddRandomQuote" xml:space="preserve">
|
||||
<value>Put a New Random Quote</value>
|
||||
</data>
|
||||
<data name="AccueilCharacter" xml:space="preserve">
|
||||
<value>Character:</value>
|
||||
</data>
|
||||
<data name="AccueilManualChange" xml:space="preserve">
|
||||
<value>Changed Quote Manually</value>
|
||||
</data>
|
||||
<data name="AccueilNoQuote" xml:space="preserve">
|
||||
<value>No Quote of the Day</value>
|
||||
</data>
|
||||
<data name="AccueilSrc" xml:space="preserve">
|
||||
<value>Source:</value>
|
||||
</data>
|
||||
<data name="AccueilTitle" xml:space="preserve">
|
||||
<value>Quote of the Day</value>
|
||||
</data>
|
||||
<data name="AccueilWelcome" xml:space="preserve">
|
||||
<value>Welcome to the What the Fantasy Dashboard</value>
|
||||
</data>
|
||||
</root>
|
@ -0,0 +1,141 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="AccueilAddRandomQuote" xml:space="preserve">
|
||||
<value>Mettre une nouvellement citation aléatoire</value>
|
||||
</data>
|
||||
<data name="AccueilCharacter" xml:space="preserve">
|
||||
<value>Personnage :</value>
|
||||
</data>
|
||||
<data name="AccueilManualChange" xml:space="preserve">
|
||||
<value>Changement de la citation manuellement</value>
|
||||
</data>
|
||||
<data name="AccueilNoQuote" xml:space="preserve">
|
||||
<value>Aucune citation du jour</value>
|
||||
</data>
|
||||
<data name="AccueilSrc" xml:space="preserve">
|
||||
<value>Source :</value>
|
||||
</data>
|
||||
<data name="AccueilTitle" xml:space="preserve">
|
||||
<value>Citation du jour</value>
|
||||
</data>
|
||||
<data name="AccueilWelcome" xml:space="preserve">
|
||||
<value>Bienvenu sur le tableau de bord de What the Fantasy</value>
|
||||
</data>
|
||||
</root>
|
@ -0,0 +1,144 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="AnswerA" xml:space="preserve">
|
||||
<value>Answer A:</value>
|
||||
</data>
|
||||
<data name="AnswerB" xml:space="preserve">
|
||||
<value>Answer B:</value>
|
||||
</data>
|
||||
<data name="AnswerC" xml:space="preserve">
|
||||
<value>Answer C:</value>
|
||||
</data>
|
||||
<data name="AnswerD" xml:space="preserve">
|
||||
<value>Answer D:</value>
|
||||
</data>
|
||||
<data name="GoodAnswer" xml:space="preserve">
|
||||
<value>Good answer:</value>
|
||||
</data>
|
||||
<data name="Submit" xml:space="preserve">
|
||||
<value>Submit</value>
|
||||
</data>
|
||||
<data name="TitleAddQuiz" xml:space="preserve">
|
||||
<value>Add a question</value>
|
||||
</data>
|
||||
<data name="TitleQuestion" xml:space="preserve">
|
||||
<value>Question:</value>
|
||||
</data>
|
||||
</root>
|
@ -0,0 +1,144 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="AnswerA" xml:space="preserve">
|
||||
<value>Réponse A:</value>
|
||||
</data>
|
||||
<data name="AnswerB" xml:space="preserve">
|
||||
<value>Réponse B:</value>
|
||||
</data>
|
||||
<data name="AnswerC" xml:space="preserve">
|
||||
<value>Réponse C:</value>
|
||||
</data>
|
||||
<data name="AnswerD" xml:space="preserve">
|
||||
<value>Réponse D:</value>
|
||||
</data>
|
||||
<data name="GoodAnswer" xml:space="preserve">
|
||||
<value>Bonne réponse:</value>
|
||||
</data>
|
||||
<data name="Submit" xml:space="preserve">
|
||||
<value>Valider</value>
|
||||
</data>
|
||||
<data name="TitleAddQuiz" xml:space="preserve">
|
||||
<value>Ajouter une Question</value>
|
||||
</data>
|
||||
<data name="TitleQuestion" xml:space="preserve">
|
||||
<value>Question:</value>
|
||||
</data>
|
||||
</root>
|
@ -0,0 +1,169 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="TitleUser" xml:space="preserve">
|
||||
<value>User Management</value>
|
||||
<comment>gestionaire user</comment>
|
||||
</data>
|
||||
<data name="UserAddAdmin" xml:space="preserve">
|
||||
<value>Add as Admin</value>
|
||||
</data>
|
||||
<data name="UserAdmin" xml:space="preserve">
|
||||
<value>Administrator</value>
|
||||
</data>
|
||||
<data name="UserComment" xml:space="preserve">
|
||||
<value>Comment(s) Posted by</value>
|
||||
</data>
|
||||
<data name="UserConfirmButton" xml:space="preserve">
|
||||
<value>Confirm</value>
|
||||
</data>
|
||||
<data name="UserDate" xml:space="preserve">
|
||||
<value>Account Creation Date:</value>
|
||||
</data>
|
||||
<data name="UserDelete" xml:space="preserve">
|
||||
<value>Delete User</value>
|
||||
</data>
|
||||
<data name="UserDeleteAdmin" xml:space="preserve">
|
||||
<value>Remove as Admin</value>
|
||||
</data>
|
||||
<data name="UserDeleteButton" xml:space="preserve">
|
||||
<value>Cancel</value>
|
||||
</data>
|
||||
<data name="UserEmail" xml:space="preserve">
|
||||
<value>User Email:</value>
|
||||
</data>
|
||||
<data name="UserHere" xml:space="preserve">
|
||||
<value>Users present:</value>
|
||||
</data>
|
||||
<data name="UserName" xml:space="preserve">
|
||||
<value>Username</value>
|
||||
</data>
|
||||
<data name="UserNobody" xml:space="preserve">
|
||||
<value>No users present on the site</value>
|
||||
</data>
|
||||
<data name="UserNoComment" xml:space="preserve">
|
||||
<value>No comments on the site</value>
|
||||
</data>
|
||||
<data name="UserPopupTitle" xml:space="preserve">
|
||||
<value>Are you sure you want to delete this user?</value>
|
||||
</data>
|
||||
<data name="UserPopupTitle2" xml:space="preserve">
|
||||
<value>Are you sure you want to change this user's role?</value>
|
||||
</data>
|
||||
</root>
|
@ -0,0 +1,169 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="TitleUser" xml:space="preserve">
|
||||
<value>Gestionnaire des utilisateurs</value>
|
||||
<comment>gestion user</comment>
|
||||
</data>
|
||||
<data name="UserAddAdmin" xml:space="preserve">
|
||||
<value>Ajouter en tant qu'administrateur</value>
|
||||
</data>
|
||||
<data name="UserAdmin" xml:space="preserve">
|
||||
<value>Administrateur</value>
|
||||
</data>
|
||||
<data name="UserComment" xml:space="preserve">
|
||||
<value>Commentaire(s) posté(s) par </value>
|
||||
</data>
|
||||
<data name="UserConfirmButton" xml:space="preserve">
|
||||
<value>Confirmer</value>
|
||||
</data>
|
||||
<data name="UserDate" xml:space="preserve">
|
||||
<value>Date de création du compte :</value>
|
||||
</data>
|
||||
<data name="UserDelete" xml:space="preserve">
|
||||
<value>Supprimer l'utilisateur</value>
|
||||
</data>
|
||||
<data name="UserDeleteAdmin" xml:space="preserve">
|
||||
<value>Retirer en tant qu'administrateur</value>
|
||||
</data>
|
||||
<data name="UserDeleteButton" xml:space="preserve">
|
||||
<value>Annuler</value>
|
||||
</data>
|
||||
<data name="UserEmail" xml:space="preserve">
|
||||
<value>Email de l'utilisateur :</value>
|
||||
</data>
|
||||
<data name="UserHere" xml:space="preserve">
|
||||
<value>Utilisateurs présents:</value>
|
||||
</data>
|
||||
<data name="UserName" xml:space="preserve">
|
||||
<value>Nom d'utilisateur :</value>
|
||||
</data>
|
||||
<data name="UserNobody" xml:space="preserve">
|
||||
<value>Aucun utilisateur présent sur le site</value>
|
||||
</data>
|
||||
<data name="UserNoComment" xml:space="preserve">
|
||||
<value>Aucun commentaire sur le site</value>
|
||||
</data>
|
||||
<data name="UserPopupTitle" xml:space="preserve">
|
||||
<value>Êtes-vous sûr de vouloir supprimer cet utilisateur ?</value>
|
||||
</data>
|
||||
<data name="UserPopupTitle2" xml:space="preserve">
|
||||
<value>Êtes-vous sûr de vouloir changer le rôle de cet utilisateur ?</value>
|
||||
</data>
|
||||
</root>
|
@ -0,0 +1,140 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="LoginConnexion" xml:space="preserve">
|
||||
<value>Login</value>
|
||||
</data>
|
||||
<data name="LoginEnterPassWd" xml:space="preserve">
|
||||
<value>Enter your password</value>
|
||||
</data>
|
||||
<data name="LoginEnterPseudo" xml:space="preserve">
|
||||
<value>Enter your pseudo</value>
|
||||
</data>
|
||||
<data name="LoginId" xml:space="preserve">
|
||||
<value>Pseudo</value>
|
||||
<comment>id</comment>
|
||||
</data>
|
||||
<data name="LoginPassWd" xml:space="preserve">
|
||||
<value>Password</value>
|
||||
</data>
|
||||
<data name="LoginTitle" xml:space="preserve">
|
||||
<value>Login</value>
|
||||
<comment>connexion</comment>
|
||||
</data>
|
||||
</root>
|
@ -0,0 +1,140 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="LoginConnexion" xml:space="preserve">
|
||||
<value>Se Connecter</value>
|
||||
</data>
|
||||
<data name="LoginEnterPassWd" xml:space="preserve">
|
||||
<value>Entrez votre mot de passe</value>
|
||||
</data>
|
||||
<data name="LoginEnterPseudo" xml:space="preserve">
|
||||
<value>Entrez votre pseudo</value>
|
||||
</data>
|
||||
<data name="LoginId" xml:space="preserve">
|
||||
<value>Identifiant</value>
|
||||
<comment>id</comment>
|
||||
</data>
|
||||
<data name="LoginPassWd" xml:space="preserve">
|
||||
<value>Mot de passe</value>
|
||||
</data>
|
||||
<data name="LoginTitle" xml:space="preserve">
|
||||
<value>Connexion</value>
|
||||
<comment>connexion</comment>
|
||||
</data>
|
||||
</root>
|
@ -0,0 +1,135 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="Log" xml:space="preserve">
|
||||
<value>Current Logs</value>
|
||||
</data>
|
||||
<data name="LogContent" xml:space="preserve">
|
||||
<value>Content</value>
|
||||
</data>
|
||||
<data name="LogLvl" xml:space="preserve">
|
||||
<value>Type of Logs :</value>
|
||||
</data>
|
||||
<data name="LogTitle" xml:space="preserve">
|
||||
<value>Logs</value>
|
||||
</data>
|
||||
<data name="NotLog" xml:space="preserve">
|
||||
<value>No Log</value>
|
||||
</data>
|
||||
</root>
|
@ -0,0 +1,135 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="Log" xml:space="preserve">
|
||||
<value>Logs actuels</value>
|
||||
</data>
|
||||
<data name="LogContent" xml:space="preserve">
|
||||
<value>Contenu</value>
|
||||
</data>
|
||||
<data name="LogLvl" xml:space="preserve">
|
||||
<value>Type de Logs :</value>
|
||||
</data>
|
||||
<data name="LogTitle" xml:space="preserve">
|
||||
<value>Logs</value>
|
||||
</data>
|
||||
<data name="NotLog" xml:space="preserve">
|
||||
<value>Aucun Log</value>
|
||||
</data>
|
||||
</root>
|
@ -0,0 +1,171 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="Action" xml:space="preserve">
|
||||
<value>Action</value>
|
||||
</data>
|
||||
<data name="Add" xml:space="preserve">
|
||||
<value>Add</value>
|
||||
</data>
|
||||
<data name="AnswerA" xml:space="preserve">
|
||||
<value>Answer A</value>
|
||||
</data>
|
||||
<data name="AnswerB" xml:space="preserve">
|
||||
<value>Answer B</value>
|
||||
</data>
|
||||
<data name="AnswerC" xml:space="preserve">
|
||||
<value>Answer C</value>
|
||||
</data>
|
||||
<data name="AnswerD" xml:space="preserve">
|
||||
<value>Answer D</value>
|
||||
</data>
|
||||
<data name="Cancel" xml:space="preserve">
|
||||
<value>Cancel</value>
|
||||
</data>
|
||||
<data name="Delete" xml:space="preserve">
|
||||
<value>Cancel</value>
|
||||
</data>
|
||||
<data name="Edit" xml:space="preserve">
|
||||
<value>Edit</value>
|
||||
</data>
|
||||
<data name="GoodAnswer" xml:space="preserve">
|
||||
<value>Good Answer</value>
|
||||
</data>
|
||||
<data name="Id" xml:space="preserve">
|
||||
<value>ID</value>
|
||||
</data>
|
||||
<data name="ModifInfoUser" xml:space="preserve">
|
||||
<value>Edit user information :</value>
|
||||
</data>
|
||||
<data name="PopupQuestion" xml:space="preserve">
|
||||
<value>Are you sure you want to delete this quiz ?</value>
|
||||
</data>
|
||||
<data name="Question" xml:space="preserve">
|
||||
<value>Question</value>
|
||||
</data>
|
||||
<data name="Save" xml:space="preserve">
|
||||
<value>Save</value>
|
||||
</data>
|
||||
<data name="TitlePage" xml:space="preserve">
|
||||
<value>Quiz Management</value>
|
||||
</data>
|
||||
<data name="Yes" xml:space="preserve">
|
||||
<value>Confirm</value>
|
||||
</data>
|
||||
</root>
|
@ -0,0 +1,171 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="Action" xml:space="preserve">
|
||||
<value>Action</value>
|
||||
</data>
|
||||
<data name="Add" xml:space="preserve">
|
||||
<value>Ajouter</value>
|
||||
</data>
|
||||
<data name="AnswerA" xml:space="preserve">
|
||||
<value>Réponse A</value>
|
||||
</data>
|
||||
<data name="AnswerB" xml:space="preserve">
|
||||
<value>Réponse B</value>
|
||||
</data>
|
||||
<data name="AnswerC" xml:space="preserve">
|
||||
<value>Réponse C</value>
|
||||
</data>
|
||||
<data name="AnswerD" xml:space="preserve">
|
||||
<value>Réponse D</value>
|
||||
</data>
|
||||
<data name="Cancel" xml:space="preserve">
|
||||
<value>Annuler</value>
|
||||
</data>
|
||||
<data name="Delete" xml:space="preserve">
|
||||
<value>Supprimer</value>
|
||||
</data>
|
||||
<data name="Edit" xml:space="preserve">
|
||||
<value>Editer</value>
|
||||
</data>
|
||||
<data name="GoodAnswer" xml:space="preserve">
|
||||
<value>Bonne réponse</value>
|
||||
</data>
|
||||
<data name="Id" xml:space="preserve">
|
||||
<value>ID</value>
|
||||
</data>
|
||||
<data name="ModifInfoUser" xml:space="preserve">
|
||||
<value>Modifier les informations de l'utilisateur :</value>
|
||||
</data>
|
||||
<data name="PopupQuestion" xml:space="preserve">
|
||||
<value>Êtes-vous sûr de vouloir supprimer ce quiz ?</value>
|
||||
</data>
|
||||
<data name="Question" xml:space="preserve">
|
||||
<value>Question</value>
|
||||
</data>
|
||||
<data name="Save" xml:space="preserve">
|
||||
<value>Sauvegarder</value>
|
||||
</data>
|
||||
<data name="TitlePage" xml:space="preserve">
|
||||
<value>Gestion des quiz</value>
|
||||
</data>
|
||||
<data name="Yes" xml:space="preserve">
|
||||
<value>Confirmer</value>
|
||||
</data>
|
||||
</root>
|
@ -0,0 +1,159 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="Action" xml:space="preserve">
|
||||
<value>Action</value>
|
||||
</data>
|
||||
<data name="Cancel" xml:space="preserve">
|
||||
<value>Cancel</value>
|
||||
</data>
|
||||
<data name="Character" xml:space="preserve">
|
||||
<value>Character</value>
|
||||
</data>
|
||||
<data name="Date" xml:space="preserve">
|
||||
<value>Date</value>
|
||||
</data>
|
||||
<data name="Delete" xml:space="preserve">
|
||||
<value>Delete</value>
|
||||
</data>
|
||||
<data name="Edit" xml:space="preserve">
|
||||
<value>Edit</value>
|
||||
</data>
|
||||
<data name="Id" xml:space="preserve">
|
||||
<value>Id</value>
|
||||
</data>
|
||||
<data name="Language" xml:space="preserve">
|
||||
<value>Language</value>
|
||||
</data>
|
||||
<data name="PopupQuestion" xml:space="preserve">
|
||||
<value>Are you sure you want to delete this quote ?</value>
|
||||
</data>
|
||||
<data name="Quote" xml:space="preserve">
|
||||
<value>Quote</value>
|
||||
</data>
|
||||
<data name="Source" xml:space="preserve">
|
||||
<value>Source</value>
|
||||
</data>
|
||||
<data name="TitlePage" xml:space="preserve">
|
||||
<value>Corrections of quotes</value>
|
||||
</data>
|
||||
<data name="Yes" xml:space="preserve">
|
||||
<value>Confirm</value>
|
||||
</data>
|
||||
</root>
|
@ -0,0 +1,159 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="Action" xml:space="preserve">
|
||||
<value>Action</value>
|
||||
</data>
|
||||
<data name="Cancel" xml:space="preserve">
|
||||
<value>Annuler</value>
|
||||
</data>
|
||||
<data name="Character" xml:space="preserve">
|
||||
<value>Personage</value>
|
||||
</data>
|
||||
<data name="Date" xml:space="preserve">
|
||||
<value>Date</value>
|
||||
</data>
|
||||
<data name="Delete" xml:space="preserve">
|
||||
<value>Supprimer</value>
|
||||
</data>
|
||||
<data name="Edit" xml:space="preserve">
|
||||
<value>Editer</value>
|
||||
</data>
|
||||
<data name="Id" xml:space="preserve">
|
||||
<value>Id</value>
|
||||
</data>
|
||||
<data name="Language" xml:space="preserve">
|
||||
<value>Langue</value>
|
||||
</data>
|
||||
<data name="PopupQuestion" xml:space="preserve">
|
||||
<value>Êtes-vous sûr de vouloir supprimer cette citation ?</value>
|
||||
</data>
|
||||
<data name="Quote" xml:space="preserve">
|
||||
<value>Citation</value>
|
||||
</data>
|
||||
<data name="Source" xml:space="preserve">
|
||||
<value>Source</value>
|
||||
</data>
|
||||
<data name="TitlePage" xml:space="preserve">
|
||||
<value>Correction des citations</value>
|
||||
</data>
|
||||
<data name="Yes" xml:space="preserve">
|
||||
<value>Confirmer</value>
|
||||
</data>
|
||||
</root>
|
@ -0,0 +1,153 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="Action" xml:space="preserve">
|
||||
<value>Actions</value>
|
||||
</data>
|
||||
<data name="AnswerA" xml:space="preserve">
|
||||
<value>Answer A</value>
|
||||
</data>
|
||||
<data name="AnswerB" xml:space="preserve">
|
||||
<value>Answer B</value>
|
||||
</data>
|
||||
<data name="AnswerC" xml:space="preserve">
|
||||
<value>Answer C</value>
|
||||
</data>
|
||||
<data name="AnswerD" xml:space="preserve">
|
||||
<value>Answer D</value>
|
||||
</data>
|
||||
<data name="GoodAnswer" xml:space="preserve">
|
||||
<value>Correct answer</value>
|
||||
</data>
|
||||
<data name="LoadQuiz" xml:space="preserve">
|
||||
<value>Loading quizzes</value>
|
||||
</data>
|
||||
<data name="Question" xml:space="preserve">
|
||||
<value>Question</value>
|
||||
</data>
|
||||
<data name="QuizAwait" xml:space="preserve">
|
||||
<value>Quiz awaiting validation</value>
|
||||
</data>
|
||||
<data name="TitleQuiz" xml:space="preserve">
|
||||
<value>Quiz to validate</value>
|
||||
</data>
|
||||
<data name="User" xml:space="preserve">
|
||||
<value>User</value>
|
||||
</data>
|
||||
</root>
|
@ -0,0 +1,153 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="Action" xml:space="preserve">
|
||||
<value>Actions</value>
|
||||
</data>
|
||||
<data name="AnswerA" xml:space="preserve">
|
||||
<value>Réponse A </value>
|
||||
</data>
|
||||
<data name="AnswerB" xml:space="preserve">
|
||||
<value>Réponse B</value>
|
||||
</data>
|
||||
<data name="AnswerC" xml:space="preserve">
|
||||
<value>Réponse C</value>
|
||||
</data>
|
||||
<data name="AnswerD" xml:space="preserve">
|
||||
<value>Réponse D</value>
|
||||
</data>
|
||||
<data name="GoodAnswer" xml:space="preserve">
|
||||
<value>Réponse Correcte</value>
|
||||
</data>
|
||||
<data name="LoadQuiz" xml:space="preserve">
|
||||
<value>Chargement des quiz ...</value>
|
||||
</data>
|
||||
<data name="Question" xml:space="preserve">
|
||||
<value>Question</value>
|
||||
</data>
|
||||
<data name="QuizAwait" xml:space="preserve">
|
||||
<value>Quizs en attente de validation :</value>
|
||||
</data>
|
||||
<data name="TitleQuiz" xml:space="preserve">
|
||||
<value>Quiz à valider</value>
|
||||
</data>
|
||||
<data name="User" xml:space="preserve">
|
||||
<value>Utilisateur</value>
|
||||
</data>
|
||||
</root>
|
@ -0,0 +1,153 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="Character" xml:space="preserve">
|
||||
<value>Character :</value>
|
||||
</data>
|
||||
<data name="Content" xml:space="preserve">
|
||||
<value>Content :</value>
|
||||
</data>
|
||||
<data name="Date" xml:space="preserve">
|
||||
<value>Source date</value>
|
||||
</data>
|
||||
<data name="Id" xml:space="preserve">
|
||||
<value>ID :</value>
|
||||
</data>
|
||||
<data name="Image" xml:space="preserve">
|
||||
<value>Image :</value>
|
||||
</data>
|
||||
<data name="Language" xml:space="preserve">
|
||||
<value>Language :</value>
|
||||
</data>
|
||||
<data name="LoginQuote" xml:space="preserve">
|
||||
<value>Loading quotes</value>
|
||||
</data>
|
||||
<data name="QuoteValid" xml:space="preserve">
|
||||
<value>Quotes awaiting validation</value>
|
||||
</data>
|
||||
<data name="Source" xml:space="preserve">
|
||||
<value>Source :</value>
|
||||
</data>
|
||||
<data name="TitleValid" xml:space="preserve">
|
||||
<value>Unvalidated quotes</value>
|
||||
</data>
|
||||
<data name="User" xml:space="preserve">
|
||||
<value>User :</value>
|
||||
</data>
|
||||
</root>
|
@ -0,0 +1,153 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="Character" xml:space="preserve">
|
||||
<value>Personnage :</value>
|
||||
</data>
|
||||
<data name="Content" xml:space="preserve">
|
||||
<value>Contenu :</value>
|
||||
</data>
|
||||
<data name="Date" xml:space="preserve">
|
||||
<value>Date de la source :</value>
|
||||
</data>
|
||||
<data name="Id" xml:space="preserve">
|
||||
<value>ID :</value>
|
||||
</data>
|
||||
<data name="Image" xml:space="preserve">
|
||||
<value>Image :</value>
|
||||
</data>
|
||||
<data name="Language" xml:space="preserve">
|
||||
<value>Langue :</value>
|
||||
</data>
|
||||
<data name="LoginQuote" xml:space="preserve">
|
||||
<value>Chargement des citations...</value>
|
||||
</data>
|
||||
<data name="QuoteValid" xml:space="preserve">
|
||||
<value>Citations en attente de validation :</value>
|
||||
</data>
|
||||
<data name="Source" xml:space="preserve">
|
||||
<value>Source :</value>
|
||||
</data>
|
||||
<data name="TitleValid" xml:space="preserve">
|
||||
<value>Citations non validées</value>
|
||||
</data>
|
||||
<data name="User" xml:space="preserve">
|
||||
<value>Utilisateur :</value>
|
||||
</data>
|
||||
</root>
|
@ -0,0 +1,26 @@
|
||||
using WF_WebAdmin.Model;
|
||||
|
||||
namespace WF_WebAdmin.Service
|
||||
{
|
||||
public interface IQuizService
|
||||
{
|
||||
public Task addQuiz(Quiz quiz);
|
||||
|
||||
public Task updateQuiz(Quiz quiz);
|
||||
|
||||
public Task removeQuiz(int id);
|
||||
|
||||
public Task validateQuiz(int id);
|
||||
|
||||
public Task<List<Quiz>> getQuizzes();
|
||||
|
||||
public Task<List<Quiz>> getQuizzesToValidate();
|
||||
|
||||
public Task<Quiz> getQuiz(int id);
|
||||
|
||||
public Task<List<Quiz>> getSommeQuiz(int nb, int page);
|
||||
|
||||
public Task<int> getNbQuiz();
|
||||
}
|
||||
}
|
||||
|
@ -1,25 +0,0 @@
|
||||
using WF_WebAdmin.Model;
|
||||
|
||||
namespace WF_WebAdmin.Service;
|
||||
|
||||
public class QuizService
|
||||
{
|
||||
public List<Quiz> GetQuizToConfirm()
|
||||
{
|
||||
var res = new List<Quiz>();
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
public bool AddQuiz(Quiz quiz)
|
||||
{
|
||||
var res = false;
|
||||
return res;
|
||||
}
|
||||
|
||||
public bool RemoveQuiz(Quiz quiz)
|
||||
{
|
||||
var res = false;
|
||||
return res;
|
||||
}
|
||||
}
|
@ -0,0 +1,202 @@
|
||||
using System.Text.Json;
|
||||
using WF_WebAdmin.Model;
|
||||
|
||||
namespace WF_WebAdmin.Service;
|
||||
|
||||
public class QuizServiceStub: IQuizService
|
||||
{
|
||||
private readonly string _jsonFilePath = Path.Combine(Environment.CurrentDirectory, "wwwroot", "fake_data_quiz.json");
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Asynchronously saves a list of quiz objects to a JSON file.
|
||||
/// </summary>
|
||||
/// <param name="quizzes">A list of <see cref="Quiz"/> objects to be serialized and saved.</param>
|
||||
/// <returns>A task representing the asynchronous operation.</returns>
|
||||
/// <remarks>
|
||||
/// This method serializes the list of quizzes to a well-formatted JSON string and saves it
|
||||
/// to a specified file path. The <paramref name="quizzes"/> list is serialized using
|
||||
/// <see cref="JsonSerializer"/> with indented formatting to make the JSON human-readable.
|
||||
/// </remarks>
|
||||
public async Task saveQuizJson(List<Quiz> quizzes)
|
||||
{
|
||||
var json = JsonSerializer.Serialize(quizzes, new JsonSerializerOptions { WriteIndented = true });
|
||||
await File.WriteAllTextAsync(_jsonFilePath, json);
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Asynchronously adds a new quiz to the list of quizzes and saves the updated list to a JSON file.
|
||||
/// </summary>
|
||||
/// <param name="quiz">The <see cref="Quiz"/> object to be added to the list of quizzes.</param>
|
||||
/// <returns>A task representing the asynchronous operation.</returns>
|
||||
/// <remarks>
|
||||
/// This method retrieves the current list of quizzes using <see cref="getQuizzes"/>, assigns a unique ID to the
|
||||
/// new quiz (based on the highest existing ID), and adds the new quiz to the list. Afterward, the updated list
|
||||
/// of quizzes is saved back to the JSON file using <see cref="saveQuizJson"/>. The new quiz will have an ID
|
||||
/// that's one greater than the highest existing ID or 1 if no quizzes exist.
|
||||
/// </remarks>
|
||||
public async Task addQuiz(Quiz quiz)
|
||||
{
|
||||
var data = await getQuizzes();
|
||||
quiz.Id = data.Count > 0 ? data.Max(p => p.Id) + 1 : 1;
|
||||
data.Add(quiz);
|
||||
await saveQuizJson(data);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Asynchronously updates an existing quiz in the list of quizzes and saves the updated list to a JSON file.
|
||||
/// </summary>
|
||||
/// <param name="quiz">The <see cref="Quiz"/> object containing the updated data.</param>
|
||||
/// <returns>A task representing the asynchronous operation.</returns>
|
||||
/// <remarks>
|
||||
/// This method retrieves the current list of quizzes using <see cref="getQuizzes"/>, searches for the quiz
|
||||
/// with the same ID as the one provided, and updates its properties with the new values from the given quiz object.
|
||||
/// If the quiz is found, the updated list is saved back to the JSON file using <see cref="saveQuizJson"/>.
|
||||
/// If no quiz with the matching ID is found, no update is performed.
|
||||
/// </remarks>
|
||||
public async Task updateQuiz(Quiz quiz)
|
||||
{
|
||||
var data = await getQuizzes();
|
||||
var existingQuiz = data.FirstOrDefault(q => q.Id == quiz.Id);
|
||||
if (existingQuiz != null)
|
||||
{
|
||||
existingQuiz.Question = quiz.Question;
|
||||
existingQuiz.AnswerA = quiz.AnswerA;
|
||||
existingQuiz.AnswerB = quiz.AnswerB;
|
||||
existingQuiz.AnswerC = quiz.AnswerC;
|
||||
existingQuiz.AnswerD = quiz.AnswerD;
|
||||
existingQuiz.CAnswer = quiz.CAnswer;
|
||||
existingQuiz.IsValid = quiz.IsValid;
|
||||
existingQuiz.UserProposition = quiz.UserProposition;
|
||||
await saveQuizJson(data);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Asynchronously removes a quiz from the list of quizzes by its ID and saves the updated list to a JSON file.
|
||||
/// </summary>
|
||||
/// <param name="id">The ID of the <see cref="Quiz"/> to be removed.</param>
|
||||
/// <returns>A task representing the asynchronous operation.</returns>
|
||||
/// <remarks>
|
||||
/// This method retrieves the current list of quizzes using <see cref="getQuizzes"/>, searches for the quiz
|
||||
/// with the specified ID, and removes it from the list if found. After removal, the updated list of quizzes is
|
||||
/// saved back to the JSON file using <see cref="saveQuizJson"/>. If no quiz with the matching ID is found,
|
||||
/// no changes are made.
|
||||
/// </remarks>
|
||||
public async Task removeQuiz(int id)
|
||||
{
|
||||
var data = await getQuizzes();
|
||||
var quiz = data.FirstOrDefault(q => q.Id == id);
|
||||
if (quiz != null)
|
||||
{
|
||||
data.Remove(quiz);
|
||||
await saveQuizJson(data);
|
||||
}
|
||||
}
|
||||
|
||||
public Task validateQuiz(int id)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Asynchronously retrieves the list of quizzes from a JSON file.
|
||||
/// </summary>
|
||||
/// <returns>A task representing the asynchronous operation, with a <see cref="List{Quiz}"/> result containing the quizzes.</returns>
|
||||
/// <remarks>
|
||||
/// This method checks if the JSON file exists at the specified file path. If the file does not exist, it logs a
|
||||
/// message to the console and returns an empty list of quizzes. If the file exists, it reads the JSON content,
|
||||
/// deserializes it into a list of <see cref="Quiz"/> objects, and returns the list. If the deserialization is
|
||||
/// unsuccessful or the file is empty, it returns an empty list instead.
|
||||
/// </remarks>
|
||||
public async Task<List<Quiz>> getQuizzes()
|
||||
{
|
||||
if (!File.Exists(_jsonFilePath))
|
||||
{
|
||||
Console.Out.WriteLine($"{_jsonFilePath} not found");
|
||||
return new List<Quiz>();
|
||||
}
|
||||
|
||||
var json = await File.ReadAllTextAsync(_jsonFilePath);
|
||||
return JsonSerializer.Deserialize<List<Quiz>>(json) ?? new List<Quiz>();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Asynchronously retrieves the list of quizzes that are marked as invalid and need validation.
|
||||
/// </summary>
|
||||
/// <returns>A task representing the asynchronous operation, with a <see cref="List{Quiz}"/> result containing quizzes that are not valid.</returns>
|
||||
/// <remarks>
|
||||
/// This method retrieves the full list of quizzes using <see cref="getQuizzes"/> and filters it to return only those
|
||||
/// quizzes where the <see cref="Quiz.IsValid"/> property is set to <c>false</c>. The filtered list is then returned.
|
||||
/// If no quizzes are invalid, an empty list will be returned.
|
||||
/// </remarks>
|
||||
public async Task<List<Quiz>> getQuizzesToValidate()
|
||||
{
|
||||
var quizzes = await getQuizzes();
|
||||
return quizzes.Where(quiz => !quiz.IsValid).ToList();
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Asynchronously retrieves a specific quiz by its ID from the list of quizzes.
|
||||
/// </summary>
|
||||
/// <param name="id">The ID of the <see cref="Quiz"/> to retrieve.</param>
|
||||
/// <returns>A task representing the asynchronous operation, with a <see cref="Quiz"/> result containing the matching quiz, or <c>null</c> if not found.</returns>
|
||||
/// <remarks>
|
||||
/// This method retrieves the full list of quizzes using <see cref="getQuizzes"/> and searches for a quiz with
|
||||
/// the specified ID. If a quiz with the matching ID is found, it is returned; otherwise, the method returns <c>null</c>.
|
||||
/// </remarks>
|
||||
public async Task<Quiz> getQuiz(int id)
|
||||
{
|
||||
var data = await getQuizzes();
|
||||
var q = data.FirstOrDefault(p => p.Id == id);
|
||||
if (q == null)
|
||||
{
|
||||
throw new KeyNotFoundException($"Quiz with ID {id} not found.");
|
||||
}
|
||||
return q;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Asynchronously retrieves a paginated list of quizzes, returning a specific number of quizzes for the given page.
|
||||
/// </summary>
|
||||
/// <param name="nb">The number of quizzes to retrieve per page.</param>
|
||||
/// <param name="page">The page number to retrieve, where the first page is 1.</param>
|
||||
/// <returns>A task representing the asynchronous operation, with a <see cref="List{Quiz}"/> result containing the quizzes for the specified page.</returns>
|
||||
/// <remarks>
|
||||
/// This method retrieves the full list of quizzes using <see cref="getQuizzes"/> and returns a subset of quizzes based
|
||||
/// on the specified page number and the number of quizzes per page. If the requested page exceeds the available quizzes,
|
||||
/// the method returns the last page with the remaining quizzes. If the number of quizzes requested per page exceeds the
|
||||
/// total number of quizzes, the method will return all quizzes available.
|
||||
/// </remarks>
|
||||
public async Task<List<Quiz>> getSommeQuiz(int nb, int page)
|
||||
{
|
||||
var data = await getQuizzes();
|
||||
if ((page - 1) * nb + nb > data.Count)
|
||||
{
|
||||
if (nb > data.Count)
|
||||
{
|
||||
return data.GetRange(0, data.Count - 1);
|
||||
}
|
||||
return data.GetRange(data.Count - nb, nb);
|
||||
}
|
||||
return data.GetRange((page - 1) * nb, nb);
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Asynchronously retrieves the total number of quizzes in the list.
|
||||
/// </summary>
|
||||
/// <returns>A task representing the asynchronous operation, with an <see cref="int"/> result containing the total number of quizzes.</returns>
|
||||
/// <remarks>
|
||||
/// This method retrieves the full list of quizzes using <see cref="getQuizzes"/> and returns the count of quizzes in the list.
|
||||
/// It simply returns the number of quizzes available in the data source.
|
||||
/// </remarks>
|
||||
public async Task<int> getNbQuiz()
|
||||
{
|
||||
var data = await getQuizzes();
|
||||
return data.Count;
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,293 @@
|
||||
using System.Text.Json;
|
||||
using WF_WebAdmin.Model;
|
||||
|
||||
namespace WF_WebAdmin.Service;
|
||||
|
||||
public class QuoteServiceStub : IQuoteService
|
||||
{
|
||||
private readonly string _jsonFilePath = Path.Combine(Environment.CurrentDirectory, "wwwroot", "fake-dataQuote.json");
|
||||
private readonly string _char = Path.Combine(Environment.CurrentDirectory, "wwwroot", "fake-dataCaracter.json");
|
||||
private readonly string _src = Path.Combine(Environment.CurrentDirectory, "wwwroot", "fake-dataSource.json");
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Asynchronously saves a list of quotes to a JSON file.
|
||||
/// </summary>
|
||||
/// <param name="quotes">The list of <see cref="Quote"/> objects to be serialized and saved to the file.</param>
|
||||
/// <returns>A task representing the asynchronous operation of saving the quotes to the file.</returns>
|
||||
/// <remarks>
|
||||
/// This method serializes the provided list of <see cref="Quote"/> objects into JSON format using <see cref="JsonSerializer"/>.
|
||||
/// The serialized JSON is then saved to the file path specified in the <see cref="_jsonFilePath"/> field. The JSON is written
|
||||
/// with indentation for better readability.
|
||||
/// If the file does not already exist, it will be created.
|
||||
/// </remarks>
|
||||
public async Task saveQuoteJson(List<Quote> quotes)
|
||||
{
|
||||
var json = JsonSerializer.Serialize(quotes, new JsonSerializerOptions { WriteIndented = true });
|
||||
await File.WriteAllTextAsync(_jsonFilePath, json);
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Asynchronously adds a new quote to the list and saves it to a JSON file.
|
||||
/// </summary>
|
||||
/// <param name="quote">The <see cref="Quote"/> object to be added to the list.</param>
|
||||
/// <returns>A task representing the asynchronous operation of adding the quote and saving the updated list to the file.</returns>
|
||||
/// <remarks>
|
||||
/// This method retrieves the current list of quotes using the <see cref="getAllQuote"/> method, assigns a new ID to the
|
||||
/// provided quote (incremented from the maximum existing ID), and adds the quote to the list. After updating the list,
|
||||
/// the method saves the updated list back to the JSON file using <see cref="saveQuoteJson"/>.
|
||||
/// If the list is empty, the new quote is assigned an ID of 1.
|
||||
/// </remarks>
|
||||
public async Task addQuote(Quote quote)
|
||||
{
|
||||
var data = await getAllQuote();
|
||||
quote.Id = data.Count > 0 ? data.Max(p => p.Id) + 1 : 1;
|
||||
data.Add(quote);
|
||||
await saveQuoteJson(data);
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Asynchronously removes a quote from the list and saves the updated list to a JSON file.
|
||||
/// </summary>
|
||||
/// <param name="quote">The <see cref="Quote"/> object to be removed from the list.</param>
|
||||
/// <returns>A task representing the asynchronous operation of removing the quote and saving the updated list to the file.</returns>
|
||||
/// <remarks>
|
||||
/// This method retrieves the current list of quotes using the <see cref="getAllQuote"/> method.
|
||||
/// It searches for the provided quote by its `Id` and, if found, removes it from the list.
|
||||
/// After removing the quote, the method saves the updated list back to the JSON file using <see cref="saveQuoteJson"/>.
|
||||
/// If the quote is not found in the list, no action is taken.
|
||||
/// </remarks>
|
||||
public async Task removeQuote(Quote quote)
|
||||
{
|
||||
var data = await getAllQuote();
|
||||
var q = data.FirstOrDefault(p => p.Id == quote.Id);
|
||||
if (q != null)
|
||||
{
|
||||
data.Remove(q);
|
||||
await saveQuoteJson(data);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public Task validQuote(Quote? quote)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Asynchronously updates the details of an existing quote and saves the updated list to a JSON file.
|
||||
/// </summary>
|
||||
/// <param name="quote">The <see cref="Quote"/> object containing the updated details of the quote.</param>
|
||||
/// <returns>A task representing the asynchronous operation of updating the quote and saving the updated list to the file.</returns>
|
||||
/// <remarks>
|
||||
/// This method retrieves the current list of quotes using the <see cref="getAllQuote"/> method.
|
||||
/// It searches for the quote with the provided `Id` and, if found, updates its properties (e.g., content, character, image path, etc.)
|
||||
/// with the values from the provided `quote` object. After updating the quote, the method saves the updated list back to the JSON file
|
||||
/// using <see cref="saveQuoteJson"/>. If the quote with the specified `Id` is not found, no action is taken.
|
||||
/// </remarks>
|
||||
public async Task updateQuote(Quote? quote)
|
||||
{
|
||||
var data = await getAllQuote();
|
||||
var q = data.FirstOrDefault(p => p.Id == quote.Id);
|
||||
if (q != null)
|
||||
{
|
||||
q.Content = quote.Content;
|
||||
q.Charac = quote.Charac;
|
||||
q.ImgPath = quote.ImgPath;
|
||||
q.TitleSrc = quote.TitleSrc;
|
||||
q.DateSrc = quote.DateSrc;
|
||||
q.Langue = quote.Langue;
|
||||
await saveQuoteJson(data);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Asynchronously retrieves all quotes from a JSON file.
|
||||
/// </summary>
|
||||
/// <returns>A task representing the asynchronous operation, with a result of a list of <see cref="Quote"/> objects.</returns>
|
||||
/// <remarks>
|
||||
/// This method checks if the JSON file exists at the specified file path (<see cref="_jsonFilePath"/>).
|
||||
/// If the file does not exist, it logs a message and returns an empty list of quotes.
|
||||
/// If the file exists, it reads the JSON content, deserializes it into a list of <see cref="Quote"/> objects,
|
||||
/// and returns that list. If the deserialization results in a null value, an empty list is returned.
|
||||
/// </remarks>
|
||||
public async Task<List<Quote>> getAllQuote()
|
||||
{
|
||||
if (!File.Exists(_jsonFilePath))
|
||||
{
|
||||
Console.Out.WriteLine($"{_jsonFilePath} not found");
|
||||
return new List<Quote>();
|
||||
}
|
||||
|
||||
var json = await File.ReadAllTextAsync(_jsonFilePath);
|
||||
return JsonSerializer.Deserialize<List<Quote>>(json) ?? new List<Quote>();
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Asynchronously retrieves a subset of quotes based on the specified page number and the number of quotes per page.
|
||||
/// </summary>
|
||||
/// <param name="nb">The number of quotes to retrieve per page.</param>
|
||||
/// <param name="page">The page number for pagination.</param>
|
||||
/// <returns>A task representing the asynchronous operation, with a result of a list of <see cref="Quote"/> objects for the specified page.</returns>
|
||||
/// <remarks>
|
||||
/// This method retrieves all quotes using the <see cref="getAllQuote"/> method and then calculates the range of quotes
|
||||
/// to be returned based on the provided `nb` (number of quotes per page) and `page` (the page number). It ensures that
|
||||
/// the returned subset does not exceed the total number of quotes available.
|
||||
///
|
||||
/// If the calculated range is larger than the available quotes, it returns a subset of quotes from the end of the list.
|
||||
/// If the requested page number exceeds the total number of pages, the method will return the last available page of quotes.
|
||||
/// </remarks>
|
||||
public async Task<List<Quote>> getSomeQuote(int nb, int page)
|
||||
{
|
||||
var quotes = await getAllQuote();
|
||||
if ((page - 1) * nb + nb > quotes.Count())
|
||||
{
|
||||
if (nb > quotes.Count())
|
||||
{
|
||||
return quotes.GetRange(0, quotes.Count());
|
||||
}
|
||||
return quotes.GetRange(quotes.Count() - nb, nb);
|
||||
}
|
||||
return quotes.GetRange((page - 1) * nb, nb);
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Asynchronously retrieves a single quote based on its ID.
|
||||
/// </summary>
|
||||
/// <param name="id">The unique identifier of the <see cref="Quote"/> to be retrieved.</param>
|
||||
/// <returns>A task representing the asynchronous operation, with a result of the <see cref="Quote"/> object if found, otherwise null.</returns>
|
||||
/// <remarks>
|
||||
/// This method retrieves all quotes using the <see cref="getAllQuote"/> method and searches for the quote that matches the provided `id`.
|
||||
/// If a matching quote is found, it returns that quote; otherwise, it returns `null`.
|
||||
/// </remarks>
|
||||
public async Task<Quote?> getOnequote(int id)
|
||||
{
|
||||
var data = await getAllQuote();
|
||||
var q = data.FirstOrDefault(p => p.Id == id);
|
||||
if (q == null)
|
||||
{
|
||||
throw new KeyNotFoundException($"Quote with ID {id} not found.");
|
||||
}
|
||||
return q;
|
||||
}
|
||||
|
||||
|
||||
public Task<List<Quote>> reserchQuote(string reserch, List<string> argument)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Asynchronously retrieves all invalid quotes from the list.
|
||||
/// </summary>
|
||||
/// <returns>A task representing the asynchronous operation, with a result of a list of invalid <see cref="Quote"/> objects.</returns>
|
||||
/// <remarks>
|
||||
/// This method retrieves all quotes using the <see cref="getAllQuote"/> method and filters them by the `IsValid` property.
|
||||
/// It returns only those quotes where `IsValid` is set to `false`.
|
||||
/// If no invalid quotes are found, an empty list is returned.
|
||||
/// </remarks>
|
||||
public async Task<List<Quote>> getAllQuoteInvalid()
|
||||
{
|
||||
var quotes = await getAllQuote();
|
||||
quotes = quotes.Where(q => !q.IsValid).ToList();
|
||||
return quotes;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Asynchronously retrieves a subset of invalid quotes based on the specified page number and the number of quotes per page.
|
||||
/// </summary>
|
||||
/// <param name="nb">The number of invalid quotes to retrieve per page.</param>
|
||||
/// <param name="page">The page number for pagination.</param>
|
||||
/// <returns>A task representing the asynchronous operation, with a result of a list of invalid <see cref="Quote"/> objects for the specified page.</returns>
|
||||
/// <remarks>
|
||||
/// This method retrieves all invalid quotes using the <see cref="getAllQuoteInvalid"/> method and then calculates the range of invalid quotes
|
||||
/// to be returned based on the provided `nb` (number of quotes per page) and `page` (the page number). It ensures that
|
||||
/// the returned subset does not exceed the total number of invalid quotes available.
|
||||
///
|
||||
/// If the calculated range is larger than the available invalid quotes, it returns a subset of quotes from the end of the list.
|
||||
/// If the requested page number exceeds the total number of pages, the method will return the last available page of invalid quotes.
|
||||
/// </remarks>
|
||||
public async Task<List<Quote>> getSomeQuoteInvalid(int nb, int page)
|
||||
{
|
||||
var quotes = await getAllQuoteInvalid();
|
||||
if ((page - 1) * nb + nb > quotes.Count)
|
||||
{
|
||||
if (nb > quotes.Count)
|
||||
{
|
||||
return quotes.GetRange(0, quotes.Count);
|
||||
}
|
||||
return quotes.GetRange(quotes.Count - nb, nb);
|
||||
}
|
||||
return quotes.GetRange((page - 1) * nb, nb);
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Asynchronously retrieves the total number of quotes.
|
||||
/// </summary>
|
||||
/// <returns>A task representing the asynchronous operation, with a result of the total number of <see cref="Quote"/> objects.</returns>
|
||||
/// <remarks>
|
||||
/// This method retrieves all quotes using the <see cref="getAllQuote"/> method and returns the count of quotes.
|
||||
/// It provides the total number of quotes currently available in the data source.
|
||||
/// </remarks>
|
||||
public async Task<int> getNbQuote()
|
||||
{
|
||||
var data = await getAllQuote();
|
||||
return data.Count;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Asynchronously retrieves a list of characters from a JSON file.
|
||||
/// </summary>
|
||||
/// <returns>A task representing the asynchronous operation, with a result of a list of <see cref="Character"/> objects.</returns>
|
||||
/// <remarks>
|
||||
/// This method checks if the JSON file containing character data exists at the specified file path (`_char`).
|
||||
/// If the file does not exist, it logs a message to the console and returns an empty list of characters.
|
||||
/// If the file exists, it reads the JSON content, deserializes it into a list of <see cref="Character"/> objects,
|
||||
/// and returns that list. If the deserialization results in a null value, an empty list is returned.
|
||||
/// </remarks>
|
||||
public async Task<List<Character>> getChar()
|
||||
{
|
||||
if (!File.Exists(_char))
|
||||
{
|
||||
Console.Out.WriteLine($"{_char} not found");
|
||||
return new List<Character>();
|
||||
}
|
||||
|
||||
var json = await File.ReadAllTextAsync(_char);
|
||||
return JsonSerializer.Deserialize<List<Character>>(json) ?? new List<Character>();
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Asynchronously retrieves a list of sources from a JSON file.
|
||||
/// </summary>
|
||||
/// <returns>A task representing the asynchronous operation, with a result of a list of <see cref="Source"/> objects.</returns>
|
||||
/// <remarks>
|
||||
/// This method checks if the JSON file containing source data exists at the specified file path (`_src`).
|
||||
/// If the file does not exist, it logs a message to the console and returns an empty list of sources.
|
||||
/// If the file exists, it reads the JSON content, deserializes it into a list of <see cref="Source"/> objects,
|
||||
/// and returns that list. If the deserialization results in a null value, an empty list is returned.
|
||||
/// </remarks>
|
||||
public async Task<List<Source>> getSrc()
|
||||
{
|
||||
if (!File.Exists(_src))
|
||||
{
|
||||
Console.Out.WriteLine($"{_src} not found");
|
||||
return new List<Source>();
|
||||
}
|
||||
|
||||
var json = await File.ReadAllTextAsync(_src);
|
||||
return JsonSerializer.Deserialize<List<Source>>(json) ?? new List<Source>();
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,193 @@
|
||||
using System.Text.Json;
|
||||
using WF_WebAdmin.Model;
|
||||
|
||||
namespace WF_WebAdmin.Service;
|
||||
|
||||
public class UserServiceStub : IUserService
|
||||
{
|
||||
private readonly string _jsonFilePath = Path.Combine(Environment.CurrentDirectory, "wwwroot", "fake_data_users.json");
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Asynchronously saves a list of users to a JSON file.
|
||||
/// </summary>
|
||||
/// <param name="users">The list of <see cref="User"/> objects to be saved to the file.</param>
|
||||
/// <returns>A task representing the asynchronous operation.</returns>
|
||||
/// <remarks>
|
||||
/// This method serializes the provided list of <see cref="User"/> objects into a JSON format using the `JsonSerializer`.
|
||||
/// It then writes the serialized JSON string to the file specified by the `_jsonFilePath`. The JSON is written with indentation for readability.
|
||||
/// </remarks>
|
||||
public async Task saveUsersJson(List<User> users)
|
||||
{
|
||||
var json = JsonSerializer.Serialize(users, new JsonSerializerOptions { WriteIndented = true });
|
||||
await File.WriteAllTextAsync(_jsonFilePath, json);
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Asynchronously removes a user from the list of users and saves the updated list to a JSON file.
|
||||
/// </summary>
|
||||
/// <param name="user">The <see cref="User"/> object to be removed from the list.</param>
|
||||
/// <returns>A task representing the asynchronous operation.</returns>
|
||||
/// <remarks>
|
||||
/// This method retrieves the list of all users using the <see cref="getAllUser"/> method,
|
||||
/// then searches for the specified user by their `Id`. If a matching user is found,
|
||||
/// they are removed from the list, and the updated list is saved back to the JSON file using the <see cref="saveUsersJson"/> method.
|
||||
/// </remarks>
|
||||
public async Task removeUser(User user)
|
||||
{
|
||||
var data = await getAllUser();
|
||||
var u = data.FirstOrDefault(p => p.Id == user.Id);
|
||||
if (u != null)
|
||||
{
|
||||
data.Remove(u);
|
||||
await saveUsersJson(data);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Asynchronously updates the role of a user, setting the user as an administrator.
|
||||
/// </summary>
|
||||
/// <param name="user">The <see cref="User"/> object whose role is to be updated.</param>
|
||||
/// <returns>A task representing the asynchronous operation of updating the user's role.</returns>
|
||||
/// <remarks>
|
||||
/// This method updates the `IsAdmin` property of the specified user to `true`, indicating that the user is an administrator.
|
||||
/// It then calls the <see cref="updateUser"/> method to persist the updated user information.
|
||||
/// </remarks>
|
||||
public Task updateRole(User? user)
|
||||
{
|
||||
user.IsAdmin = true;
|
||||
return updateUser(user);
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Asynchronously downgrades the role of a user, removing their administrator privileges.
|
||||
/// </summary>
|
||||
/// <param name="user">The <see cref="User"/> object whose role is to be downgraded.</param>
|
||||
/// <returns>A task representing the asynchronous operation of downgrading the user's role.</returns>
|
||||
/// <remarks>
|
||||
/// This method updates the `IsAdmin` property of the specified user to `false`, removing their administrator status.
|
||||
/// It then calls the <see cref="updateUser"/> method to persist the updated user information.
|
||||
/// </remarks>
|
||||
public Task downgradeRole(User? user)
|
||||
{
|
||||
user.IsAdmin = false;
|
||||
return updateUser(user);
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Asynchronously retrieves a list of all users from a JSON file.
|
||||
/// </summary>
|
||||
/// <returns>A task representing the asynchronous operation, with a result of a list of <see cref="User"/> objects.</returns>
|
||||
/// <remarks>
|
||||
/// This method checks if the JSON file containing user data exists at the specified file path (`_jsonFilePath`).
|
||||
/// If the file does not exist, it logs a message to the console and returns an empty list of users.
|
||||
/// If the file exists, it reads the JSON content, deserializes it into a list of <see cref="User"/> objects,
|
||||
/// and returns that list. If the deserialization results in a null value, an empty list is returned.
|
||||
/// </remarks>
|
||||
public async Task<List<User>> getAllUser()
|
||||
{
|
||||
if (!File.Exists(_jsonFilePath))
|
||||
{
|
||||
Console.Out.WriteLine($"{_jsonFilePath} not found");
|
||||
return new List<User>();
|
||||
}
|
||||
|
||||
var json = await File.ReadAllTextAsync(_jsonFilePath);
|
||||
return JsonSerializer.Deserialize<List<User>>(json) ?? new List<User>();
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Asynchronously retrieves a paginated list of users from a JSON file.
|
||||
/// </summary>
|
||||
/// <param name="nb">The number of users to retrieve per page.</param>
|
||||
/// <param name="page">The page number for the data to retrieve.</param>
|
||||
/// <returns>A task representing the asynchronous operation, with a result of a list of <see cref="User"/> objects.</returns>
|
||||
/// <remarks>
|
||||
/// This method retrieves all users using the <see cref="getAllUser"/> method, then calculates the range of users to return
|
||||
/// based on the specified page number and the number of users per page (`nb`).
|
||||
/// It returns the corresponding subset of users for the given page. If the page exceeds the available number of users,
|
||||
/// it returns the last `nb` users available.
|
||||
/// </remarks>
|
||||
public async Task<List<User>?> getSomeUser(int nb, int page)
|
||||
{
|
||||
var users = await getAllUser();
|
||||
if ((page - 1) * nb + nb > users.Count)
|
||||
{
|
||||
return users.GetRange(users.Count - nb, nb);
|
||||
}
|
||||
return users.GetRange((page - 1) * nb, nb);
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Asynchronously retrieves a single user by their ID from the JSON file.
|
||||
/// </summary>
|
||||
/// <param name="id">The ID of the user to retrieve.</param>
|
||||
/// <returns>A task representing the asynchronous operation, with a result of the <see cref="User"/> object if found, otherwise null.</returns>
|
||||
/// <remarks>
|
||||
/// This method retrieves all users using the <see cref="getAllUser"/> method,
|
||||
/// then searches for the user with the specified `id`. If a user with the given ID is found,
|
||||
/// the user is returned. Otherwise, it returns null.
|
||||
/// </remarks>
|
||||
public async Task<User> getOneUser(int id)
|
||||
{
|
||||
var data = await getAllUser();
|
||||
var user = data.FirstOrDefault(p => p.Id == id);
|
||||
|
||||
if (user == null)
|
||||
{
|
||||
throw new KeyNotFoundException($"User with ID {id} not found.");
|
||||
}
|
||||
|
||||
return user;
|
||||
}
|
||||
|
||||
|
||||
public Task<List<User>> reserchUsers(string reserch, List<string> args)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Asynchronously retrieves the total number of users from the JSON file.
|
||||
/// </summary>
|
||||
/// <returns>A task representing the asynchronous operation, with a result of the total number of users.</returns>
|
||||
/// <remarks>
|
||||
/// This method retrieves all users using the <see cref="getAllUser"/> method and returns the count of users in the list.
|
||||
/// </remarks>
|
||||
public async Task<int> getNbUser()
|
||||
{
|
||||
var data = await getAllUser();
|
||||
return data.Count;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Asynchronously updates the details of a user in the JSON file.
|
||||
/// </summary>
|
||||
/// <param name="user">The <see cref="User"/> object containing the updated user details.</param>
|
||||
/// <returns>A task representing the asynchronous operation of updating the user.</returns>
|
||||
/// <remarks>
|
||||
/// This method retrieves all users using the <see cref="getAllUser"/> method, then searches for the user with the specified ID.
|
||||
/// If a user with the given ID is found, it updates their details (Name, Email, Image, IsAdmin) based on the provided `user` object.
|
||||
/// After updating the user, the modified list of users is saved back to the JSON file using the <see cref="saveUsersJson"/> method.
|
||||
/// </remarks>
|
||||
public async Task updateUser(User? user)
|
||||
{
|
||||
var data = await getAllUser();
|
||||
var person = data.FirstOrDefault(p => p.Id == user.Id);
|
||||
if (person != null)
|
||||
{
|
||||
person.Name = user.Name;
|
||||
person.Email = user.Email;
|
||||
person.Image = user.Image;
|
||||
person.IsAdmin = user.IsAdmin;
|
||||
await saveUsersJson(data);
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,54 @@
|
||||
@using System.Globalization
|
||||
@inject NavigationManager NavigationManager
|
||||
|
||||
<p>
|
||||
<label>
|
||||
Select your locale:
|
||||
<select @bind="Culture">
|
||||
@foreach (var culture in supportedCultures)
|
||||
{
|
||||
<option value="@culture">@culture.DisplayName</option>
|
||||
}
|
||||
</select>
|
||||
</label>
|
||||
</p>
|
||||
|
||||
@code
|
||||
{
|
||||
private CultureInfo[] supportedCultures = new[]
|
||||
{
|
||||
new CultureInfo("en-US"),
|
||||
new CultureInfo("fr-FR")
|
||||
};
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the current culture for the application, triggering a navigation to set the culture cookie when changed.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// The getter retrieves the current culture of the application using <see cref="CultureInfo.CurrentCulture"/>.
|
||||
/// The setter checks if the current UI culture matches the provided value. If they are the same, no action is taken.
|
||||
/// If the cultures differ, it constructs a query string that includes the new culture and a redirect URI,
|
||||
/// and then navigates to a "/Culture/SetCulture" endpoint to set the culture cookie.
|
||||
/// The user is redirected to the same page with the new culture applied after the redirect.
|
||||
/// </remarks>
|
||||
private CultureInfo Culture
|
||||
{
|
||||
get => CultureInfo.CurrentCulture;
|
||||
set
|
||||
{
|
||||
if (CultureInfo.CurrentUICulture == value)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
var culture = value.Name.ToLower(CultureInfo.InvariantCulture);
|
||||
|
||||
var uri = new Uri(this.NavigationManager.Uri).GetComponents(UriComponents.PathAndQuery, UriFormat.Unescaped);
|
||||
var query = $"?culture={Uri.EscapeDataString(culture)}&" + $"redirectUri={Uri.EscapeDataString(uri)}";
|
||||
|
||||
// Redirect the user to the culture controller to set the cookie
|
||||
this.NavigationManager.NavigateTo("/Culture/SetCulture" + query, forceLoad: true);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
@ -1,18 +1,40 @@
|
||||
@inherits LayoutComponentBase
|
||||
@using WF_WebAdmin.Model
|
||||
@inherits LayoutComponentBase
|
||||
@inject UserLogin uLogin
|
||||
|
||||
<PageTitle>WF-WebAdmin</PageTitle>
|
||||
<MudThemeProvider />
|
||||
|
||||
|
||||
<div class="page">
|
||||
@* @if (uLogin.Name != null)
|
||||
{ *@
|
||||
<div class="sidebar">
|
||||
<NavMenu />
|
||||
<NavMenu/>
|
||||
</div>
|
||||
@*}*@
|
||||
|
||||
<main>
|
||||
<div class="top-row px-4">
|
||||
<a href="https://docs.microsoft.com/aspnet/" target="_blank">About</a>
|
||||
<div class="px-4">
|
||||
<CultureSelector />
|
||||
</div>
|
||||
@* @if (!string.IsNullOrEmpty(uLogin.Name))
|
||||
{
|
||||
<button class="buttonProfil" type="button"> <img class="imageProfil" src="@uLogin.Image" height="90" width="480" /></button>
|
||||
@* <img class="imageProfil" src="@uLogin.Image" />
|
||||
}
|
||||
else
|
||||
{*@
|
||||
|
||||
<img class="imageProfil" src="https://cdn-icons-png.flaticon.com/512/61/61205.png"/>
|
||||
@* } *@
|
||||
</div>
|
||||
<article class="content px-4">
|
||||
@Body
|
||||
</article>
|
||||
</main>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
After Width: | Height: | Size: 13 KiB |
@ -0,0 +1,5 @@
|
||||
{
|
||||
"version": "3.0",
|
||||
"defaultProvider": "cdnjs",
|
||||
"libraries": []
|
||||
}
|
After Width: | Height: | Size: 9.9 KiB |
@ -0,0 +1,8 @@
|
||||
[
|
||||
{
|
||||
"users": 1
|
||||
},
|
||||
{
|
||||
"users": 4
|
||||
}
|
||||
]
|
@ -0,0 +1,702 @@
|
||||
[
|
||||
{
|
||||
"id_comment": 1,
|
||||
"quote": 19,
|
||||
"users": 29,
|
||||
"dateC": "2024-01-22",
|
||||
"comment": "Citation magnifique."
|
||||
},
|
||||
{
|
||||
"id_comment": 2,
|
||||
"quote": 6,
|
||||
"users": 18,
|
||||
"dateC": "2024-01-20",
|
||||
"comment": "Paroles sages."
|
||||
},
|
||||
{
|
||||
"id_comment": 3,
|
||||
"quote": 2,
|
||||
"users": 8,
|
||||
"dateC": "2024-01-25",
|
||||
"comment": "Citation puissante."
|
||||
},
|
||||
{
|
||||
"id_comment": 4,
|
||||
"quote": 11,
|
||||
"users": 31,
|
||||
"dateC": "2024-01-01",
|
||||
"comment": "Très poétique."
|
||||
},
|
||||
{
|
||||
"id_comment": 5,
|
||||
"quote": 8,
|
||||
"users": 6,
|
||||
"dateC": "2024-02-06",
|
||||
"comment": "Belle pensée."
|
||||
},
|
||||
{
|
||||
"id_comment": 6,
|
||||
"quote": 13,
|
||||
"users": 37,
|
||||
"dateC": "2024-02-01",
|
||||
"comment": "Citation exceptionnelle."
|
||||
},
|
||||
{
|
||||
"id_comment": 7,
|
||||
"quote": 2,
|
||||
"users": 33,
|
||||
"dateC": "2024-02-11",
|
||||
"comment": "Belle pensée."
|
||||
},
|
||||
{
|
||||
"id_comment": 8,
|
||||
"quote": 7,
|
||||
"users": 28,
|
||||
"dateC": "2024-02-07",
|
||||
"comment": "Très émouvant."
|
||||
},
|
||||
{
|
||||
"id_comment": 9,
|
||||
"quote": 1,
|
||||
"users": 48,
|
||||
"dateC": "2024-03-05",
|
||||
"comment": "Très motivant."
|
||||
},
|
||||
{
|
||||
"id_comment": 10,
|
||||
"quote": 16,
|
||||
"users": 14,
|
||||
"dateC": "2024-03-13",
|
||||
"comment": "Très motivant."
|
||||
},
|
||||
{
|
||||
"id_comment": 11,
|
||||
"quote": 10,
|
||||
"users": 9,
|
||||
"dateC": "2024-03-13",
|
||||
"comment": "Très touchant."
|
||||
},
|
||||
{
|
||||
"id_comment": 12,
|
||||
"quote": 4,
|
||||
"users": 44,
|
||||
"dateC": "2024-03-01",
|
||||
"comment": "Très touchant."
|
||||
},
|
||||
{
|
||||
"id_comment": 13,
|
||||
"quote": 9,
|
||||
"users": 8,
|
||||
"dateC": "2024-04-04",
|
||||
"comment": "Citation magnifique."
|
||||
},
|
||||
{
|
||||
"id_comment": 14,
|
||||
"quote": 3,
|
||||
"users": 49,
|
||||
"dateC": "2024-04-18",
|
||||
"comment": "Très émouvant."
|
||||
},
|
||||
{
|
||||
"id_comment": 15,
|
||||
"quote": 19,
|
||||
"users": 3,
|
||||
"dateC": "2024-04-07",
|
||||
"comment": "Très motivant."
|
||||
},
|
||||
{
|
||||
"id_comment": 16,
|
||||
"quote": 4,
|
||||
"users": 9,
|
||||
"dateC": "2024-04-25",
|
||||
"comment": "Très motivant."
|
||||
},
|
||||
{
|
||||
"id_comment": 17,
|
||||
"quote": 17,
|
||||
"users": 40,
|
||||
"dateC": "2024-05-04",
|
||||
"comment": "Très émouvant."
|
||||
},
|
||||
{
|
||||
"id_comment": 18,
|
||||
"quote": 6,
|
||||
"users": 21,
|
||||
"dateC": "2024-05-11",
|
||||
"comment": "Très poétique."
|
||||
},
|
||||
{
|
||||
"id_comment": 19,
|
||||
"quote": 16,
|
||||
"users": 3,
|
||||
"dateC": "2024-05-08",
|
||||
"comment": "Citation exceptionnelle."
|
||||
},
|
||||
{
|
||||
"id_comment": 20,
|
||||
"quote": 1,
|
||||
"users": 17,
|
||||
"dateC": "2024-05-04",
|
||||
"comment": "Très touchant."
|
||||
},
|
||||
{
|
||||
"id_comment": 21,
|
||||
"quote": 14,
|
||||
"users": 34,
|
||||
"dateC": "2024-06-01",
|
||||
"comment": "Citation magnifique."
|
||||
},
|
||||
{
|
||||
"id_comment": 22,
|
||||
"quote": 12,
|
||||
"users": 23,
|
||||
"dateC": "2024-06-03",
|
||||
"comment": "Citation magnifique."
|
||||
},
|
||||
{
|
||||
"id_comment": 23,
|
||||
"quote": 11,
|
||||
"users": 47,
|
||||
"dateC": "2024-06-05",
|
||||
"comment": "Citation magnifique."
|
||||
},
|
||||
{
|
||||
"id_comment": 24,
|
||||
"quote": 16,
|
||||
"users": 28,
|
||||
"dateC": "2024-06-07",
|
||||
"comment": "Citation magnifique."
|
||||
},
|
||||
{
|
||||
"id_comment": 25,
|
||||
"quote": 19,
|
||||
"users": 39,
|
||||
"dateC": "2024-07-01",
|
||||
"comment": "Citation magnifique."
|
||||
},
|
||||
{
|
||||
"id_comment": 26,
|
||||
"quote": 13,
|
||||
"users": 31,
|
||||
"dateC": "2024-07-02",
|
||||
"comment": "Citation magnifique."
|
||||
},
|
||||
{
|
||||
"id_comment": 27,
|
||||
"quote": 1,
|
||||
"users": 33,
|
||||
"dateC": "2024-07-03",
|
||||
"comment": "Citation magnifique."
|
||||
},
|
||||
{
|
||||
"id_comment": 28,
|
||||
"quote": 17,
|
||||
"users": 20,
|
||||
"dateC": "2024-07-04",
|
||||
"comment": "Citation magnifique."
|
||||
},
|
||||
{
|
||||
"id_comment": 29,
|
||||
"quote": 13,
|
||||
"users": 29,
|
||||
"dateC": "2024-08-01",
|
||||
"comment": "Citation magnifique."
|
||||
},
|
||||
{
|
||||
"id_comment": 30,
|
||||
"quote": 11,
|
||||
"users": 27,
|
||||
"dateC": "2024-08-02",
|
||||
"comment": "Citation magnifique."
|
||||
},
|
||||
{
|
||||
"id_comment": 31,
|
||||
"quote": 18,
|
||||
"users": 35,
|
||||
"dateC": "2024-08-03",
|
||||
"comment": "Citation magnifique."
|
||||
},
|
||||
{
|
||||
"id_comment": 32,
|
||||
"quote": 13,
|
||||
"users": 32,
|
||||
"dateC": "2024-08-04",
|
||||
"comment": "Citation magnifique."
|
||||
},
|
||||
{
|
||||
"id_comment": 33,
|
||||
"quote": 13,
|
||||
"users": 3,
|
||||
"dateC": "2024-09-01",
|
||||
"comment": "Citation magnifique."
|
||||
},
|
||||
{
|
||||
"id_comment": 34,
|
||||
"quote": 15,
|
||||
"users": 43,
|
||||
"dateC": "2024-09-02",
|
||||
"comment": "Citation magnifique."
|
||||
},
|
||||
{
|
||||
"id_comment": 35,
|
||||
"quote": 11,
|
||||
"users": 15,
|
||||
"dateC": "2024-09-03",
|
||||
"comment": "Citation magnifique."
|
||||
},
|
||||
{
|
||||
"id_comment": 36,
|
||||
"quote": 10,
|
||||
"users": 22,
|
||||
"dateC": "2024-09-04",
|
||||
"comment": "Citation magnifique."
|
||||
},
|
||||
{
|
||||
"id_comment": 37,
|
||||
"quote": 17,
|
||||
"users": 23,
|
||||
"dateC": "2024-10-01",
|
||||
"comment": "Citation magnifique."
|
||||
},
|
||||
{
|
||||
"id_comment": 38,
|
||||
"quote": 14,
|
||||
"users": 40,
|
||||
"dateC": "2024-10-02",
|
||||
"comment": "Citation magnifique."
|
||||
},
|
||||
{
|
||||
"id_comment": 39,
|
||||
"quote": 15,
|
||||
"users": 41,
|
||||
"dateC": "2024-10-03",
|
||||
"comment": "Citation magnifique."
|
||||
},
|
||||
{
|
||||
"id_comment": 40,
|
||||
"quote": 16,
|
||||
"users": 42,
|
||||
"dateC": "2024-10-04",
|
||||
"comment": "Citation magnifique."
|
||||
},
|
||||
{
|
||||
"id_comment": 41,
|
||||
"quote": 10,
|
||||
"users": 39,
|
||||
"dateC": "2024-11-01",
|
||||
"comment": "Citation magnifique."
|
||||
},
|
||||
{
|
||||
"id_comment": 42,
|
||||
"quote": 17,
|
||||
"users": 43,
|
||||
"dateC": "2024-11-02",
|
||||
"comment": "Citation magnifique."
|
||||
},
|
||||
{
|
||||
"id_comment": 43,
|
||||
"quote": 13,
|
||||
"users": 27,
|
||||
"dateC": "2024-11-03",
|
||||
"comment": "Citation magnifique."
|
||||
},
|
||||
{
|
||||
"id_comment": 44,
|
||||
"quote": 12,
|
||||
"users": 29,
|
||||
"dateC": "2024-11-04",
|
||||
"comment": "Citation magnifique."
|
||||
},
|
||||
{
|
||||
"id_comment": 45,
|
||||
"quote": 11,
|
||||
"users": 32,
|
||||
"dateC": "2024-12-01",
|
||||
"comment": "Citation magnifique."
|
||||
},
|
||||
{
|
||||
"id_comment": 46,
|
||||
"quote": 15,
|
||||
"users": 31,
|
||||
"dateC": "2024-12-02",
|
||||
"comment": "Citation magnifique."
|
||||
},
|
||||
{
|
||||
"id_comment": 47,
|
||||
"quote": 18,
|
||||
"users": 33,
|
||||
"dateC": "2024-12-03",
|
||||
"comment": "Citation magnifique."
|
||||
},
|
||||
{
|
||||
"id_comment": 48,
|
||||
"quote": 14,
|
||||
"users": 34,
|
||||
"dateC": "2024-12-04",
|
||||
"comment": "Citation magnifique."
|
||||
},
|
||||
{
|
||||
"id_comment": 49,
|
||||
"quote": 19,
|
||||
"users": 35,
|
||||
"dateC": "2024-12-05",
|
||||
"comment": "Citation magnifique."
|
||||
},
|
||||
{
|
||||
"id_comment": 50,
|
||||
"quote": 17,
|
||||
"users": 36,
|
||||
"dateC": "2024-12-06",
|
||||
"comment": "Citation magnifique."
|
||||
},
|
||||
{
|
||||
"id_comment": 51,
|
||||
"quote": 16,
|
||||
"users": 37,
|
||||
"dateC": "2024-12-07",
|
||||
"comment": "Citation magnifique."
|
||||
},
|
||||
{
|
||||
"id_comment": 52,
|
||||
"quote": 13,
|
||||
"users": 38,
|
||||
"dateC": "2024-12-08",
|
||||
"comment": "Citation magnifique."
|
||||
},
|
||||
{
|
||||
"id_comment": 53,
|
||||
"quote": 12,
|
||||
"users": 39,
|
||||
"dateC": "2024-12-09",
|
||||
"comment": "Citation magnifique."
|
||||
},
|
||||
{
|
||||
"id_comment": 54,
|
||||
"quote": 11,
|
||||
"users": 40,
|
||||
"dateC": "2024-12-10",
|
||||
"comment": "Citation magnifique."
|
||||
},
|
||||
{
|
||||
"id_comment": 55,
|
||||
"quote": 10,
|
||||
"users": 41,
|
||||
"dateC": "2024-12-11",
|
||||
"comment": "Citation magnifique."
|
||||
},
|
||||
{
|
||||
"id_comment": 56,
|
||||
"quote": 9,
|
||||
"users": 42,
|
||||
"dateC": "2024-12-12",
|
||||
"comment": "Citation magnifique."
|
||||
},
|
||||
{
|
||||
"id_comment": 57,
|
||||
"quote": 8,
|
||||
"users": 43,
|
||||
"dateC": "2024-12-13",
|
||||
"comment": "Citation magnifique."
|
||||
},
|
||||
{
|
||||
"id_comment": 58,
|
||||
"quote": 7,
|
||||
"users": 44,
|
||||
"dateC": "2024-12-14",
|
||||
"comment": "Citation magnifique."
|
||||
},
|
||||
{
|
||||
"id_comment": 59,
|
||||
"quote": 6,
|
||||
"users": 45,
|
||||
"dateC": "2024-12-15",
|
||||
"comment": "Citation magnifique."
|
||||
},
|
||||
{
|
||||
"id_comment": 60,
|
||||
"quote": 5,
|
||||
"users": 46,
|
||||
"dateC": "2024-12-16",
|
||||
"comment": "Citation magnifique."
|
||||
},
|
||||
{
|
||||
"id_comment": 61,
|
||||
"quote": 4,
|
||||
"users": 47,
|
||||
"dateC": "2024-12-17",
|
||||
"comment": "Citation magnifique."
|
||||
},
|
||||
{
|
||||
"id_comment": 62,
|
||||
"quote": 3,
|
||||
"users": 48,
|
||||
"dateC": "2024-12-18",
|
||||
"comment": "Citation magnifique."
|
||||
},
|
||||
{
|
||||
"id_comment": 63,
|
||||
"quote": 2,
|
||||
"users": 49,
|
||||
"dateC": "2024-12-19",
|
||||
"comment": "Citation magnifique."
|
||||
},
|
||||
{
|
||||
"id_comment": 64,
|
||||
"quote": 1,
|
||||
"users": 50,
|
||||
"dateC": "2024-12-20",
|
||||
"comment": "Citation magnifique."
|
||||
},
|
||||
{
|
||||
"id_comment": 65,
|
||||
"quote": 19,
|
||||
"users": 1,
|
||||
"dateC": "2024-12-21",
|
||||
"comment": "Citation magnifique."
|
||||
},
|
||||
{
|
||||
"id_comment": 66,
|
||||
"quote": 18,
|
||||
"users": 2,
|
||||
"dateC": "2024-12-22",
|
||||
"comment": "Citation magnifique."
|
||||
},
|
||||
{
|
||||
"id_comment": 67,
|
||||
"quote": 17,
|
||||
"users": 3,
|
||||
"dateC": "2024-12-23",
|
||||
"comment": "Citation magnifique."
|
||||
},
|
||||
{
|
||||
"id_comment": 68,
|
||||
"quote": 16,
|
||||
"users": 4,
|
||||
"dateC": "2024-12-24",
|
||||
"comment": "Citation magnifique."
|
||||
},
|
||||
{
|
||||
"id_comment": 69,
|
||||
"quote": 15,
|
||||
"users": 5,
|
||||
"dateC": "2024-12-25",
|
||||
"comment": "Citation magnifique."
|
||||
},
|
||||
{
|
||||
"id_comment": 70,
|
||||
"quote": 14,
|
||||
"users": 6,
|
||||
"dateC": "2024-12-26",
|
||||
"comment": "Citation magnifique."
|
||||
},
|
||||
{
|
||||
"id_comment": 71,
|
||||
"quote": 13,
|
||||
"users": 7,
|
||||
"dateC": "2024-12-27",
|
||||
"comment": "Citation magnifique."
|
||||
},
|
||||
{
|
||||
"id_comment": 72,
|
||||
"quote": 12,
|
||||
"users": 8,
|
||||
"dateC": "2024-12-28",
|
||||
"comment": "Citation magnifique."
|
||||
},
|
||||
{
|
||||
"id_comment": 73,
|
||||
"quote": 11,
|
||||
"users": 9,
|
||||
"dateC": "2024-01-01",
|
||||
"comment": "Citation magnifique."
|
||||
},
|
||||
{
|
||||
"id_comment": 74,
|
||||
"quote": 10,
|
||||
"users": 10,
|
||||
"dateC": "2024-01-02",
|
||||
"comment": "Citation magnifique."
|
||||
},
|
||||
{
|
||||
"id_comment": 75,
|
||||
"quote": 9,
|
||||
"users": 11,
|
||||
"dateC": "2024-01-03",
|
||||
"comment": "Citation magnifique."
|
||||
},
|
||||
{
|
||||
"id_comment": 76,
|
||||
"quote": 8,
|
||||
"users": 12,
|
||||
"dateC": "2024-01-04",
|
||||
"comment": "Citation magnifique."
|
||||
},
|
||||
{
|
||||
"id_comment": 77,
|
||||
"quote": 7,
|
||||
"users": 13,
|
||||
"dateC": "2024-01-05",
|
||||
"comment": "Citation magnifique."
|
||||
},
|
||||
{
|
||||
"id_comment": 78,
|
||||
"quote": 6,
|
||||
"users": 14,
|
||||
"dateC": "2024-01-06",
|
||||
"comment": "Citation magnifique."
|
||||
},
|
||||
{
|
||||
"id_comment": 79,
|
||||
"quote": 5,
|
||||
"users": 15,
|
||||
"dateC": "2024-01-07",
|
||||
"comment": "Citation magnifique."
|
||||
},
|
||||
{
|
||||
"id_comment": 80,
|
||||
"quote": 4,
|
||||
"users": 16,
|
||||
"dateC": "2024-01-08",
|
||||
"comment": "Citation magnifique."
|
||||
},
|
||||
{
|
||||
"id_comment": 81,
|
||||
"quote": 3,
|
||||
"users": 17,
|
||||
"dateC": "2024-01-09",
|
||||
"comment": "Citation magnifique."
|
||||
},
|
||||
{
|
||||
"id_comment": 82,
|
||||
"quote": 2,
|
||||
"users": 18,
|
||||
"dateC": "2024-01-10",
|
||||
"comment": "Citation magnifique."
|
||||
},
|
||||
{
|
||||
"id_comment": 83,
|
||||
"quote": 15,
|
||||
"users": 33,
|
||||
"dateC": "2024-06-24",
|
||||
"comment": "Citation exceptionnelle."
|
||||
},
|
||||
{
|
||||
"id_comment": 84,
|
||||
"quote": 19,
|
||||
"users": 15,
|
||||
"dateC": "2024-03-11",
|
||||
"comment": "Citation merveilleuse."
|
||||
},
|
||||
{
|
||||
"id_comment": 85,
|
||||
"quote": 4,
|
||||
"users": 16,
|
||||
"dateC": "2024-01-19",
|
||||
"comment": "Citation merveilleuse."
|
||||
},
|
||||
{
|
||||
"id_comment": 86,
|
||||
"quote": 10,
|
||||
"users": 20,
|
||||
"dateC": "2024-01-15",
|
||||
"comment": "Très émouvant."
|
||||
},
|
||||
{
|
||||
"id_comment": 87,
|
||||
"quote": 3,
|
||||
"users": 33,
|
||||
"dateC": "2024-12-17",
|
||||
"comment": "Très touchant."
|
||||
},
|
||||
{
|
||||
"id_comment": 88,
|
||||
"quote": 5,
|
||||
"users": 8,
|
||||
"dateC": "2024-07-01",
|
||||
"comment": "Citation exceptionnelle."
|
||||
},
|
||||
{
|
||||
"id_comment": 89,
|
||||
"quote": 13,
|
||||
"users": 28,
|
||||
"dateC": "2024-02-20",
|
||||
"comment": "Citation merveilleuse."
|
||||
},
|
||||
{
|
||||
"id_comment": 90,
|
||||
"quote": 18,
|
||||
"users": 24,
|
||||
"dateC": "2024-09-16",
|
||||
"comment": "Citation merveilleuse."
|
||||
},
|
||||
{
|
||||
"id_comment": 91,
|
||||
"quote": 17,
|
||||
"users": 43,
|
||||
"dateC": "2024-06-20",
|
||||
"comment": "Très réfléchi."
|
||||
},
|
||||
{
|
||||
"id_comment": 92,
|
||||
"quote": 13,
|
||||
"users": 36,
|
||||
"dateC": "2024-11-08",
|
||||
"comment": "Super citation !"
|
||||
},
|
||||
{
|
||||
"id_comment": 93,
|
||||
"quote": 19,
|
||||
"users": 41,
|
||||
"dateC": "2024-01-20",
|
||||
"comment": "Super citation !"
|
||||
},
|
||||
{
|
||||
"id_comment": 94,
|
||||
"quote": 13,
|
||||
"users": 10,
|
||||
"dateC": "2024-05-03",
|
||||
"comment": "Citation magnifique."
|
||||
},
|
||||
{
|
||||
"id_comment": 95,
|
||||
"quote": 4,
|
||||
"users": 49,
|
||||
"dateC": "2024-07-01",
|
||||
"comment": "Citation profonde."
|
||||
},
|
||||
{
|
||||
"id_comment": 96,
|
||||
"quote": 16,
|
||||
"users": 21,
|
||||
"dateC": "2024-11-08",
|
||||
"comment": "Citation merveilleuse."
|
||||
},
|
||||
{
|
||||
"id_comment": 97,
|
||||
"quote": 14,
|
||||
"users": 27,
|
||||
"dateC": "2024-11-20",
|
||||
"comment": "Citation puissante."
|
||||
},
|
||||
{
|
||||
"id_comment": 98,
|
||||
"quote": 4,
|
||||
"users": 39,
|
||||
"dateC": "2024-12-11",
|
||||
"comment": "Très motivant."
|
||||
},
|
||||
{
|
||||
"id_comment": 99,
|
||||
"quote": 9,
|
||||
"users": 26,
|
||||
"dateC": "2024-09-27",
|
||||
"comment": "Paroles sages."
|
||||
},
|
||||
{
|
||||
"id_comment": 100,
|
||||
"quote": 3,
|
||||
"users": 42,
|
||||
"dateC": "2024-02-12",
|
||||
"comment": "Citation merveilleuse."
|
||||
}
|
||||
]
|
@ -0,0 +1,14 @@
|
||||
[
|
||||
{
|
||||
"Id": 11,
|
||||
"Content": "Vous ne pouvez pas vivre sans causer de dommages \u00E0 quelqu\u0027un d\u0027autre.",
|
||||
"Like": 110,
|
||||
"Langue": "fr",
|
||||
"Charac": "test",
|
||||
"ImgPath": "http://thematrix.com",
|
||||
"TitleSrc": "The Matrix",
|
||||
"DateSrc": "2025-01-21T00:00:00",
|
||||
"UserProposition": "user11",
|
||||
"IsValid": false
|
||||
}
|
||||
]
|
@ -0,0 +1,6 @@
|
||||
[
|
||||
{
|
||||
"users":1,
|
||||
"quote":1
|
||||
}
|
||||
]
|
@ -0,0 +1,82 @@
|
||||
[
|
||||
{
|
||||
"id_img": 1,
|
||||
"imgPath": "https://tse4.mm.bing.net/th/id/OIP.fc5TQflh0cbxB1GUeOdk6gHaK8?w=123&h=180&c=7&r=0&o=5&pid=1.7"
|
||||
},
|
||||
{
|
||||
"id_img": 2,
|
||||
"imgPath": "https://tse2.mm.bing.net/th/id/OIP.MMpXBB5RDRYQm05FJmevGAHaKl?w=137&h=195&c=7&r=0&o=5&pid=1.7"
|
||||
},
|
||||
{
|
||||
"id_img": 3,
|
||||
"imgPath": "https://tse1.mm.bing.net/th/id/OIP._uHLsNbgnf1m1vK3ZWE2UAHaEo?w=217&h=180&c=7&r=0&o=5&pid=1.7"
|
||||
},
|
||||
{
|
||||
"id_img": 4,
|
||||
"imgPath": "https://tse4.mm.bing.net/th/id/OIP.QzDh_d2T5aADiDJ7uMFU6gHaHa?w=157&h=180&c=7&r=0&o=5&pid=1.7"
|
||||
},
|
||||
{
|
||||
"id_img": 5,
|
||||
"imgPath": "https://tse2.mm.bing.net/th/id/OIP.CthWIxuLm0a8THOguTDB_AAAAA?w=157&h=207&c=7&r=0&o=5&pid=1.7"
|
||||
},
|
||||
{
|
||||
"id_img": 6,
|
||||
"imgPath": "https://tse4.mm.bing.net/th/id/OIP.XNQPKwc1OUfvnSO9MsxDYgHaE7?w=202&h=180&c=7&r=0&o=5&pid=1.7"
|
||||
},
|
||||
{
|
||||
"id_img": 7,
|
||||
"imgPath": "https://tse1.mm.bing.net/th/id/OIP.luN_zVQJt2Kyf7H_kSrPyQHaJD?w=115&h=180&c=7&r=0&o=5&pid=1.7"
|
||||
},
|
||||
{
|
||||
"id_img": 8,
|
||||
"imgPath": "https://tse1.mm.bing.net/th/id/OIP.GPIbva8dEP6Kllx-sj5ysAHaK-?w=115&h=180&c=7&r=0&o=5&pid=1.7"
|
||||
},
|
||||
{
|
||||
"id_img": 9,
|
||||
"imgPath": "https://tse4.mm.bing.net/th/id/OIP.loqNhw71Vk_C-TiyWQJoKAHaKK?w=95&h=180&c=7&r=0&o=5&pid=1.7"
|
||||
},
|
||||
{
|
||||
"id_img": 10,
|
||||
"imgPath": "https://tse2.mm.bing.net/th/id/OIP._OiJHgI7cal4cWNHcCE9zAHaM2?w=115&h=180&c=7&r=0&o=5&pid=1.7"
|
||||
},
|
||||
{
|
||||
"id_img": 11,
|
||||
"imgPath": "https://tse2.mm.bing.net/th/id/OIP.B9RbuWnpmV-7fI8v-H0G8gHaEK?w=290&h=180&c=7&r=0&o=5&pid=1.7"
|
||||
},
|
||||
{
|
||||
"id_img": 12,
|
||||
"imgPath": "https://tse2.mm.bing.net/th/id/OIP.RrJkua2jY_o24eUG7wmk8QHaE-?w=232&h=180&c=7&r=0&o=5&pid=1.7"
|
||||
},
|
||||
{
|
||||
"id_img": 13,
|
||||
"imgPath": "https://tse3.mm.bing.net/th/id/OIP.-1Ds-2D5GPiu9uejDdmgNgHaH3?w=124&h=180&c=7&r=0&o=5&pid=1.7"
|
||||
},
|
||||
{
|
||||
"id_img": 14,
|
||||
"imgPath": "https://tse3.mm.bing.net/th/id/OIP.BeQYJEP1pQKzHDLGhTLBtgHaFj?w=243&h=182&c=7&r=0&o=5&pid=1.7"
|
||||
},
|
||||
{
|
||||
"id_img": 15,
|
||||
"imgPath": "https://tse3.mm.bing.net/th/id/OIP.lDzxwo1weGaA-hRMfV6bYwHaGp?w=194&h=174&c=7&r=0&o=5&pid=1.7"
|
||||
},
|
||||
{
|
||||
"id_img": 16,
|
||||
"imgPath": "https://tse2.mm.bing.net/th/id/OIP.3vXkEUJ9J8s-GsnBC6I3KAHaF0?w=185&h=180&c=7&r=0&o=5&pid=1.7"
|
||||
},
|
||||
{
|
||||
"id_img": 17,
|
||||
"imgPath": "https://tse4.mm.bing.net/th/id/OIP.omU-pPTNgHJEiTKJUpB1MAHaIw?w=114&h=180&c=7&r=0&o=5&pid=1.7"
|
||||
},
|
||||
{
|
||||
"id_img": 18,
|
||||
"imgPath": "https://tse2.mm.bing.net/th/id/OIP.Qoh2doQIigxyiOBuhgRx9gHaM7?w=115&h=186&c=7&r=0&o=5&pid=1.7"
|
||||
},
|
||||
{
|
||||
"id_img": 19,
|
||||
"imgPath": "https://tse3.mm.bing.net/th/id/OIP.hyDe8SvEEvDhmKfsQBqWEwHaJ8?w=194&h=261&c=7&r=0&o=5&pid=1.7"
|
||||
},
|
||||
{
|
||||
"id_img": 20,
|
||||
"imgPath": "https://tse3.mm.bing.net/th/id/OIP.S4q6m2na1Rxkc7xZ1lcfKQHaJe?w=135&h=180&c=7&r=0&o=5&pid=1.7"
|
||||
}
|
||||
]
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue