Compare commits
1 Commits
Author | SHA1 | Date |
---|---|---|
![]() |
ef9d748045 | 3 months ago |
@ -1,71 +0,0 @@
|
|||||||
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 ]
|
|
@ -1,27 +0,0 @@
|
|||||||
# 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,11 +0,0 @@
|
|||||||
namespace UnitTestWF
|
|
||||||
{
|
|
||||||
public class UnitTest1
|
|
||||||
{
|
|
||||||
[Fact]
|
|
||||||
public void Test1()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,29 +0,0 @@
|
|||||||
<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,32 +1,39 @@
|
|||||||
@page "/"
|
@page "/"
|
||||||
@using WF_WebAdmin.Model
|
|
||||||
|
|
||||||
<PageTitle>Accueil</PageTitle>
|
|
||||||
|
|
||||||
<h2><strong>@Localizer["AccueilWelcome"] ?? "Bienvenue"</strong></h2>
|
|
||||||
|
|
||||||
<h4>@Localizer["AccueilTitle"]</h4>
|
<PageTitle>Accueil</PageTitle>
|
||||||
|
|
||||||
@if (Dailyquote != null)
|
<h1>Accueil</h1>
|
||||||
{
|
|
||||||
@foreach(var quote in Dailyquote)
|
|
||||||
{
|
|
||||||
<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>
|
<button>Mettre une citation aléatoire</button>
|
||||||
<p class="pseudo"><strong>@Localizer["AccueilSrc"]</strong> @quote.TitleSrc</p>
|
|
||||||
|
|
||||||
</div>
|
@if (quotes != null)
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
{
|
||||||
<p>@Localizer["AccueilNoQuote"]</p>
|
<table class="table">
|
||||||
}
|
<thead>
|
||||||
|
<tr>
|
||||||
<h4>@Localizer["AccueilManualChange"]</h4>
|
<th>Id</th>
|
||||||
<button @onclick="() => RandomDailyquote()">@Localizer["AccueilAddRandomQuote"]</button>
|
<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)
|
||||||
|
{
|
||||||
|
<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>
|
||||||
|
}
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
}
|
@ -1,58 +0,0 @@
|
|||||||
@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>
|
|
@ -1,37 +0,0 @@
|
|||||||
@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,118 +1,45 @@
|
|||||||
@page "/deleteuser"
|
@page "/deleteuser"
|
||||||
@using WF_WebAdmin.Model
|
|
||||||
|
|
||||||
<PageTitle>Gestion utilisateur</PageTitle>
|
<PageTitle>Gestion utilisateur</PageTitle>
|
||||||
|
|
||||||
<h3>@Localizer["TitleUser"]</h3>
|
<h3>Gestion des utilisateurs</h3>
|
||||||
|
|
||||||
@if(_users == null)
|
|
||||||
{
|
|
||||||
<p><strong>@Localizer["UserNobody"]</strong></p>
|
|
||||||
}
|
|
||||||
|
|
||||||
else
|
|
||||||
{
|
|
||||||
<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)
|
@if (users != null)
|
||||||
|
{
|
||||||
|
<p>Utilisateurs présents:</p>
|
||||||
|
@foreach (var user in users)
|
||||||
{
|
{
|
||||||
<div class="userDiv" id="@user.Id">
|
<div class="userDiv">
|
||||||
<img class="imgProfil" src="@user.Image" />
|
<img class="imgProfil" src="@user.Image" />
|
||||||
@if (user.IsAdmin)
|
<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="pseudo"><strong>@Localizer["UserName"]</strong> @user.Name <strong>(@Localizer["UserAdmin"])</strong></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>
|
||||||
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>
|
</div>
|
||||||
}
|
}
|
||||||
@if (_showModifyPopup)
|
<!-- Fenêtre de confirmation -->
|
||||||
|
@if (showPopup)
|
||||||
{
|
{
|
||||||
<div class="divPopup">
|
<div class="divPopup">
|
||||||
<div class="contentPopup">
|
<div class="contentPopup">
|
||||||
<p>Modifier les informations de l'utilisateur :</p>
|
<p>Êtes-vous sûr de vouloir supprimer cet utilisateur ?</p>
|
||||||
<label>Nom d'utilisateur:</label>
|
<button @onclick="() => RemoveUser()">Confirmer</button>
|
||||||
<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>
|
<button @onclick="ClosePopup">Annuler</button>
|
||||||
</div>
|
</div>
|
||||||
</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 {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,48 +0,0 @@
|
|||||||
@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>
|
|
@ -1,42 +1,42 @@
|
|||||||
@page
|
@page
|
||||||
@model WF_WebAdmin.Pages.ErrorModel
|
@model WF_WebAdmin.Pages.ErrorModel
|
||||||
|
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="en">
|
<html lang="en">
|
||||||
|
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
|
||||||
<title>error</title>
|
<title>Error</title>
|
||||||
<link href="~/css/bootstrap/bootstrap.min.css" rel="stylesheet" />
|
<link href="~/css/bootstrap/bootstrap.min.css" rel="stylesheet" />
|
||||||
<link href="~/css/site.css" rel="stylesheet" asp-append-version="true" />
|
<link href="~/css/site.css" rel="stylesheet" asp-append-version="true" />
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
<div class="main">
|
<div class="main">
|
||||||
<div class="content px-4">
|
<div class="content px-4">
|
||||||
<h1 class="text-danger">Error.</h1>
|
<h1 class="text-danger">Error.</h1>
|
||||||
<h2 class="text-danger">An error occurred while processing your request.</h2>
|
<h2 class="text-danger">An error occurred while processing your request.</h2>
|
||||||
|
|
||||||
@if (Model.ShowRequestId)
|
@if (Model.ShowRequestId)
|
||||||
{
|
{
|
||||||
<p>
|
<p>
|
||||||
<strong>Request ID:</strong> <code>@Model.RequestId</code>
|
<strong>Request ID:</strong> <code>@Model.RequestId</code>
|
||||||
</p>
|
</p>
|
||||||
}
|
}
|
||||||
|
|
||||||
<h3>Development Mode</h3>
|
<h3>Development Mode</h3>
|
||||||
<p>
|
<p>
|
||||||
Swapping to the <strong>development</strong> environment displays detailed information about the error that occurred.
|
Swapping to the <strong>Development</strong> environment displays detailed information about the error that occurred.
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<strong>The Development environment shouldn't be enabled for deployed applications.</strong>
|
<strong>The Development environment shouldn't be enabled for deployed applications.</strong>
|
||||||
It can result in displaying sensitive information from exceptions to end users.
|
It can result in displaying sensitive information from exceptions to end users.
|
||||||
For local debugging, enable the <strong>development</strong> environment by setting the <strong>ASPNETCORE_ENVIRONMENT</strong> environment variable to <strong>Development</strong>
|
For local debugging, enable the <strong>Development</strong> environment by setting the <strong>ASPNETCORE_ENVIRONMENT</strong> environment variable to <strong>Development</strong>
|
||||||
and restarting the app.
|
and restarting the app.
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
|
|
||||||
</html>
|
</html>
|
||||||
|
@ -1,31 +0,0 @@
|
|||||||
@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 {
|
|
||||||
|
|
||||||
}
|
|
@ -1,31 +0,0 @@
|
|||||||
@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>
|
|
||||||
}
|
|
@ -1,69 +0,0 @@
|
|||||||
@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>
|
|
||||||
}
|
|
@ -1,162 +0,0 @@
|
|||||||
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,58 +1,24 @@
|
|||||||
@using WF_WebAdmin.Model
|
@using WF_WebAdmin.Model
|
||||||
@page "/modifquote"
|
@page "/modifquote"
|
||||||
|
|
||||||
<PageTitle>@Localizer["TitlePage"]</PageTitle>
|
<PageTitle>Corection des citation</PageTitle>
|
||||||
|
|
||||||
<h3>@Localizer["TitlePage"]</h3>
|
<h3>Corection des citation</h3>
|
||||||
|
|
||||||
<DataGrid TItem="Quote"
|
<p>Ajouter une recherche</p>
|
||||||
Data="@quotes"
|
|
||||||
PageSize="@MaxValue"
|
|
||||||
ReadData="@OnReadData"
|
|
||||||
TotalItems="@totalItem"
|
|
||||||
ShowPager
|
|
||||||
Responsive>
|
|
||||||
|
|
||||||
<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)
|
@if (quotes != null)
|
||||||
{
|
{
|
||||||
<div class="divPopup">
|
<DataGrid TItem="Quote"
|
||||||
<div class="contentPopup">
|
Data="@quotes"
|
||||||
<p>Modifier les informations de l'utilisateur :</p>
|
PageSize="int.MaxValue"
|
||||||
<label>Citation:</label>
|
Responsive>
|
||||||
<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)
|
<DataGridColumn TItem="Quote" Field="@nameof(Quote.Id)" Caption="Id"/>
|
||||||
{
|
<DataGridColumn TItem="Quote" Field="@nameof(Quote.Content)" Caption="Citation"/>
|
||||||
<div class="divPopup">
|
<DataGridColumn TItem="Quote" Field="@nameof(Quote.Charac)" Caption="Personage"/>
|
||||||
<div class="contentPopup">
|
<DataGridColumn TItem="Quote" Field="@nameof(Quote.TitleSrc)" Caption="Source" />
|
||||||
<p>@Localizer["PopupQuestion"]</p>
|
<DataGridColumn TItem="Quote" Field="@nameof(Quote.Langue)" Caption="Langue" />
|
||||||
<button @onclick="RemoveQuote">@Localizer["Yes"]</button>
|
<DataGridColumn TItem="Quote" Field="@nameof(Quote.DateSrc)" Caption="Date" DisplayFormat="{0:d}" DisplayFormatProvider="@System.Globalization.CultureInfo.GetCultureInfo("fr-FR")" />
|
||||||
<button @onclick="ClosePopup">@Localizer["Cancel"]</button>
|
</DataGrid>
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
}
|
}
|
@ -1,135 +1,23 @@
|
|||||||
using Blazorise.DataGrid;
|
using Microsoft.AspNetCore.Components;
|
||||||
using Microsoft.AspNetCore.Components;
|
using WF_WebAdmin.Model;
|
||||||
using Microsoft.Extensions.Localization;
|
|
||||||
using Microsoft.Extensions.Logging;
|
namespace WF_WebAdmin.Pages
|
||||||
using System.Security.Claims;
|
{
|
||||||
using WF_WebAdmin.Model;
|
public partial class ModifQuote
|
||||||
using WF_WebAdmin.Service;
|
{
|
||||||
|
private Quote[] quotes;
|
||||||
namespace WF_WebAdmin.Pages
|
|
||||||
{
|
private int MaxValue = 5;
|
||||||
public partial class ModifQuote
|
|
||||||
{
|
[Inject]
|
||||||
private Quote[] quotes;
|
public HttpClient Http { get; set; }
|
||||||
|
|
||||||
private int MaxValue = 5;
|
[Inject]
|
||||||
|
public NavigationManager NavigationManager { get; set; }
|
||||||
private int totalItem;
|
|
||||||
|
protected override async Task OnInitializedAsync()
|
||||||
/*private bool showEditQuote = false;*/
|
{
|
||||||
|
quotes = await Http.GetFromJsonAsync<Quote[]>($"{NavigationManager.BaseUri}fake-dataModifQuote.json");
|
||||||
private Quote? selectedQuote;
|
}
|
||||||
|
}
|
||||||
private bool showPopupDelete = false;
|
}
|
||||||
|
|
||||||
private int page = 1;
|
|
||||||
|
|
||||||
[Inject]
|
|
||||||
public ILogger<ModifQuote>? Logger { get; set; }
|
|
||||||
|
|
||||||
[Inject]
|
|
||||||
public IStringLocalizer<ModifQuote> Localizer { get; set; }
|
|
||||||
|
|
||||||
[Inject]
|
|
||||||
public IQuoteService QuoteService { get; set; }
|
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Handles the data reading event for a data grid, fetching quote data based on the specified page and page size.
|
|
||||||
/// This method makes an asynchronous call to retrieve a specific page of quotes and updates the `quotes` 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<Quote> e)
|
|
||||||
{
|
|
||||||
// Check if the cancellation token has been requested
|
|
||||||
if (e.CancellationToken.IsCancellationRequested)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Fetch the quote data for the specified page and page size
|
|
||||||
var response = await QuoteService.getSomeQuote(e.PageSize, e.Page);
|
|
||||||
|
|
||||||
// If cancellation hasn't been requested, process the data
|
|
||||||
if (!e.CancellationToken.IsCancellationRequested)
|
|
||||||
{
|
|
||||||
// Get the total number of quotes for pagination purposes
|
|
||||||
totalItem = await QuoteService.getNbQuote();
|
|
||||||
|
|
||||||
// Update the quotes data for the current page
|
|
||||||
quotes = response.ToArray();
|
|
||||||
|
|
||||||
// Update the current page number
|
|
||||||
page = e.Page;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*private void OnEditButtonClicked(Quote quote)
|
|
||||||
{
|
|
||||||
if (selectedQuote == null) return;
|
|
||||||
selectedQuote = quote;
|
|
||||||
showEditQuote = true;
|
|
||||||
}*/
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Closes the open popups and resets any related states.
|
|
||||||
/// This method hides the delete confirmation popup and clears the selected quote.
|
|
||||||
/// </summary>
|
|
||||||
private void ClosePopup()
|
|
||||||
{
|
|
||||||
// Hide the delete confirmation popup
|
|
||||||
showPopupDelete = false;
|
|
||||||
|
|
||||||
// Reset the selected quote to null
|
|
||||||
selectedQuote = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*private async Task EditQuote()
|
|
||||||
{
|
|
||||||
await QuoteService.updateQuote(selectedQuote);
|
|
||||||
selectedQuote = null;
|
|
||||||
ClosePopup();
|
|
||||||
}*/
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Handles the event when the delete action is triggered for a quote.
|
|
||||||
/// This method sets the selected quote to the one passed as a parameter and displays the delete confirmation popup.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="q">The quote that is being deleted.</param>
|
|
||||||
private void OnDelete(Quote q)
|
|
||||||
{
|
|
||||||
// Set the selected quote to the one passed in
|
|
||||||
selectedQuote = q;
|
|
||||||
|
|
||||||
// Display the delete confirmation popup
|
|
||||||
showPopupDelete = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Removes the selected quote by calling the remove service and updates the quote list.
|
|
||||||
/// This method checks if a quote is selected. If so, it removes the quote using the `QuoteService`, clears the selected quote,
|
|
||||||
/// and fetches the updated list of quotes. It also closes the delete confirmation popup after the operation.
|
|
||||||
/// </summary>
|
|
||||||
private async Task RemoveQuote()
|
|
||||||
{
|
|
||||||
// Check if a quote is selected for removal
|
|
||||||
if (selectedQuote != null)
|
|
||||||
{
|
|
||||||
// Remove the selected quote using the QuoteService
|
|
||||||
LoggerSaveStub.Log(Logger, LogLevel.Information, $"The quote {selectedQuote.Content} has been deleted");
|
|
||||||
await QuoteService.removeQuote(selectedQuote);
|
|
||||||
|
|
||||||
// Clear the selected quote after removal
|
|
||||||
selectedQuote = null;
|
|
||||||
|
|
||||||
// Update the quotes list by fetching the latest quotes data
|
|
||||||
var response = await QuoteService.getSomeQuote(MaxValue, page);
|
|
||||||
quotes = response.ToArray();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Close the delete confirmation popup
|
|
||||||
showPopupDelete = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
@ -1,100 +1,43 @@
|
|||||||
using Blazorise.DataGrid;
|
using Blazorise.DataGrid;
|
||||||
using Microsoft.AspNetCore.Components;
|
using Microsoft.AspNetCore.Components;
|
||||||
using Microsoft.Extensions.Localization;
|
|
||||||
using Microsoft.Extensions.Logging;
|
|
||||||
using System.Security.Claims;
|
|
||||||
using WF_WebAdmin.Model;
|
using WF_WebAdmin.Model;
|
||||||
using WF_WebAdmin.Service;
|
|
||||||
|
|
||||||
namespace WF_WebAdmin.Pages
|
namespace WF_WebAdmin.Pages
|
||||||
{
|
{
|
||||||
public partial class ValidQuiz
|
public partial class ValidQuiz
|
||||||
{
|
{
|
||||||
private List<Quiz> quizzes;
|
private Quiz[] quizzes;
|
||||||
[Inject]
|
|
||||||
public ILogger<ValidQuiz>? Logger { get; set; }
|
|
||||||
|
|
||||||
[Inject]
|
|
||||||
public IStringLocalizer<ValidQuiz> Localizer { get; set; }
|
|
||||||
|
|
||||||
[Inject]
|
[Inject]
|
||||||
public HttpClient Http { get; set; }
|
public HttpClient Http { get; set; }
|
||||||
|
|
||||||
[Inject]
|
[Inject]
|
||||||
public NavigationManager NavigationManager { get; set; }
|
public NavigationManager NavigationManager { get; set; }
|
||||||
|
|
||||||
[Inject]
|
|
||||||
public IQuizService QuizService { get; set; }
|
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Initializes the component asynchronously by fetching the quizzes that need validation.
|
|
||||||
/// This method retrieves a list of quizzes from the `QuizService` that are pending validation when the component is initialized.
|
|
||||||
/// </summary>
|
|
||||||
protected override async Task OnInitializedAsync()
|
protected override async Task OnInitializedAsync()
|
||||||
{
|
{
|
||||||
// Fetch quizzes that need validation
|
quizzes = await Http.GetFromJsonAsync<Quiz[]>($"{NavigationManager.BaseUri}fake-dataQuiz.json");
|
||||||
quizzes = await QuizService.getQuizzesToValidate();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Handles the event when the "Validate" button is clicked for a quiz.
|
|
||||||
/// This method calls the `ValidateQuiz` method, passing the specified quiz for validation.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="quiz">The quiz that is being validated.</param>
|
|
||||||
private void OnValidButton(Quiz quiz)
|
private void OnValidButton(Quiz quiz)
|
||||||
{
|
{
|
||||||
// Call the ValidateQuiz method to validate the quiz
|
|
||||||
ValidateQuiz(quiz);
|
ValidateQuiz(quiz);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Validates the specified quiz by setting its `IsValid` property to true and updating its state in the service.
|
|
||||||
/// This method logs a message to the console indicating the quiz has been validated, then updates the quiz's validation status.
|
|
||||||
/// It then calls the `QuizService.updateQuiz` method to persist the changes.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="quiz">The quiz that is being validated.</param>
|
|
||||||
private void ValidateQuiz(Quiz quiz)
|
private void ValidateQuiz(Quiz quiz)
|
||||||
{
|
{
|
||||||
// Log the validation action to the console
|
|
||||||
LoggerSaveStub.Log(Logger, LogLevel.Information, $"Quiz {quiz.Id} validated!");
|
|
||||||
|
|
||||||
Console.WriteLine($"Quiz {quiz.Id} validated!");
|
Console.WriteLine($"Quiz {quiz.Id} validated!");
|
||||||
|
|
||||||
// Create a new quiz instance (or modify the existing one)
|
|
||||||
Quiz newQuiz = quiz;
|
|
||||||
newQuiz.IsValid = true;
|
|
||||||
|
|
||||||
// Update the quiz state in the QuizService
|
|
||||||
QuizService.updateQuiz(quiz);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Handles the event when the "Reject" button is clicked for a quiz.
|
|
||||||
/// This method calls the `RejectQuiz` method, passing the specified quiz to be rejected.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="quiz">The quiz that is being rejected.</param>
|
|
||||||
private void OnRejectButton(Quiz quiz)
|
private void OnRejectButton(Quiz quiz)
|
||||||
{
|
{
|
||||||
// Call the RejectQuiz method to reject the quiz
|
|
||||||
RejectQuiz(quiz);
|
RejectQuiz(quiz);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Rejects the specified quiz by logging a rejection message and removing it from the QuizService.
|
|
||||||
/// This method logs a message to the console indicating the quiz has been rejected, and then calls the `QuizService.removeQuiz`
|
|
||||||
/// method to remove the quiz from the system.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="quiz">The quiz that is being rejected.</param>
|
|
||||||
private void RejectQuiz(Quiz quiz)
|
private void RejectQuiz(Quiz quiz)
|
||||||
{
|
{
|
||||||
// Log the rejection action to the console
|
|
||||||
LoggerSaveStub.Log(Logger, LogLevel.Information, $"Quiz {quiz.Id} rejected");
|
|
||||||
|
|
||||||
Console.WriteLine($"Quiz {quiz.Id} rejected!");
|
Console.WriteLine($"Quiz {quiz.Id} rejected!");
|
||||||
|
|
||||||
// Remove the rejected quiz from the QuizService
|
|
||||||
QuizService.removeQuiz(quiz.Id);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,35 +1,48 @@
|
|||||||
@page "/ValidQuote"
|
@page "/ValidQuote"
|
||||||
@using WF_WebAdmin.Model
|
@using WF_WebAdmin.Model
|
||||||
|
|
||||||
<h3>@Localizer["TitleValid"]</h3>
|
<h3>Citations non validées</h3>
|
||||||
|
|
||||||
@if (quotes is null)
|
@if (quotes == null)
|
||||||
{
|
{
|
||||||
<p>@Localizer["LoginQuote"]</p>
|
<p> Chargement des quotes ... </p>
|
||||||
}
|
}
|
||||||
@* else if (quotes.Count == 0)
|
|
||||||
{
|
|
||||||
<p>Aucune citation en attente de validation.</p>
|
|
||||||
} *@
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
<p>@Localizer["QuoteValid"]</p>
|
<p> Quotes en attente de validation : </p>
|
||||||
|
|
||||||
@foreach (var quote in quotes)
|
|
||||||
{
|
|
||||||
<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>
|
<table>
|
||||||
<button @onclick="() => RejeterQuote(quote.Id)">Rejeter</button> *@
|
<thead>
|
||||||
</div>
|
<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>
|
||||||
|
</tr>
|
||||||
|
}
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
}
|
}
|
||||||
|
@ -1,49 +1,37 @@
|
|||||||
@*
|
@using Microsoft.AspNetCore.Components.Web
|
||||||
File: _Layout.cshtml
|
@namespace WF_WebAdmin.Pages
|
||||||
Project: WF_WebAdmin
|
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
|
||||||
Description: ...
|
|
||||||
Author: What The Fantasy
|
<!DOCTYPE html>
|
||||||
Created: 10/02/2025
|
<html lang="en">
|
||||||
Last Modified: 10/02/2025
|
<head>
|
||||||
*@
|
<meta charset="utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
@using Microsoft.AspNetCore.Components.Web
|
<base href="~/" />
|
||||||
@namespace WF_WebAdmin.Pages
|
<link rel="stylesheet" href="css/bootstrap/bootstrap.min.css" />
|
||||||
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
|
<link href="css/site.css" rel="stylesheet" />
|
||||||
|
<link href="WF-WebAdmin.styles.css" rel="stylesheet" />
|
||||||
<!DOCTYPE html>
|
<component type="typeof(HeadOutlet)" render-mode="ServerPrerendered" />
|
||||||
<html lang="en">
|
</head>
|
||||||
<head>
|
<body>
|
||||||
<title>layout</title>
|
@RenderBody()
|
||||||
<meta charset="utf-8" />
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
<div id="blazor-error-ui">
|
||||||
<base href="~/" />
|
<environment include="Staging,Production">
|
||||||
<link rel="stylesheet" href="css/bootstrap/bootstrap.min.css" />
|
An error has occurred. This application may no longer respond until reloaded.
|
||||||
<link href="css/site.css" rel="stylesheet" />
|
</environment>
|
||||||
<link href="WF-WebAdmin.styles.css" rel="stylesheet" />
|
<environment include="Development">
|
||||||
<component type="typeof(HeadOutlet)" render-mode="ServerPrerendered" />
|
An unhandled exception has occurred. See browser dev tools for details.
|
||||||
<link rel="icon" type="image/svg" href="../Shared/iconwf.svg" />
|
</environment>
|
||||||
</head>
|
<a href="" class="reload">Reload</a>
|
||||||
<body>
|
<a class="dismiss">🗙</a>
|
||||||
@RenderBody()
|
</div>
|
||||||
|
|
||||||
<div id="blazor-error-ui">
|
<script src="_framework/blazor.server.js"></script>
|
||||||
<environment include="Staging,Production">
|
|
||||||
An error has occurred. This application may no longer respond until reloaded.
|
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.15.4/css/all.css">
|
||||||
</environment>
|
|
||||||
<environment include="Development">
|
<link href="_content/Blazorise/blazorise.css" rel="stylesheet" />
|
||||||
An unhandled exception has occurred. See browser dev tools for details.
|
<link href="_content/Blazorise.Bootstrap/blazorise.bootstrap.css" rel="stylesheet" />
|
||||||
</environment>
|
</body>
|
||||||
<a href="" class="reload">reload</a>
|
</html>
|
||||||
<a class="dismiss">🗙</a>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<script src="_framework/blazor.server.js"></script>
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.15.4/css/all.css">
|
|
||||||
|
|
||||||
<link href="_content/Blazorise/blazorise.css" rel="stylesheet" />
|
|
||||||
<link href="_content/Blazorise.Bootstrap/blazorise.bootstrap.css" rel="stylesheet" />
|
|
||||||
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
|
@ -1,141 +0,0 @@
|
|||||||
<?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>
|
|
@ -1,141 +0,0 @@
|
|||||||
<?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>
|
|
@ -1,144 +0,0 @@
|
|||||||
<?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>
|
|
@ -1,144 +0,0 @@
|
|||||||
<?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>
|
|
@ -1,169 +0,0 @@
|
|||||||
<?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>
|
|
@ -1,169 +0,0 @@
|
|||||||
<?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>
|
|
@ -1,140 +0,0 @@
|
|||||||
<?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>
|
|
@ -1,140 +0,0 @@
|
|||||||
<?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>
|
|
@ -1,135 +0,0 @@
|
|||||||
<?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>
|
|
@ -1,135 +0,0 @@
|
|||||||
<?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>
|
|
@ -1,171 +0,0 @@
|
|||||||
<?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>
|
|
@ -1,171 +0,0 @@
|
|||||||
<?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>
|
|
@ -1,159 +0,0 @@
|
|||||||
<?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>
|
|
@ -1,159 +0,0 @@
|
|||||||
<?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>
|
|
@ -1,153 +0,0 @@
|
|||||||
<?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>
|
|
@ -1,153 +0,0 @@
|
|||||||
<?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>
|
|
@ -1,153 +0,0 @@
|
|||||||
<?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>
|
|
@ -1,153 +0,0 @@
|
|||||||
<?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>
|
|
@ -1,26 +0,0 @@
|
|||||||
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();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -0,0 +1,25 @@
|
|||||||
|
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;
|
||||||
|
}
|
||||||
|
}
|
@ -1,202 +0,0 @@
|
|||||||
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;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -1,293 +0,0 @@
|
|||||||
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>();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -1,193 +0,0 @@
|
|||||||
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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,54 +0,0 @@
|
|||||||
@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,40 +1,18 @@
|
|||||||
@using WF_WebAdmin.Model
|
@inherits LayoutComponentBase
|
||||||
@inherits LayoutComponentBase
|
|
||||||
@inject UserLogin uLogin
|
<PageTitle>WF-WebAdmin</PageTitle>
|
||||||
|
|
||||||
<PageTitle>WF-WebAdmin</PageTitle>
|
<div class="page">
|
||||||
<MudThemeProvider />
|
<div class="sidebar">
|
||||||
|
<NavMenu />
|
||||||
|
</div>
|
||||||
<div class="page">
|
|
||||||
@* @if (uLogin.Name != null)
|
<main>
|
||||||
{ *@
|
<div class="top-row px-4">
|
||||||
<div class="sidebar">
|
<a href="https://docs.microsoft.com/aspnet/" target="_blank">About</a>
|
||||||
<NavMenu/>
|
</div>
|
||||||
</div>
|
<article class="content px-4">
|
||||||
@*}*@
|
@Body
|
||||||
|
</article>
|
||||||
<main>
|
</main>
|
||||||
<div class="top-row px-4">
|
</div>
|
||||||
<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>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Before Width: | Height: | Size: 13 KiB |
@ -1,12 +1,9 @@
|
|||||||
{
|
{
|
||||||
"Logging": {
|
"Logging": {
|
||||||
"LogLevel": {
|
"LogLevel": {
|
||||||
"Default": "Information",
|
"Default": "Information",
|
||||||
"Microsoft.AspNetCore": "Warning"
|
"Microsoft.AspNetCore": "Warning"
|
||||||
}
|
|
||||||
},
|
|
||||||
"AllowedHosts": "*",
|
|
||||||
"ConnectionStrings": {
|
|
||||||
"DefaultConnection": "Host=localhost;Port=5432;Database=wikifantasy3;Username=postgres;Password=postgres"
|
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"AllowedHosts": "*"
|
||||||
}
|
}
|
||||||
|
@ -1,5 +0,0 @@
|
|||||||
{
|
|
||||||
"version": "3.0",
|
|
||||||
"defaultProvider": "cdnjs",
|
|
||||||
"libraries": []
|
|
||||||
}
|
|
@ -1,239 +1,154 @@
|
|||||||
@import url('open-iconic/font/css/open-iconic-bootstrap.min.css');
|
@import url('open-iconic/font/css/open-iconic-bootstrap.min.css');
|
||||||
@import url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100..900;1,100..900&display=swap');
|
|
||||||
|
html, body {
|
||||||
html, body {
|
font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
|
||||||
font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
|
background: white;
|
||||||
background: white;
|
color: black;
|
||||||
color: black;
|
}
|
||||||
}
|
|
||||||
|
h1:focus {
|
||||||
|
outline: none;
|
||||||
|
}
|
||||||
|
|
||||||
h1 {
|
a, .btn-link {
|
||||||
text-align: center;
|
color: #ffffff;
|
||||||
font-size: 32px;
|
text-decoration: none;
|
||||||
margin-top: 10%;
|
}
|
||||||
font-family: "Roboto", serif;
|
|
||||||
}
|
.btn-primary {
|
||||||
|
color: #fff;
|
||||||
|
background-color: #1b6ec2;
|
||||||
h1:focus {
|
border-color: #1861ac;
|
||||||
outline: none;
|
}
|
||||||
}
|
|
||||||
|
.content {
|
||||||
a, .btn-link {
|
padding-top: 1.1rem;
|
||||||
color: #ffffff;
|
}
|
||||||
text-decoration: none;
|
|
||||||
}
|
.valid.modified:not([type=checkbox]) {
|
||||||
|
outline: 1px solid #26b050;
|
||||||
.btn-primary {
|
}
|
||||||
color: #fff;
|
|
||||||
background-color: #1b6ec2;
|
.invalid {
|
||||||
border-color: #1861ac;
|
outline: 1px solid red;
|
||||||
}
|
}
|
||||||
|
|
||||||
.content {
|
.validation-message {
|
||||||
padding-top: 1.1rem;
|
color: red;
|
||||||
}
|
}
|
||||||
|
|
||||||
.valid.modified:not([type=checkbox]) {
|
#blazor-error-ui {
|
||||||
outline: 1px solid #26b050;
|
background: lightyellow;
|
||||||
}
|
bottom: 0;
|
||||||
|
box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
|
||||||
.invalid {
|
display: none;
|
||||||
outline: 1px solid red;
|
left: 0;
|
||||||
}
|
padding: 0.6rem 1.25rem 0.7rem 1.25rem;
|
||||||
|
position: fixed;
|
||||||
.validation-message {
|
width: 100%;
|
||||||
color: red;
|
z-index: 1000;
|
||||||
}
|
}
|
||||||
|
|
||||||
#blazor-error-ui {
|
#blazor-error-ui .dismiss {
|
||||||
background: lightyellow;
|
cursor: pointer;
|
||||||
bottom: 0;
|
position: absolute;
|
||||||
box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
|
right: 0.75rem;
|
||||||
display: none;
|
top: 0.5rem;
|
||||||
left: 0;
|
}
|
||||||
padding: 0.6rem 1.25rem 0.7rem 1.25rem;
|
|
||||||
position: fixed;
|
.blazor-error-boundary {
|
||||||
width: 100%;
|
background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTYiIGhlaWdodD0iNDkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIG92ZXJmbG93PSJoaWRkZW4iPjxkZWZzPjxjbGlwUGF0aCBpZD0iY2xpcDAiPjxyZWN0IHg9IjIzNSIgeT0iNTEiIHdpZHRoPSI1NiIgaGVpZ2h0PSI0OSIvPjwvY2xpcFBhdGg+PC9kZWZzPjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMCkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMzUgLTUxKSI+PHBhdGggZD0iTTI2My41MDYgNTFDMjY0LjcxNyA1MSAyNjUuODEzIDUxLjQ4MzcgMjY2LjYwNiA1Mi4yNjU4TDI2Ny4wNTIgNTIuNzk4NyAyNjcuNTM5IDUzLjYyODMgMjkwLjE4NSA5Mi4xODMxIDI5MC41NDUgOTIuNzk1IDI5MC42NTYgOTIuOTk2QzI5MC44NzcgOTMuNTEzIDI5MSA5NC4wODE1IDI5MSA5NC42NzgyIDI5MSA5Ny4wNjUxIDI4OS4wMzggOTkgMjg2LjYxNyA5OUwyNDAuMzgzIDk5QzIzNy45NjMgOTkgMjM2IDk3LjA2NTEgMjM2IDk0LjY3ODIgMjM2IDk0LjM3OTkgMjM2LjAzMSA5NC4wODg2IDIzNi4wODkgOTMuODA3MkwyMzYuMzM4IDkzLjAxNjIgMjM2Ljg1OCA5Mi4xMzE0IDI1OS40NzMgNTMuNjI5NCAyNTkuOTYxIDUyLjc5ODUgMjYwLjQwNyA1Mi4yNjU4QzI2MS4yIDUxLjQ4MzcgMjYyLjI5NiA1MSAyNjMuNTA2IDUxWk0yNjMuNTg2IDY2LjAxODNDMjYwLjczNyA2Ni4wMTgzIDI1OS4zMTMgNjcuMTI0NSAyNTkuMzEzIDY5LjMzNyAyNTkuMzEzIDY5LjYxMDIgMjU5LjMzMiA2OS44NjA4IDI1OS4zNzEgNzAuMDg4N0wyNjEuNzk1IDg0LjAxNjEgMjY1LjM4IDg0LjAxNjEgMjY3LjgyMSA2OS43NDc1QzI2Ny44NiA2OS43MzA5IDI2Ny44NzkgNjkuNTg3NyAyNjcuODc5IDY5LjMxNzkgMjY3Ljg3OSA2Ny4xMTgyIDI2Ni40NDggNjYuMDE4MyAyNjMuNTg2IDY2LjAxODNaTTI2My41NzYgODYuMDU0N0MyNjEuMDQ5IDg2LjA1NDcgMjU5Ljc4NiA4Ny4zMDA1IDI1OS43ODYgODkuNzkyMSAyNTkuNzg2IDkyLjI4MzcgMjYxLjA0OSA5My41Mjk1IDI2My41NzYgOTMuNTI5NSAyNjYuMTE2IDkzLjUyOTUgMjY3LjM4NyA5Mi4yODM3IDI2Ny4zODcgODkuNzkyMSAyNjcuMzg3IDg3LjMwMDUgMjY2LjExNiA4Ni4wNTQ3IDI2My41NzYgODYuMDU0N1oiIGZpbGw9IiNGRkU1MDAiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvZz48L3N2Zz4=) no-repeat 1rem/1.8rem, #b32121;
|
||||||
z-index: 1000;
|
padding: 1rem 1rem 1rem 3.7rem;
|
||||||
}
|
color: white;
|
||||||
|
}
|
||||||
#blazor-error-ui .dismiss {
|
|
||||||
cursor: pointer;
|
.blazor-error-boundary::after {
|
||||||
position: absolute;
|
content: "An error has occurred."
|
||||||
right: 0.75rem;
|
}
|
||||||
top: 0.5rem;
|
|
||||||
}
|
|
||||||
|
button {
|
||||||
.blazor-error-boundary {
|
border: none;
|
||||||
background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTYiIGhlaWdodD0iNDkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIG92ZXJmbG93PSJoaWRkZW4iPjxkZWZzPjxjbGlwUGF0aCBpZD0iY2xpcDAiPjxyZWN0IHg9IjIzNSIgeT0iNTEiIHdpZHRoPSI1NiIgaGVpZ2h0PSI0OSIvPjwvY2xpcFBhdGg+PC9kZWZzPjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMCkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMzUgLTUxKSI+PHBhdGggZD0iTTI2My41MDYgNTFDMjY0LjcxNyA1MSAyNjUuODEzIDUxLjQ4MzcgMjY2LjYwNiA1Mi4yNjU4TDI2Ny4wNTIgNTIuNzk4NyAyNjcuNTM5IDUzLjYyODMgMjkwLjE4NSA5Mi4xODMxIDI5MC41NDUgOTIuNzk1IDI5MC42NTYgOTIuOTk2QzI5MC44NzcgOTMuNTEzIDI5MSA5NC4wODE1IDI5MSA5NC42NzgyIDI5MSA5Ny4wNjUxIDI4OS4wMzggOTkgMjg2LjYxNyA5OUwyNDAuMzgzIDk5QzIzNy45NjMgOTkgMjM2IDk3LjA2NTEgMjM2IDk0LjY3ODIgMjM2IDk0LjM3OTkgMjM2LjAzMSA5NC4wODg2IDIzNi4wODkgOTMuODA3MkwyMzYuMzM4IDkzLjAxNjIgMjM2Ljg1OCA5Mi4xMzE0IDI1OS40NzMgNTMuNjI5NCAyNTkuOTYxIDUyLjc5ODUgMjYwLjQwNyA1Mi4yNjU4QzI2MS4yIDUxLjQ4MzcgMjYyLjI5NiA1MSAyNjMuNTA2IDUxWk0yNjMuNTg2IDY2LjAxODNDMjYwLjczNyA2Ni4wMTgzIDI1OS4zMTMgNjcuMTI0NSAyNTkuMzEzIDY5LjMzNyAyNTkuMzEzIDY5LjYxMDIgMjU5LjMzMiA2OS44NjA4IDI1OS4zNzEgNzAuMDg4N0wyNjEuNzk1IDg0LjAxNjEgMjY1LjM4IDg0LjAxNjEgMjY3LjgyMSA2OS43NDc1QzI2Ny44NiA2OS43MzA5IDI2Ny44NzkgNjkuNTg3NyAyNjcuODc5IDY5LjMxNzkgMjY3Ljg3OSA2Ny4xMTgyIDI2Ni40NDggNjYuMDE4MyAyNjMuNTg2IDY2LjAxODNaTTI2My41NzYgODYuMDU0N0MyNjEuMDQ5IDg2LjA1NDcgMjU5Ljc4NiA4Ny4zMDA1IDI1OS43ODYgODkuNzkyMSAyNTkuNzg2IDkyLjI4MzcgMjYxLjA0OSA5My41Mjk1IDI2My41NzYgOTMuNTI5NSAyNjYuMTE2IDkzLjUyOTUgMjY3LjM4NyA5Mi4yODM3IDI2Ny4zODcgODkuNzkyMSAyNjcuMzg3IDg3LjMwMDUgMjY2LjExNiA4Ni4wNTQ3IDI2My41NzYgODYuMDU0N1oiIGZpbGw9IiNGRkU1MDAiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvZz48L3N2Zz4=) no-repeat 1rem/1.8rem, #b32121;
|
border-radius: 25px;
|
||||||
padding: 1rem 1rem 1rem 3.7rem;
|
background-color: lightgrey;
|
||||||
color: white;
|
padding: 1vh;
|
||||||
}
|
}
|
||||||
|
|
||||||
.blazor-error-boundary::after {
|
/*Page DeleteUser*/
|
||||||
content: "An error has occurred."
|
.userDiv, .QuoteDiv {
|
||||||
}
|
margin-right: 20px;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
border-radius: 25px;
|
||||||
button {
|
background-color: #C3C4C5;
|
||||||
border: none;
|
}
|
||||||
border-radius: 25px;
|
|
||||||
background-color: lightgrey;
|
.imgProfil, .imgQuote {
|
||||||
padding: 1vh;
|
border-radius: 25px;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*Page DeleteUser*/
|
.pseudo, .mail, .idUser, .dateCrea, .idQuote, .contentQuote, .CaracterQuote, .SourceQuote, .langueQuote, .UserPropositionQuote {
|
||||||
.userDiv, .QuoteDiv {
|
margin-left: 10px;
|
||||||
margin-right: 20px;
|
}
|
||||||
margin-bottom: 10px;
|
|
||||||
border-radius: 25px;
|
/*ModifQuote*/
|
||||||
background-color: #C3C4C5;
|
|
||||||
}
|
.imgTab{
|
||||||
|
width: 5vw;
|
||||||
.imgProfil {
|
height: 5vw;
|
||||||
border-radius: 25px;
|
object-fit: contain;
|
||||||
width: 150px; /* Taille standard */
|
}
|
||||||
height: 150px; /* Taille standard */
|
|
||||||
object-fit: cover;
|
/*Popup DeleteUser*/
|
||||||
}
|
.divPopup {
|
||||||
|
position: fixed;
|
||||||
.imgQuote {
|
top: 0;
|
||||||
border-radius: 20px;
|
left: 0;
|
||||||
width: 300px; /* Taille standard */
|
width: 100%;
|
||||||
height: 300px; /* Taille standard */
|
height: 100%;
|
||||||
object-fit: cover;
|
background-color: white;
|
||||||
}
|
border-radius:20px;
|
||||||
|
display: flex;
|
||||||
.pseudo, .mail, .idUser, .dateCrea, .idQuote, .contentQuote, .CaracterQuote, .SourceQuote, .langueQuote, .UserPropositionQuote {
|
justify-content: center;
|
||||||
margin-left: 10px;
|
align-items: center;
|
||||||
}
|
z-index: 2;
|
||||||
|
}
|
||||||
/*ModifQuote*/
|
|
||||||
|
.contentPopup {
|
||||||
.imgTab{
|
background-color: white;
|
||||||
width: 5vw;
|
padding: 20px;
|
||||||
height: 5vw;
|
border-radius: 20px;
|
||||||
object-fit: contain;
|
display: flex;
|
||||||
}
|
flex-direction: column;
|
||||||
|
gap: 10px;
|
||||||
/*Popup DeleteUser*/
|
width: 300px;
|
||||||
.divPopup {
|
text-align: center;
|
||||||
position: fixed;
|
}
|
||||||
top: 0;
|
|
||||||
left: 0;
|
table {
|
||||||
width: 100%;
|
border-collapse: collapse;
|
||||||
height: 100%;
|
width: 100%;
|
||||||
border-radius:20px;
|
}
|
||||||
display: flex;
|
|
||||||
justify-content: center;
|
td {
|
||||||
align-items: center;
|
padding: 10px 20px;
|
||||||
z-index: 2;
|
border: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
.contentPopup {
|
.boutons {
|
||||||
padding: 20px;
|
display: flex;
|
||||||
border-radius: 20px;
|
justify-content: space-between;
|
||||||
border: 3px solid black;
|
gap: 10px;
|
||||||
display: flex;
|
}
|
||||||
background-color: white;
|
|
||||||
flex-direction: column;
|
.boutons button {
|
||||||
gap: 10px;
|
border: none;
|
||||||
width: 300px;
|
background-color: transparent;
|
||||||
text-align: center;
|
padding: 5px;
|
||||||
}
|
cursor: pointer;
|
||||||
|
}
|
||||||
table {
|
|
||||||
border-collapse: collapse;
|
.boutons button img {
|
||||||
width: 100%;
|
width: 24px;
|
||||||
}
|
height: 24px;
|
||||||
|
object-fit: contain;
|
||||||
td {
|
|
||||||
padding: 10px 20px;
|
|
||||||
border: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.boutons {
|
|
||||||
display: flex;
|
|
||||||
justify-content: space-between;
|
|
||||||
gap: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.boutons button {
|
|
||||||
border: none;
|
|
||||||
background-color: transparent;
|
|
||||||
padding: 5px;
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
|
|
||||||
.boutons button img {
|
|
||||||
width: 24px;
|
|
||||||
height: 24px;
|
|
||||||
object-fit: contain;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
.buttonSubmitDiv {
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
p {
|
|
||||||
margin-bottom: 2%;
|
|
||||||
font-size: 20px;
|
|
||||||
font-family: "Roboto", serif;
|
|
||||||
}
|
|
||||||
|
|
||||||
.login {
|
|
||||||
width: 35vw;
|
|
||||||
margin-left: 30.5vw;
|
|
||||||
margin-top: 3vh;
|
|
||||||
border-radius: 25px;
|
|
||||||
padding: 2vw;
|
|
||||||
background-color: #cfcfcf;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*Page login*/
|
|
||||||
.buttonSudmite {
|
|
||||||
border: none;
|
|
||||||
padding: 2%;
|
|
||||||
margin-top: 5%;
|
|
||||||
border-radius: 25px;
|
|
||||||
width: 50%;
|
|
||||||
font-size: 1.25em;
|
|
||||||
background-color: white;
|
|
||||||
font-family: "Roboto", serif;
|
|
||||||
}
|
|
||||||
|
|
||||||
.connexion {
|
|
||||||
width: 94%;
|
|
||||||
height: 40px;
|
|
||||||
padding-left: 3%;
|
|
||||||
margin-left: 1%;
|
|
||||||
margin-top: -1%;
|
|
||||||
border-radius: 25px;
|
|
||||||
border: none;
|
|
||||||
font-size: 15px;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
.ErrorMsg {
|
|
||||||
color: red;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
.imageProfil {
|
|
||||||
height: auto;
|
|
||||||
width: 30px;
|
|
||||||
border-radius: 45%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.buttonProfil{
|
|
||||||
background-color:transparent;
|
|
||||||
}
|
}
|
Before Width: | Height: | Size: 9.9 KiB |
@ -1,8 +0,0 @@
|
|||||||
[
|
|
||||||
{
|
|
||||||
"users": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"users": 4
|
|
||||||
}
|
|
||||||
]
|
|
@ -1,702 +0,0 @@
|
|||||||
[
|
|
||||||
{
|
|
||||||
"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."
|
|
||||||
}
|
|
||||||
]
|
|
@ -1,14 +0,0 @@
|
|||||||
[
|
|
||||||
{
|
|
||||||
"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
|
|
||||||
}
|
|
||||||
]
|
|
@ -1,6 +0,0 @@
|
|||||||
[
|
|
||||||
{
|
|
||||||
"users":1,
|
|
||||||
"quote":1
|
|
||||||
}
|
|
||||||
]
|
|
@ -1,82 +0,0 @@
|
|||||||
[
|
|
||||||
{
|
|
||||||
"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