From a3ab1977dde53376d77b6fe26a25715d33c29aff Mon Sep 17 00:00:00 2001 From: mmrbnjd Date: Sat, 22 Jun 2024 16:29:44 +0330 Subject: [PATCH] ... --- TaxPayerFull/Layout/SaleChart.razor | 175 +++++++++++++++++++ TaxPayerFull/Pages/UserPanel/SaleChart.razor | 165 ----------------- 2 files changed, 175 insertions(+), 165 deletions(-) create mode 100644 TaxPayerFull/Layout/SaleChart.razor delete mode 100644 TaxPayerFull/Pages/UserPanel/SaleChart.razor diff --git a/TaxPayerFull/Layout/SaleChart.razor b/TaxPayerFull/Layout/SaleChart.razor new file mode 100644 index 0000000..cc1a9b7 --- /dev/null +++ b/TaxPayerFull/Layout/SaleChart.razor @@ -0,0 +1,175 @@ +@using Color = System.Drawing.Color +@using Shared.DTOs + + + +@* + + + + + *@ +@code { + private LineChart lineChart = default!; + private LineChartOptions lineChartOptions = default!; + private ChartData chartData = default!; + public List> items = new List>(); + private int datasetsCount = 0; + private int labelsCount = 0; + + private Random random = new(); + + protected override void OnInitialized() + { + items.AddRange(new List>() + { + new IdNameByCount{ID=0,Title="1",count=10}, + new IdNameByCount{ID=1,Title="2",count=5}, + new IdNameByCount{ID=2,Title="3",count=12}, + new IdNameByCount{ID=3,Title="4",count=21} + }); + chartData = new ChartData { Labels = GetDefaultDataLabels(), Datasets = GetDefaultDataSets(1) }; + lineChartOptions = new() { Responsive = true, Interaction = new Interaction { Mode = InteractionMode.Index } }; + } + + protected override async Task OnAfterRenderAsync(bool firstRender) + { + if (firstRender) + { + await lineChart.InitializeAsync(chartData, lineChartOptions); + } + await base.OnAfterRenderAsync(firstRender); + } + + // private async Task RandomizeAsync() + // { + // if (chartData is null || chartData.Datasets is null || !chartData.Datasets.Any()) return; + + // var newDatasets = new List(); + + // foreach (var dataset in chartData.Datasets) + // { + // if (dataset is LineChartDataset lineChartDataset + // && lineChartDataset is not null + // && lineChartDataset.Data is not null) + // { + // var count = lineChartDataset.Data.Count; + + // var newData = new List(); + // for (var i = 0; i < count; i++) + // { + // newData.Add(random.Next(200)); + // } + + // lineChartDataset.Data = newData; + // newDatasets.Add(lineChartDataset); + // } + // } + + // chartData.Datasets = newDatasets; + + // await lineChart.UpdateAsync(chartData, lineChartOptions); + // } + + // private async Task AddDatasetAsync() + // { + // if (chartData is null || chartData.Datasets is null) return; + + // var chartDataset = GetRandomLineChartDataset(); + // chartData = await lineChart.AddDatasetAsync(chartData, chartDataset, lineChartOptions); + // } + + // private async Task AddDataAsync() + // { + // if (chartData is null || chartData.Datasets is null) + // return; + + // var data = new List(); + // foreach (var dataset in chartData.Datasets) + // { + // if (dataset is LineChartDataset lineChartDataset) + // data.Add(new LineChartDatasetData(lineChartDataset.Label, random.Next(200))); + // } + + // chartData = await lineChart.AddDataAsync(chartData, GetNextDataLabel(), data); + // } + + // private async Task ShowHorizontalLineChartAsync() + // { + // lineChartOptions.IndexAxis = "y"; + // await lineChart.UpdateAsync(chartData, lineChartOptions); + // } + + // private async Task ShowVerticalLineChartAsync() + // { + // lineChartOptions.IndexAxis = "x"; + // await lineChart.UpdateAsync(chartData, lineChartOptions); + // } + + #region Data Preparation + + private List GetDefaultDataSets(int numberOfDatasets) + { + var datasets = new List(); + + for (var index = 0; index < numberOfDatasets; index++) + { + datasets.Add(GetRandomLineChartDataset()); + } + + return datasets; + } + + private LineChartDataset GetRandomLineChartDataset() + { + var c = ColorBuilder.CategoricalTwelveColors[datasetsCount].ToColor(); + + datasetsCount += 1; + + return new LineChartDataset() + { + Label = $"فروش", + Data = GetRandomData(), + BackgroundColor = new List { c.ToRgbString() }, + BorderColor = new List { c.ToRgbString() }, + BorderWidth = new List { 2 }, + HoverBorderWidth = new List { 4 }, + PointBackgroundColor = new List { c.ToRgbString() }, + PointRadius = new List { 0 }, // hide points + PointHoverRadius = new List { 4 }, + }; + } + + private List GetRandomData() + { + var data = new List(); + for (var index = 0; index < items.Count; index++) + { + + data.Add(decimal.ToDouble(items[index].count.Value)); + } + + return data; + } + + private List GetDefaultDataLabels() + { + + var labels = new List(); + for (var index = 0; index < items.Count; index++) + { + + labels.Add($"روز {items[index].Title}"); + } + + return labels; + } + + // private string GetNextDataLabel() + // { + // labelsCount += 1; + // return $"روز {labelsCount}"; + // } + + #endregion Data Preparation +} \ No newline at end of file diff --git a/TaxPayerFull/Pages/UserPanel/SaleChart.razor b/TaxPayerFull/Pages/UserPanel/SaleChart.razor deleted file mode 100644 index 9e01875..0000000 --- a/TaxPayerFull/Pages/UserPanel/SaleChart.razor +++ /dev/null @@ -1,165 +0,0 @@ - -@using Color = System.Drawing.Color - - - -@* - - - - - *@ -@code { - private LineChart lineChart = default!; - private LineChartOptions lineChartOptions = default!; - private ChartData chartData = default!; - - private int datasetsCount = 0; - private int labelsCount = 0; - - private Random random = new(); - - protected override void OnInitialized() - { - chartData = new ChartData { Labels = GetDefaultDataLabels(31), Datasets = GetDefaultDataSets(1) }; - lineChartOptions = new() { Responsive = true, Interaction = new Interaction { Mode = InteractionMode.Index } }; - } - - protected override async Task OnAfterRenderAsync(bool firstRender) - { - if (firstRender) - { - await lineChart.InitializeAsync(chartData, lineChartOptions); - } - await base.OnAfterRenderAsync(firstRender); - } - - private async Task RandomizeAsync() - { - if (chartData is null || chartData.Datasets is null || !chartData.Datasets.Any()) return; - - var newDatasets = new List(); - - foreach (var dataset in chartData.Datasets) - { - if (dataset is LineChartDataset lineChartDataset - && lineChartDataset is not null - && lineChartDataset.Data is not null) - { - var count = lineChartDataset.Data.Count; - - var newData = new List(); - for (var i = 0; i < count; i++) - { - newData.Add(random.Next(200)); - } - - lineChartDataset.Data = newData; - newDatasets.Add(lineChartDataset); - } - } - - chartData.Datasets = newDatasets; - - await lineChart.UpdateAsync(chartData, lineChartOptions); - } - - private async Task AddDatasetAsync() - { - if (chartData is null || chartData.Datasets is null) return; - - var chartDataset = GetRandomLineChartDataset(); - chartData = await lineChart.AddDatasetAsync(chartData, chartDataset, lineChartOptions); - } - - private async Task AddDataAsync() - { - if (chartData is null || chartData.Datasets is null) - return; - - var data = new List(); - foreach (var dataset in chartData.Datasets) - { - if (dataset is LineChartDataset lineChartDataset) - data.Add(new LineChartDatasetData(lineChartDataset.Label, random.Next(200))); - } - - chartData = await lineChart.AddDataAsync(chartData, GetNextDataLabel(), data); - } - - private async Task ShowHorizontalLineChartAsync() - { - lineChartOptions.IndexAxis = "y"; - await lineChart.UpdateAsync(chartData, lineChartOptions); - } - - private async Task ShowVerticalLineChartAsync() - { - lineChartOptions.IndexAxis = "x"; - await lineChart.UpdateAsync(chartData, lineChartOptions); - } - - #region Data Preparation - - private List GetDefaultDataSets(int numberOfDatasets) - { - var datasets = new List(); - - for (var index = 0; index < numberOfDatasets; index++) - { - datasets.Add(GetRandomLineChartDataset()); - } - - return datasets; - } - - private LineChartDataset GetRandomLineChartDataset() - { - var c = ColorBuilder.CategoricalTwelveColors[datasetsCount].ToColor(); - - datasetsCount += 1; - - return new LineChartDataset() - { - Label = $"فروش", - Data = GetRandomData(), - BackgroundColor = new List { c.ToRgbString() }, - BorderColor = new List { c.ToRgbString() }, - BorderWidth = new List { 2 }, - HoverBorderWidth = new List { 4 }, - PointBackgroundColor = new List { c.ToRgbString() }, - PointRadius = new List { 0 }, // hide points - PointHoverRadius = new List { 4 }, - }; - } - - private List GetRandomData() - { - var data = new List(); - for (var index = 0; index < labelsCount; index++) - { - data.Add(random.Next(200)); - } - - return data; - } - - private List GetDefaultDataLabels(int numberOfLabels) - { - var labels = new List(); - for (var index = 0; index < numberOfLabels; index++) - { - labels.Add(GetNextDataLabel()); - } - - return labels; - } - - private string GetNextDataLabel() - { - labelsCount += 1; - return $"روز {labelsCount}"; - } - - #endregion Data Preparation -} \ No newline at end of file