I Am trying to make a chart.
This works:
@model List<MyApp.Models.SystemModel>
@{var myChart = new Chart(width: 600, height: 400)
.AddTitle("Chart Title")
.AddSeries(
name: "Employee",
xValue: Model[0].HistoryValues.Select(x => x.LastUpdateSTR).ToArray(),
yValues: Model[0].
HistoryValues.Select(x => x.ServerPerformance).ToArray())
.Write();
}
However I don't want to go on Model[0] I want to go on every model object that I have in my list.
Ive tried this:
@model List<MyApp.Models.SystemModel>
<div id="Chart col-md-6">
@{ var myChart = new Chart(width: 600, height: 400)
.AddTitle("ServerPerformance")
.AddSeries(
name: "ServerPerformance",
xValue: Model.Select(y => y.HistoryValues.Select(x => x.LastUpdateSTR)).ToArray(),
yValues: Model.Select(y => y.HistoryValues.Select(x => x.ServerPerformance)).ToArray()
)
.Write();
}
</div>
But that gave an outOfrangeException:
Data points binding error. Only 1 Y values can be set for this data series
It is clear to me that my linq code is not correct, Ive tried with some other methods as .foreach() but that gave me an even bigger headache.
How can i do this?
EDIT:
i tried this in my controller.
var myChart = new Chart(width: 600, height: 400)
.AddTitle("ServerPerformance")
.AddSeries(
name: "ServerPerformance",
xValue: model.Select(y => y.HistoryValues.Select(x => x.LastUpdateSTR)).ToArray(),
yValues: model.Select(y => y.HistoryValues.Select(x => x.ServerPerformance)).ToArray());
X and Y values are null.
MODEL:
public string GuidId { get; set; }
public bool EverythingOffline { get; set; }
public bool ServerOnline { get; set; }
public long ServerPerformance { get; set; }
public string DomainName { get; set; }
public string Url { get; set; }
public string ErrorMessage { get; set; }
public long DomainId { get; set; }
public Guid Id { get; set; }
public bool DatabaseOnline { get; set; }
public bool Passed { get; set; }
public long Databaseperformance { get; set; }
public DateTime LastUpdate { get; set; }
public string LastUpdateSTR { get; set; }
public long SoldTicketsLastUpdate { get; set; }
public long SoldTicketsLastThirtyMin { get; set; }
public long SoldTicketsLastFifteenMin { get; set; }
public DateTime LastUpdateDate { get; set; }
public double LastUpdateDateMinutes { get; set; }
public DateTime SoldTitcketsDate { get; set; }
public List<SystemModel> HistoryValues { get; set; }
Model.HistoryValues.Select(x => x.LastUpdateSTR).ToArray()