Files
SystemX.Web/Projects/WebClient/Web.Tra/Extended/ObjectExtended.cs

107 lines
4.8 KiB
C#

using Newtonsoft.Json;
using SystemX.Core.DB;
using Web.Tra.Model;
using SystemX.Core.Utils;
public static class ObjectExtend
{
public static Overview ToOverview(this IEnumerable<SearchData> 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<SearchData> 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<SearchData> data)
{
return data.ToOverview();
}
public static TestHistory ToTestHistory(this SearchData data)
{
return new TestHistory
{
No = data.Summary.No,
TestDate = data.Summary.TestDT,
TestDateTime = data.Summary.TestDT,
StationName = data.Summary.StationName,
Host = data.Summary.HostID,
Section = data.Summary.Section,
ProductID = data.Summary.ProductID,
TestType = data.Summary.TestType,
ProductNo = data.Summary.ProdNo_C,
TestCode = data.Summary.Testcode,
ParentNo = data.Summary.ProdNo_P,
FileCode = data.Summary.ProdCode,
FileVersion = data.Summary.Version,
StepVersion = data.Summary.StepVersion,
Duration = data.Summary.Duration,
TestResult = data.Summary.Result,
TestListCntID = data.Summary.TestListCntID,
TestListReqID = data.Summary.TestListCntID
};
}
public static List<DecompressTestResult> ToTestResult(this HIST_TestResult histTestResult)
{
var decompStr = histTestResult?.LogData.GzipDecompress();
var logData = JsonConvert.DeserializeObject<List<DecompressTestResult>>(decompStr);
foreach (var log in logData)
{
if (string.IsNullOrEmpty(log.Message) == false)
log.MesauredValue = log.Message;
else if (string.IsNullOrEmpty(log.MeasValStr) == false)
log.MesauredValue = log.MeasValStr;
else
log.MesauredValue = log.MeasVal.ToString();
}
return logData;
}
}