В данный момент я работаю над проектом, чтобы проанализировать выполнение различных действий. Для этого я создал проект ASP.NET MVC с базой данных MDF.
Я читаю файлы журналов (CSV-файлы), анализирую их и сохраняю в базе данных. CSV-файлы выглядят так:
И я получаю это в консоли браузера:
Array[6]
0: {durat: 148, err: false, time: "2019-06-03T02:00:06.86"}
1: {durat: 151, err: false, time: "2019-06-03T02:01:06.393"}
2: {durat: 139, err: false, time: "2019-06-03T02:13:06.63"}
3: {durat: 173, err: false, time: "2019-06-03T03:00:06.86"}
4: {durat: 151, err: false, time: "2019-06-03T03:01:06.393"}
5: {durat: 139, err: false, time: "2019-06-03T04:13:06.63"}
Что мне нужно сделать, чтобы сгруппировать этот вывод по часам? Как:
Array[3]
0: {durat: 148, err: false, time: "2019-06-03T02:00:06.86"}
1: {durat: 151, err: false, time: "2019-06-03T02:01:06.393"}
2: {durat: 139, err: false, time: "2019-06-03T02:13:06.63"}
Array[2]
0: {durat: 173, err: false, time: "2019-06-03T03:00:06.86"}
1: {durat: 151, err: false, time: "2019-06-03T03:01:06.393"}
Array[1]
0: {durat: 139, err: false, time: "2019-06-03T04:13:06.63"}
Структура базы данных:
public partial class ChartData
{
public int Id { get; set; }
public DateTime Timestamp { get; set; }
public string Function { get; set; }
public int Duration { get; set; }
public bool IsError { get; set; }
}`
С помощью этого метода я получаю все данные из выбранной функции из базы данных:
public List<ChartDataDTO> GetDataForChart(string function)
{
return db.ChartDatas
.Where(x => x.Function == function)
.Select(x => new ChartDataDTO
{
durat = x.Duration,
err = x.IsError,
time = x.Timestamp
})
.ToList();
}
В JS я использую этот метод как:
$.getJSON(`/Home/GetDataForChart?function=${selectedFunction}`)
Структура файла CSV:
date,functionName,DurationInMs,3,False