Compare commits
No commits in common. 'main' and 'Test_API' have entirely different histories.
@ -1,81 +0,0 @@
|
||||
kind: pipeline
|
||||
type: docker
|
||||
name: HeartTrack-Admin-CI
|
||||
|
||||
trigger:
|
||||
event:
|
||||
- push
|
||||
|
||||
steps:
|
||||
- name: build
|
||||
image: mcr.microsoft.com/dotnet/sdk:6.0
|
||||
commands:
|
||||
- cd Sources/HeartTrack/
|
||||
- dotnet restore HeartTrack.sln
|
||||
- dotnet build HeartTrack.sln -c Release --no-restore
|
||||
- dotnet publish HeartTrack.sln -c Release --no-restore -o CI_PROJECT_DIR/build/release
|
||||
|
||||
- name: tests
|
||||
image: mcr.microsoft.com/dotnet/sdk:6.0
|
||||
commands:
|
||||
- cd Sources/HeartTrack/
|
||||
- dotnet restore HeartTrack.sln
|
||||
- dotnet test HeartTrack.sln --no-restore
|
||||
depends_on: [build]
|
||||
|
||||
- name: code-analysis
|
||||
image: hub.codefirst.iut.uca.fr/marc.chevaldonne/codefirst-dronesonarplugin-dotnet8
|
||||
secrets: [ SECRET_SONAR_LOGIN ]
|
||||
settings:
|
||||
sonar_host: https://codefirst.iut.uca.fr/sonar/
|
||||
sonar_token:
|
||||
from_secret: SECRET_SONAR_LOGIN
|
||||
project_key: HeartTrack-API
|
||||
coverage_exclusions: Tests/**, StubbedContextLib/**, StubAPI/**
|
||||
duplication_exclusions: Tests/**, StubbedContextLib/**
|
||||
commands:
|
||||
- cd Sources/HeartTrack/
|
||||
- dotnet restore HeartTrack.sln
|
||||
- dotnet sonarscanner begin /k:HeartTrack-API /d:sonar.host.url=$${PLUGIN_SONAR_HOST} /d:sonar.login=$${PLUGIN_SONAR_TOKEN} /d:sonar.coverage.exclusions="Tests/**, StubbedContextLib/**, StubAPI/**, HeartTrackAPI/Utils/**" /d:sonar.cpd.exclusions="Tests/**, StubbedContextLib/**, StubAPI/**" /d:sonar.coverageReportPaths="coveragereport/SonarQube.xml"
|
||||
- dotnet build HeartTrack.sln -c Release --no-restore
|
||||
- dotnet test HeartTrack.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 HeartTrack.sln -c Release --no-restore -o $CI_PROJECT_DIR/build/release
|
||||
- dotnet sonarscanner end /d:sonar.login=$${PLUGIN_SONAR_TOKEN}
|
||||
depends_on: [ tests ]
|
||||
|
||||
---
|
||||
|
||||
|
||||
kind: pipeline
|
||||
type: docker
|
||||
name: HeartTrack-Admin-CD
|
||||
|
||||
trigger:
|
||||
event:
|
||||
- push
|
||||
steps:
|
||||
|
||||
- name: docker-build-and-push
|
||||
image: plugins/docker
|
||||
settings:
|
||||
dockerfile: Sources/HeartTrack/Dockerfile
|
||||
context: Sources/HeartTrack/
|
||||
registry: hub.codefirst.iut.uca.fr
|
||||
repo: hub.codefirst.iut.uca.fr/david.d_almeida/admin
|
||||
username:
|
||||
from_secret: SECRET_REGISTRY_USERNAME
|
||||
password:
|
||||
from_secret: SECRET_REGISTRY_PASSWORD
|
||||
|
||||
# database container admin
|
||||
- name: deploy-container-admin
|
||||
image: hub.codefirst.iut.uca.fr/thomas.bellembois/codefirst-dockerproxy-clientdrone:latest
|
||||
environment:
|
||||
CODEFIRST_CLIENTDRONE_ENV_TYPE: ADMIN
|
||||
IMAGENAME: hub.codefirst.iut.uca.fr/david.d_almeida/admin:latest
|
||||
CONTAINERNAME: heart_track_admin
|
||||
COMMAND: create
|
||||
ADMINS: davidd_almeida,kevinmonteiro,antoineperederii,paullevrault,antoinepinagot,nicolasraymond,marcchevaldonne
|
||||
OVERWRITE: true
|
||||
depends_on: [ docker-build-and-push ]
|
@ -1,20 +0,0 @@
|
||||
# Utiliser l'image SDK .NET pour construire l'application
|
||||
FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build
|
||||
WORKDIR /app
|
||||
|
||||
# Copier les fichiers du projet et restaurer les dépendances
|
||||
COPY *.csproj .
|
||||
RUN dotnet restore
|
||||
|
||||
# Copier tout le reste et construire l'application
|
||||
COPY . .
|
||||
RUN dotnet publish -c Release -o out
|
||||
|
||||
# Utiliser l'image runtime .NET pour exécuter l'application
|
||||
FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS runtime
|
||||
WORKDIR /app
|
||||
COPY --from=build /app/out .
|
||||
|
||||
EXPOSE 8080
|
||||
|
||||
ENTRYPOINT ["dotnet", "HeartTrack.dll"]
|
@ -1,33 +1,10 @@
|
||||
@page "/activities"
|
||||
@using HeartTrack.Models
|
||||
|
||||
<PageTitle>Activities</PageTitle>
|
||||
|
||||
<h1>@Localizer["Title"]</h1>
|
||||
<h1>Activity list</h1>
|
||||
|
||||
<p>
|
||||
@Localizer["Description"]
|
||||
</p>
|
||||
This is the activity list of users.
|
||||
|
||||
<SurveyPrompt Title="How is Blazor working for you?" />
|
||||
|
||||
<DataGrid TItem="Activity"
|
||||
Data="@activities"
|
||||
ReadData="@OnReadData"
|
||||
TotalItems="@totalActivity"
|
||||
PageSize="10"
|
||||
ShowPager
|
||||
Responsive>
|
||||
<DataGridColumn TItem="Activity" Field="@nameof(Activity.IdActivity)" Caption="Id" />
|
||||
<DataGridColumn TItem="Activity" Field="@nameof(Activity.Type)" Caption="Type" />
|
||||
<DataGridColumn TItem="Activity" Field="@nameof(Activity.Date)" Caption="Date" />
|
||||
<DataGridColumn TItem="Activity" Field="@nameof(Activity.StartTime)" Caption="@Localizer["StartTime"]" />
|
||||
<DataGridColumn TItem="Activity" Field="@nameof(Activity.EndTime)" Caption="@Localizer["EndTime"]" />
|
||||
<DataGridColumn TItem="Activity" Field="@nameof(Activity.EffortRessenti)" Caption="@Localizer["EffortRessenti"]" />
|
||||
<DataGridColumn TItem="Activity" Field="@nameof(Activity.Variability)" Caption="@Localizer["Variability"]" />
|
||||
<DataGridColumn TItem="Activity" Field="@nameof(Activity.Variance)" Caption="@Localizer["Variance"]" />
|
||||
<DataGridColumn TItem="Activity" Field="@nameof(Activity.StandardDeviation)" Caption="@Localizer["StandardDeviation"]" />
|
||||
<DataGridColumn TItem="Activity" Field="@nameof(Activity.Average)" Caption="@Localizer["Average"]" />
|
||||
<DataGridColumn TItem="Activity" Field="@nameof(Activity.Maximum)" Caption="Maximum" />
|
||||
<DataGridColumn TItem="Activity" Field="@nameof(Activity.Minimum)" Caption="Minimum" />
|
||||
<DataGridColumn TItem="Activity" Field="@nameof(Activity.AvrTemperature)" Caption="@Localizer["AvrTemperature"]" />
|
||||
<DataGridColumn TItem="Activity" Field="@nameof(Activity.HasAutoPause)" Caption="@Localizer["HasAutoPause"]" />
|
||||
</DataGrid>
|
@ -0,0 +1,4 @@
|
||||
@page "/admin-manager"
|
||||
@attribute [Authorize(Roles = "superadmin")]
|
||||
|
||||
<h3>Admin Page</h3>
|
@ -0,0 +1,30 @@
|
||||
@page "/banned-users"
|
||||
@using HeartTrack.Models
|
||||
|
||||
<PageTitle>Banned Users</PageTitle>
|
||||
|
||||
<h1>Banned Users</h1>
|
||||
|
||||
This is banned users list of this website.
|
||||
<div>
|
||||
<NavLink class="btn btn-primary" href="banned-users/add" Match="NavLinkMatch.All">
|
||||
<i class="fa fa-plus"></i> Ajouter
|
||||
</NavLink>
|
||||
</div>
|
||||
<SurveyPrompt Title="How is Blazor working for you?" />
|
||||
|
||||
<DataGrid TItem="User"
|
||||
Data="@users"
|
||||
ReadData="@OnReadData"
|
||||
TotalItems="@totalUser"
|
||||
PageSize="10"
|
||||
ShowPager
|
||||
Responsive>
|
||||
<DataGridColumn TItem="User" Field="@nameof(User.Id)" Caption="Id" />
|
||||
<DataGridColumn TItem="User" Field="@nameof(User.Username)" Caption="@Localizer["Username"]" />
|
||||
<DataGridColumn TItem="User" Field="@nameof(User.Nom)" Caption="@Localizer["FirstN"]" />
|
||||
<DataGridColumn TItem="User" Field="@nameof(User.Prenom)" Caption="@Localizer["LastN"]" />
|
||||
<DataGridColumn Caption="" />
|
||||
</DataGrid>
|
||||
|
||||
|
@ -0,0 +1,10 @@
|
||||
@page "/reports"
|
||||
|
||||
<PageTitle>Reports</PageTitle>
|
||||
|
||||
<h1>Report list</h1>
|
||||
|
||||
This is the report list of users.
|
||||
|
||||
<SurveyPrompt Title="How is Blazor working for you?" />
|
||||
|
@ -0,0 +1,20 @@
|
||||
@page "/test"
|
||||
<div class="text-center bg-blue-100">
|
||||
<input class="border-4 w-1/3 rounded m-6 p-6 h-8
|
||||
border-blue-300" @bind-value="SearchText"
|
||||
@bind-value:event="oninput" placeholder="Search by title" />
|
||||
</div>
|
||||
|
||||
@if (!Users.Any())
|
||||
{
|
||||
<p>Loading some images...</p>
|
||||
}
|
||||
else
|
||||
{
|
||||
<div class="p-2 grid grid-cols-1 sm:grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-3">
|
||||
@foreach (var user in FilteredUsers)
|
||||
{
|
||||
<p>feur</p>
|
||||
}
|
||||
</div>
|
||||
}
|
@ -1,150 +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="Title" xml:space="preserve">
|
||||
<value>List d'activités</value>
|
||||
</data>
|
||||
<data name="Description" xml:space="preserve">
|
||||
<value>This is t.</value>
|
||||
</data>
|
||||
<data name="StartTime" xml:space="preserve">
|
||||
<value>helle</value>
|
||||
</data>
|
||||
<data name="EndTime" xml:space="preserve">
|
||||
<value>Last e</value>
|
||||
</data>
|
||||
<data name="EffortRessenti" xml:space="preserve">
|
||||
<value>Efforressenti</value>
|
||||
</data>
|
||||
<data name="Variability" xml:space="preserve">
|
||||
<value>Variablity</value>
|
||||
</data>
|
||||
<data name="StandardDeviation" xml:space="preserve">
|
||||
<value>Standard deviation</value>
|
||||
</data>
|
||||
<data name="Average" xml:space="preserve">
|
||||
<value>Average</value>
|
||||
</data>
|
||||
<data name="AvrTemperature" xml:space="preserve">
|
||||
<value>Average temperature</value>
|
||||
</data>
|
||||
<data name="HasAutoPause" xml:space="preserve">
|
||||
<value>Has auto pause</value>
|
||||
</data>
|
||||
</root>
|
@ -1,150 +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="Title" xml:space="preserve">
|
||||
<value>Activities List</value>
|
||||
</data>
|
||||
<data name="Description" xml:space="preserve">
|
||||
<value>This is the activity list of users.</value>
|
||||
</data>
|
||||
<data name="StartTime" xml:space="preserve">
|
||||
<value>First name</value>
|
||||
</data>
|
||||
<data name="EndTime" xml:space="preserve">
|
||||
<value>Last name</value>
|
||||
</data>
|
||||
<data name="EffortRessenti" xml:space="preserve">
|
||||
<value>Effort ressenti</value>
|
||||
</data>
|
||||
<data name="Variability" xml:space="preserve">
|
||||
<value>Variability</value>
|
||||
</data>
|
||||
<data name="StandardDeviation" xml:space="preserve">
|
||||
<value>Standard deviation</value>
|
||||
</data>
|
||||
<data name="Average" xml:space="preserve">
|
||||
<value>Average</value>
|
||||
</data>
|
||||
<data name="AvrTemperature" xml:space="preserve">
|
||||
<value>Average temperature</value>
|
||||
</data>
|
||||
<data name="HasAutoPause" xml:space="preserve">
|
||||
<value>Has auto pause</value>
|
||||
</data>
|
||||
</root>
|
@ -1,12 +1,42 @@
|
||||
@using System.Globalization
|
||||
@inject NavigationManager NavigationManager
|
||||
|
||||
<p>
|
||||
<label>
|
||||
<select @bind="Culture">
|
||||
@foreach (var culture in @supportedCultures)
|
||||
@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")
|
||||
};
|
||||
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,17 @@
|
||||
<div class="alert alert-secondary mt-4">
|
||||
<span class="oi oi-pencil me-2" aria-hidden="true"></span>
|
||||
<strong>@Title</strong>
|
||||
|
||||
<span class="text-nowrap">
|
||||
Please take our
|
||||
<a target="_blank" class="font-weight-bold link-dark" href="https://go.microsoft.com/fwlink/?linkid=2149017">brief survey</a>
|
||||
</span>
|
||||
and tell us what you think.
|
||||
</div>
|
||||
|
||||
@code {
|
||||
// Demonstrates how a parent component can supply parameters
|
||||
[Parameter]
|
||||
public string? Title { get; set; }
|
||||
}
|
||||
|
@ -0,0 +1,379 @@
|
||||
[
|
||||
{
|
||||
"id": 1,
|
||||
"username": "johndoe",
|
||||
"nom": "Doe",
|
||||
"prenom": "John",
|
||||
"email": "john.doe@example.com",
|
||||
"password": "password123",
|
||||
"sexe": "male",
|
||||
"taille": 1.76,
|
||||
"poids": 56.3,
|
||||
"birthdate": "2018-12-27",
|
||||
"isban": true
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"username": "johndoe",
|
||||
"nom": "Doe",
|
||||
"prenom": "John",
|
||||
"email": "john.doe@example.com",
|
||||
"password": "password123",
|
||||
"sexe": "male",
|
||||
"taille": 1.76,
|
||||
"poids": 56.3,
|
||||
"birthdate": "2021-06-29",
|
||||
"isban": true
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"username": "johndoe",
|
||||
"nom": "Doe",
|
||||
"prenom": "John",
|
||||
"email": "john.doe@example.com",
|
||||
"password": "password123",
|
||||
"sexe": "male",
|
||||
"taille": 1.76,
|
||||
"poids": 56.3,
|
||||
"birthdate": "2021-04-09",
|
||||
"isban": true
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"username": "johndoe",
|
||||
"nom": "Doe",
|
||||
"prenom": "John",
|
||||
"email": "john.doe@example.com",
|
||||
"password": "password123",
|
||||
"sexe": "male",
|
||||
"taille": 1.76,
|
||||
"poids": 56.3,
|
||||
"birthdate": "2022-11-20",
|
||||
"isban": true
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"username": "johndoe",
|
||||
"nom": "Doe",
|
||||
"prenom": "John",
|
||||
"email": "john.doe@example.com",
|
||||
"password": "password123",
|
||||
"sexe": "male",
|
||||
"taille": 1.76,
|
||||
"poids": 56.3,
|
||||
"birthdate": "2021-02-20",
|
||||
"isban": true
|
||||
},
|
||||
{
|
||||
"id": 6,
|
||||
"username": "johndoe",
|
||||
"nom": "Doe",
|
||||
"prenom": "John",
|
||||
"email": "john.doe@example.com",
|
||||
"password": "password123",
|
||||
"sexe": "male",
|
||||
"taille": 1.76,
|
||||
"poids": 56.3,
|
||||
"birthdate": "2014-02-17",
|
||||
"isban": true
|
||||
},
|
||||
{
|
||||
"id": 7,
|
||||
"username": "johndoe",
|
||||
"nom": "Doe",
|
||||
"prenom": "John",
|
||||
"email": "john.doe@example.com",
|
||||
"password": "password123",
|
||||
"sexe": "male",
|
||||
"taille": 1.76,
|
||||
"poids": 56.3,
|
||||
"birthdate": "2020-07-14",
|
||||
"isban": true
|
||||
},
|
||||
{
|
||||
"id": 8,
|
||||
"username": "johndoe",
|
||||
"nom": "Doe",
|
||||
"prenom": "John",
|
||||
"email": "john.doe@example.com",
|
||||
"password": "password123",
|
||||
"sexe": "male",
|
||||
"taille": 1.76,
|
||||
"poids": 56.3,
|
||||
"birthdate": "2018-02-21",
|
||||
"isban": false
|
||||
},
|
||||
{
|
||||
"id": 9,
|
||||
"username": "johndoe",
|
||||
"nom": "Doe",
|
||||
"prenom": "John",
|
||||
"email": "john.doe@example.com",
|
||||
"password": "password123",
|
||||
"sexe": "male",
|
||||
"taille": 1.76,
|
||||
"poids": 56.3,
|
||||
"birthdate": "2014-07-31",
|
||||
"isban": true
|
||||
},
|
||||
{
|
||||
"id": 10,
|
||||
"username": "johndoe",
|
||||
"nom": "Doe",
|
||||
"prenom": "John",
|
||||
"email": "john.doe@example.com",
|
||||
"password": "password123",
|
||||
"sexe": "male",
|
||||
"taille": 1.76,
|
||||
"poids": 56.3,
|
||||
"birthdate": "2019-10-02",
|
||||
"isban": true
|
||||
},
|
||||
{
|
||||
"id": 11,
|
||||
"username": "johndoe",
|
||||
"nom": "Doe",
|
||||
"prenom": "John",
|
||||
"email": "john.doe@example.com",
|
||||
"password": "password123",
|
||||
"sexe": "male",
|
||||
"taille": 1.76,
|
||||
"poids": 56.3,
|
||||
"birthdate": "2015-07-26",
|
||||
"isban": false
|
||||
},
|
||||
{
|
||||
"id": 12,
|
||||
"username": "johndoe",
|
||||
"nom": "Doe",
|
||||
"prenom": "John",
|
||||
"email": "john.doe@example.com",
|
||||
"password": "password123",
|
||||
"sexe": "male",
|
||||
"taille": 1.76,
|
||||
"poids": 56.3,
|
||||
"birthdate": "2020-10-23",
|
||||
"isban": false
|
||||
},
|
||||
{
|
||||
"id": 13,
|
||||
"username": "johndoe",
|
||||
"nom": "Doe",
|
||||
"prenom": "John",
|
||||
"email": "john.doe@example.com",
|
||||
"password": "password123",
|
||||
"sexe": "male",
|
||||
"taille": 1.76,
|
||||
"poids": 56.3,
|
||||
"birthdate": "2014-11-03",
|
||||
"isban": true
|
||||
},
|
||||
{
|
||||
"id": 14,
|
||||
"username": "johndoe",
|
||||
"nom": "Doe",
|
||||
"prenom": "John",
|
||||
"email": "john.doe@example.com",
|
||||
"password": "password123",
|
||||
"sexe": "male",
|
||||
"taille": 1.76,
|
||||
"poids": 56.3,
|
||||
"birthdate": "2014-01-31",
|
||||
"isban": false
|
||||
},
|
||||
{
|
||||
"id": 15,
|
||||
"username": "johndoe",
|
||||
"nom": "Doe",
|
||||
"prenom": "John",
|
||||
"email": "john.doe@example.com",
|
||||
"password": "password123",
|
||||
"sexe": "male",
|
||||
"taille": 1.76,
|
||||
"poids": 56.3,
|
||||
"birthdate": "2022-04-12",
|
||||
"isban": false
|
||||
},
|
||||
{
|
||||
"id": 16,
|
||||
"username": "johndoe",
|
||||
"nom": "Doe",
|
||||
"prenom": "John",
|
||||
"email": "john.doe@example.com",
|
||||
"password": "password123",
|
||||
"sexe": "male",
|
||||
"taille": 1.76,
|
||||
"poids": 56.3,
|
||||
"birthdate": "2018-07-22",
|
||||
"isban": false
|
||||
},
|
||||
{
|
||||
"id": 17,
|
||||
"username": "johndoe",
|
||||
"nom": "Doe",
|
||||
"prenom": "John",
|
||||
"email": "john.doe@example.com",
|
||||
"password": "password123",
|
||||
"sexe": "male",
|
||||
"taille": 1.76,
|
||||
"poids": 56.3,
|
||||
"birthdate": "2017-04-04",
|
||||
"isban": true
|
||||
},
|
||||
{
|
||||
"id": 18,
|
||||
"username": "johndoe",
|
||||
"nom": "Doe",
|
||||
"prenom": "John",
|
||||
"email": "john.doe@example.com",
|
||||
"password": "password123",
|
||||
"sexe": "male",
|
||||
"taille": 1.76,
|
||||
"poids": 56.3,
|
||||
"birthdate": "2015-08-15",
|
||||
"isban": true
|
||||
},
|
||||
{
|
||||
"id": 19,
|
||||
"username": "johndoe",
|
||||
"nom": "Doe",
|
||||
"prenom": "John",
|
||||
"email": "john.doe@example.com",
|
||||
"password": "password123",
|
||||
"sexe": "male",
|
||||
"taille": 1.76,
|
||||
"poids": 56.3,
|
||||
"birthdate": "2022-04-10",
|
||||
"isban": false
|
||||
},
|
||||
{
|
||||
"id": 20,
|
||||
"username": "johndoe",
|
||||
"nom": "Doe",
|
||||
"prenom": "John",
|
||||
"email": "john.doe@example.com",
|
||||
"password": "password123",
|
||||
"sexe": "male",
|
||||
"taille": 1.76,
|
||||
"poids": 56.3,
|
||||
"birthdate": "2020-02-09",
|
||||
"isban": false
|
||||
},
|
||||
{
|
||||
"id": 21,
|
||||
"username": "johndoe",
|
||||
"nom": "Doe",
|
||||
"prenom": "John",
|
||||
"email": "john.doe@example.com",
|
||||
"password": "password123",
|
||||
"sexe": "male",
|
||||
"taille": 1.76,
|
||||
"poids": 56.3,
|
||||
"birthdate": "2017-02-18",
|
||||
"isban": false
|
||||
},
|
||||
{
|
||||
"id": 22,
|
||||
"username": "johndoe",
|
||||
"nom": "Doe",
|
||||
"prenom": "John",
|
||||
"email": "john.doe@example.com",
|
||||
"password": "password123",
|
||||
"sexe": "male",
|
||||
"taille": 1.76,
|
||||
"poids": 56.3,
|
||||
"birthdate": "2023-06-25",
|
||||
"isban": false
|
||||
},
|
||||
{
|
||||
"id": 23,
|
||||
"username": "johndoe",
|
||||
"nom": "Doe",
|
||||
"prenom": "John",
|
||||
"email": "john.doe@example.com",
|
||||
"password": "password123",
|
||||
"sexe": "male",
|
||||
"taille": 1.76,
|
||||
"poids": 56.3,
|
||||
"birthdate": "2017-09-27",
|
||||
"isban": true
|
||||
},
|
||||
{
|
||||
"id": 24,
|
||||
"username": "johndoe",
|
||||
"nom": "Doe",
|
||||
"prenom": "John",
|
||||
"email": "john.doe@example.com",
|
||||
"password": "password123",
|
||||
"sexe": "male",
|
||||
"taille": 1.76,
|
||||
"poids": 56.3,
|
||||
"birthdate": "2015-02-01",
|
||||
"isban": true
|
||||
},
|
||||
{
|
||||
"id": 25,
|
||||
"username": "johndoe",
|
||||
"nom": "Doe",
|
||||
"prenom": "John",
|
||||
"email": "john.doe@example.com",
|
||||
"password": "password123",
|
||||
"sexe": "male",
|
||||
"taille": 1.76,
|
||||
"poids": 56.3,
|
||||
"birthdate": "2017-05-28",
|
||||
"isban": true
|
||||
},
|
||||
{
|
||||
"id": 26,
|
||||
"username": "johndoe",
|
||||
"nom": "Doe",
|
||||
"prenom": "John",
|
||||
"email": "john.doe@example.com",
|
||||
"password": "password123",
|
||||
"sexe": "male",
|
||||
"taille": 1.76,
|
||||
"poids": 56.3,
|
||||
"birthdate": "2022-06-11",
|
||||
"isban": true
|
||||
},
|
||||
{
|
||||
"id": 27,
|
||||
"username": "johndoe",
|
||||
"nom": "Doe",
|
||||
"prenom": "John",
|
||||
"email": "john.doe@example.com",
|
||||
"password": "password123",
|
||||
"sexe": "male",
|
||||
"taille": 1.76,
|
||||
"poids": 56.3,
|
||||
"birthdate": "2019-08-08",
|
||||
"isban": true
|
||||
},
|
||||
{
|
||||
"id": 28,
|
||||
"username": "johndoe",
|
||||
"nom": "Doe",
|
||||
"prenom": "John",
|
||||
"email": "john.doe@example.com",
|
||||
"password": "password123",
|
||||
"sexe": "male",
|
||||
"taille": 1.76,
|
||||
"poids": 56.3,
|
||||
"birthdate": "2015-01-29",
|
||||
"isban": false
|
||||
},
|
||||
{
|
||||
"id": 29,
|
||||
"username": "johndoe",
|
||||
"nom": "Doe",
|
||||
"prenom": "John",
|
||||
"email": "john.doe@example.com",
|
||||
"password": "password123",
|
||||
"sexe": "male",
|
||||
"taille": 1.76,
|
||||
"poids": 56.3,
|
||||
"birthdate": "2020-08-21",
|
||||
"isban": false
|
||||
}
|
||||
]
|
Loading…
Reference in new issue