私の目標は、バーンダウン チャートを作成することです。
次の関連フィールドを持つ障害オブジェクトがあります。
- フォルトID
- FaultCreationStartDate
- FaultClosedDate
指定された2つの日付の間の日のリストを返すリストを作成しました
List<DateTime> listOfDays = new List<DateTime>();
int lastDayOfMonth = DateTime.DaysInMonth(i_Date.Year, i_Date.Month);
for (int i = 1; i <= lastDayOfMonth; i++)
{
listOfDays.Add(new DateTime(DateTime.Now.Year,
DateTime.Now.Month, i));
}
ここで、開いている障害の数を毎日取得したいと思います。これは、それらが閉じられていないことを意味します。
基本的にFaultClosedDate
は、関連するよりも>でなければなりませんday
私はいくつかのlinq式を作成しましたが、それは内部結合であり、左結合ではありません。
その月のすべての日を取得し、その日に発生したすべての障害をカウントしたい
var tryfaults = listOfDays.SelectMany(d => i_Context.Faults.GetAllFaults()
.Where(f=> f.FaultCloseDateTime >= d.Date), (d, f) => new
{
Date = d.Date,
Open = f.FaultID
}).GroupBy(d => d.Date).Select(d => new
{
Date = d.Key.Date,
Open = d.Count()
}).ToList();