debut graph

master
Kentin BRONGNIART 4 months ago
parent f6bd5d2fc1
commit 9dcb541816

@ -0,0 +1,14 @@
@page "/graph"
@using Syncfusion.Blazor.Charts
<script src=https://cdn.syncfusion.com/blazor/22.1.38/syncfusion-blazor.min.js type="text/javascript"></script>
<SfChart>
<ChartPrimaryXAxis ValueType="Syncfusion.Blazor.Charts.ValueType.Category"></ChartPrimaryXAxis>
<ChartSeriesCollection>
<ChartSeries DataSource="@Sales" Opacity="1" Fill="blue" XName="Month" YName="SalesValue" Type="ChartSeriesType.Column" ColumnSpacing="0.2" ColumnWidth="0.8">
</ChartSeries>
</ChartSeriesCollection>
</SfChart>

@ -0,0 +1,92 @@
using Microsoft.AspNetCore.Components;
using MudBlazor;
using Syncfusion.Blazor.Charts.Chart.Internal;
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Threading.Tasks;
using WF_WebAdmin.Model;
using WF_WebAdmin.Service;
namespace WF_WebAdmin.Pages
{
public class SalesInfo
{
public string Month { get; set; }
public double SalesValue { get; set; }
}
public partial class ComposentComplex : ComponentBase
{
[Inject] public ICommentaryService CommentaryService { get; set; } = default!;
public List<string> Labels { get; set; } = new();
public List<double[]> ChartData { get; set; } = new();
public List<int> AvailableYears { get; set; } = new();
public int SelectedYear { get; set; }
private List<Commentary> AllComments = new();
public List<SalesInfo> Sales = new List<SalesInfo>
{
new SalesInfo { Month = "Jan", SalesValue = 35 },
new SalesInfo { Month = "Feb", SalesValue = 28 },
new SalesInfo { Month = "Mar", SalesValue = 34 },
new SalesInfo { Month = "Apr", SalesValue = 28 },
new SalesInfo { Month = "May", SalesValue = 40 },
new SalesInfo { Month = "Jun", SalesValue = 32 },
new SalesInfo { Month = "Jul", SalesValue = 35 },
new SalesInfo { Month = "Aug", SalesValue = 55 },
new SalesInfo { Month = "Sep", SalesValue = 38 },
new SalesInfo { Month = "Oct", SalesValue = 30 },
new SalesInfo { Month = "Nov", SalesValue = 25 },
new SalesInfo { Month = "Dec", SalesValue = 32 }
};
protected override async Task OnInitializedAsync()
{
// Charger tous les commentaires
AllComments = await CommentaryService.GetCommentsAsync();
if (!AllComments.Any())
{
Labels = new List<string> { "Aucun commentaire" };
ChartData = new List<double[]> { new double[] { 0 } };
return;
}
AvailableYears = AllComments
.Select(c => c.DateCreation.Year)
.Distinct()
.OrderBy(y => y)
.ToList();
SelectedYear = AvailableYears.Max();
UpdateChartData(SelectedYear);
}
private void UpdateChartData(int newYear)
{
SelectedYear = newYear;
var filteredComments = AllComments
.Where(c => c.DateCreation.Year == SelectedYear)
.ToList();
if (!filteredComments.Any())
{
Labels = new List<string> { "Aucun commentaire" };
ChartData = new List<double[]> { new double[] { 0 } };
return;
}
foreach (var sale in Sales)
{
sale.SalesValue = filteredComments.Count(c => c.DateCreation.Month.ToString("MMM", CultureInfo.InvariantCulture) == sale.Month);
}
}
}
}

@ -14,6 +14,7 @@ using Blazored.Modal;
using WF_WebAdmin.Service; using WF_WebAdmin.Service;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
using MudBlazor.Services; using MudBlazor.Services;
using Syncfusion.Blazor;
[assembly: RootNamespace("WF_WebAdmin")] [assembly: RootNamespace("WF_WebAdmin")]
@ -32,6 +33,8 @@ builder.Services.AddScoped<UserLogin>();
builder.Services.AddMudServices(); builder.Services.AddMudServices();
builder.Logging.AddConfiguration(builder.Configuration.GetSection("Logging")); builder.Logging.AddConfiguration(builder.Configuration.GetSection("Logging"));
builder.Services.AddSyncfusionBlazor();
builder.Services builder.Services
.AddBlazorise() .AddBlazorise()
.AddBootstrapProviders() .AddBootstrapProviders()

@ -59,6 +59,11 @@
<span class="oi oi-list-rich" aria-hidden="true"></span> Stats commentaires <span class="oi oi-list-rich" aria-hidden="true"></span> Stats commentaires
</MudNavLink> </MudNavLink>
</div> </div>
<div class="nav-item px-3">
<MudNavLink class="nav-link" Href="/graph">
<span class="oi oi-list-rich" aria-hidden="true"></span> Stats commentaires
</MudNavLink>
</div>
</nav> </nav>
</div> </div>

@ -18,6 +18,7 @@
<PackageReference Include="MudBlazor" Version="6.2.0" /> <PackageReference Include="MudBlazor" Version="6.2.0" />
<PackageReference Include="Npgsql" Version="9.0.2" /> <PackageReference Include="Npgsql" Version="9.0.2" />
<PackageReference Include="Blazored.Modal" Version="7.2.0" /> <PackageReference Include="Blazored.Modal" Version="7.2.0" />
<PackageReference Include="Syncfusion.Blazor.Charts" Version="28.2.4" />
</ItemGroup> </ItemGroup>
</Project> </Project>

@ -143,7 +143,7 @@
"id_comment": 21, "id_comment": 21,
"quote": 7, "quote": 7,
"users": 21, "users": 21,
"dateC": "2024-8-30", "dateC": "2024-08-30",
"comment": "Belle pensée." "comment": "Belle pensée."
}, },
{ {

Loading…
Cancel
Save