using Web.Tra.Model; public static class ObjectExtend { public static Overview ToOverview(this IEnumerable data) { return new Overview { TestDate = data.Max(x => x.Summary.TestDT.Date), StationName = data.Last().Summary.StationName, Host = data.Last().Summary.HostID, Section = data.Last().Summary.Section, ModelName = data.Last().TestInfo?.PROD_Group?.ModelName, TestType = data.Last().Summary.TestType, ProductNo = data.Last().Summary.ProdNo_C, TestCode = data.Last().Summary.Testcode, ParentNo = data.GroupBy(x => x.Summary.TestListCntID).Last().Last().Summary.ProdNo_P, TestListFileNo = data.GroupBy(x => x.Summary.TestListCntID).Last().Last().Summary.TestListFileNo, TestListVariantNo = data.GroupBy(x => x.Summary.TestListCntID).Last().Last().Summary.TestListVariantNo, FileCode = data.Last().Summary.ProdCode, FileVersion = data.Last().Summary.Version, StepVersion = data.Last().Summary.StepVersion, FirstTestTime = data.GroupBy(x => x.Summary.TestListCntID).Last().Min(y => y.Summary.TestDT).ToString("HH:mm:ss"), FinalTestTime = data.GroupBy(x => x.Summary.TestListCntID).Last().Max(y => y.Summary.TestDT).ToString("HH:mm:ss"), Total = data.GroupBy(x => (x.Summary.TestListCntID, x.Summary.TestDT.Date)).Last().Count(), OK = data.GroupBy(x => (x.Summary.TestListCntID, x.Summary.TestDT.Date)).Last().Count(y => y.Summary.Result.ToLower().Equals("ok")), NG = data.GroupBy(x => (x.Summary.TestListCntID, x.Summary.TestDT.Date)).Last().Count(y => !y.Summary.Result.ToLower().Equals("ok")), RN = 0, TestListCntID = data.Last().Summary.TestListCntID }; } public static Overview ToOverviewMerged(this IEnumerable data) { return new Overview { TestDate = data.Max(x => x.Summary.TestDT.Date), ModelName = data.Last().TestInfo?.PROD_Group?.ModelName, TestType = data.Last().Summary.TestType, ProductNo = data.Last().Summary.ProdNo_C, TestCode = data.Last().Summary.Testcode, ParentNo = data.Last().Summary.ProdNo_P, TestListFileNo = data.Last().Summary.TestListFileNo, TestListVariantNo = data.Last().Summary.TestListVariantNo, FileCode = data.Last().Summary.ProdCode, FileVersion = data.Last().Summary.Version, StepVersion = data.Last().Summary.StepVersion, FirstTestTime = data.Min(y => y.Summary.TestDT).ToString("HH:mm:ss"), FinalTestTime = data.Max(y => y.Summary.TestDT).ToString("HH:mm:ss"), Total = data.Count(), OK = data.Count(y => y.Summary.Result.ToLower().Equals("ok")), NG = data.Count(y => !y.Summary.Result.ToLower().Equals("ok")), RN = 0 }; } public static Overview ToDetailOverview(this IEnumerable data) { return data.ToOverview(); } public static TestHistory ToTestHistory(this IEnumerable data) { return new TestHistory { No = data.Last().Summary.No, TestDateTime = data.Last().Summary.TestDT, StationName = data.Last().Summary.StationName, Host = data.Last().Summary.HostID, Section = data.Last().Summary.Section, ProductID = data.Last().Summary.ProductID, TestType = data.Last().Summary.TestType, ProductNo = data.Last().Summary.ProdNo_C, TestCode = data.Last().Summary.Testcode, ParentNo = data.Last().Summary.ProdNo_P, FileCode = data.Last().Summary.ProdCode, FileVersion = data.Last().Summary.Version, StepVersion = data.Last().Summary.StepVersion, Duration = data.Last().Summary.Duration, TestResult = data.Last().Summary.Result, TestlistReqID = data.Last().Summary.TestListCntID, }; } }