/// <summary> /// Get min max boundaries from I40Check /// </summary> /// <param name="procedure"></param> /// <param name="faiItems">FaiItems to reuse</param> /// <returns></returns> public static List <FaiItem> GetFaiBoundaries(this I40Check procedure, List <FaiItem> faiItems = null) { var numValidFai = I40Check.YouXiaoFAINum; var names = procedure.GetFaiNames(); var uppers = procedure.myResult.Take(numValidFai).Select(ele => ele.upper).ToList(); var lowers = procedure.myResult.Take(numValidFai).Select(ele => ele.lower).ToList(); var output = faiItems ?? new List <FaiItem>(); if (faiItems == null) { for (int i = 0; i < numValidFai; i++) { output.Add(new FaiItem() { Name = names[i], MaxBoundary = uppers[i], MinBoundary = lowers[i], ShouldAutoSerialize = false }); } } else { for (int i = 0; i < numValidFai; i++) { var item = output.ByName(names[i]); item.MaxBoundary = uppers[i]; item.MinBoundary = lowers[i]; } } return(output); }
public static GraphicsPackViewModel Execute(this I40Check procedure, int chusIndex, List <HImage> images) { var result = new GraphicsPackViewModel { Images = images, Graphics = procedure.OnGetCheckValue(images, chusIndex, 0), FaiResults = procedure.GetFaiDict(chusIndex) }; return(result); }
public static Dictionary <string, double> GetFaiDict(this I40Check procedure, int chusIndex) { var numFaiItems = procedure.resultNum; var startIndex = chusIndex * numFaiItems; var numValidFai = I40Check.YouXiaoFAINum; var endIndex = startIndex + numValidFai; var output = new Dictionary <string, double>(); for (int index = startIndex; index < endIndex; index++) { var result = procedure.myResult[index]; output[result.nameStr] = FloorDouble(result.measureValue, 3); } return(output); }
public static StringMatrixData GetData(this I40Check procedure, StringMatrixType dataType) { List <string> header; List <List <string> > content; switch (dataType) { case StringMatrixType.Results: header = procedure.ResultHeader; content = procedure.ResultDictionary1.ToStringMatrix(); break; case StringMatrixType.FindLine: header = procedure.SearchLineHeader; content = procedure.SearchLineDictionary.ToStringMatrix(); break; case StringMatrixType.Misc: header = procedure.AlgHeader; content = procedure.AlgDictionary.ToStringMatrix(); break; default: throw new KeyNotFoundException("Can not find such StringMatrixType"); } if (header.Count == 0 || content.Count == 0) { Debugger.Break(); } return(new StringMatrixData() { Header = header, Content = content }); }
public static List <string> GetFaiNames(this I40Check procedure) { var numValidFai = I40Check.YouXiaoFAINum; return(procedure.OnGetResultDefNameStr().Take(numValidFai).ToList()); }