У меня есть ниже
public class ApplicationStatusModel
{
public int ApplicationId { get; set; }
public string ApplicationStatus { get; set; }
public DateTime CreatedDate { get; set; }
}
, который заполнен некоторыми записями как
List<ApplicationStatusModel> objApplicationStatusModel = new List<ApplicationStatusModel>();
objApplicationStatusModel.Add(new ApplicationStatusModel { ApplicationId = 1, ApplicationStatus = "Status1", CreatedDate = new DateTime(2020, 04, 20, 12, 30, 10) });
objApplicationStatusModel.Add(new ApplicationStatusModel { ApplicationId = 1, ApplicationStatus = "Status2", CreatedDate = new DateTime(2020, 04, 20, 13, 30, 40) });
objApplicationStatusModel.Add(new ApplicationStatusModel { ApplicationId = 2, ApplicationStatus = "Status1", CreatedDate = new DateTime(2020, 04, 20, 14, 12, 08) });
objApplicationStatusModel.Add(new ApplicationStatusModel { ApplicationId = 2, ApplicationStatus = "Status2", CreatedDate = new DateTime(2020, 04, 20, 15, 30, 10) });
objApplicationStatusModel.Add(new ApplicationStatusModel { ApplicationId = 2, ApplicationStatus = "Status3", CreatedDate = new DateTime(2020, 04, 20, 15, 40, 34) });
Я ищу Время прохождения для идентификатора приложения как
Ниже приведен способ его расчета
// Расчет часов для Status1 = время перехода из Status1 - Status2
// Расчет часов Status2 = время перехода из Status2 в Status3
например
Для идентификатора приложения = 1, статус 1, это 24/04/2020 13:30:40 - 24/04/2020 12:30:10 = 1 час: 30 секунд
Для идентификатора приложения = 2, статус 1 это 24/04/2020 15:30:10 - 24/04/2020 14:12:08 = 1 час: 18 минут: 2 секунды
Для идентификатора приложения = 2, статус 2 это 24/04/2020 15:40:34 - 24/04/2020 15:30:10 = 10 минут: 24 секунды
DTO соответствует
public class TransitReportModel
{
#region
public int ApplicationId { get; set; }
public string StatusName { get; set; }
public string TransitTime { get; set; }
#endregion
}