using System.Collections.Generic; using System.Linq; using TProduct.Model; namespace TProduct.Common { public partial class TestStandardHelper { private static TestStandardHelper instance = null; private List _allPump = null; private List _allValve = null; private TestStandardHelper() { _allPump = new List(); var gb3216 = BuildGB3216(); _allPump.Add(gb3216); var iso9906 = BuildISO9906(); _allPump.Add(iso9906); _allValve = new List(); _allValve.Add(new TestStandard() { ID = "GB30832-2014", Name = "GB30832 2014", ProductType = eProductType.Valve, Tag = "GB30832-2014", IsDefault = true, TestTypes = new List { eTestType.ValveTest } }); } private static object obj = new object(); public static TestStandardHelper Instance { get { if (instance == null) { lock (obj) { if (instance == null) { instance = new TestStandardHelper(); } } } return instance; } } public List GetStandardList( TProduct.Model.eProductType prodcutType, TProduct.Model.eTestType testType) { if (prodcutType == eProductType.Pump) return _allPump; else if (prodcutType == eProductType.Valve) return _allValve; else return _allPump; } public TProduct.Model.TestStandard GetDefaultStandard( TProduct.Model.eProductType prodcutType, TProduct.Model.eTestType testType) { if (prodcutType == eProductType.Valve) { var def = _allValve.Find(x => x.IsDefault); if (def != null) return def; return _allValve.First(); } else { var def = _allPump.Find(x => x.IsDefault); if (def != null) return def; return _allPump.First(); } } public TProduct.Model.TestStandard GetStandard( TProduct.Model.eProductType prodcutType, string StandardID) { if (string.IsNullOrEmpty(StandardID)) return null; if (prodcutType == eProductType.Valve) { return _allValve.Find(x => x.ID == StandardID); } else { return _allPump.Find(x => x.ID == StandardID); } } public List GetGradeList( TProduct.Model.eProductType prodcutType, string StandardID) { string defaultGradeId = null; return GetGradeList(prodcutType, StandardID, out defaultGradeId); } public List GetGradeList( TProduct.Model.eProductType prodcutType, string StandardID, out string defaultGradeId) { defaultGradeId = null; if (string.IsNullOrEmpty(StandardID)) return null; if (prodcutType == eProductType.Valve) { var stand = _allValve.Find(x => x.ID == StandardID); if (stand == null || stand.Grades == null || stand.Grades.Count() == 0) return null; var defaultGrade = stand.Grades.Find(x => x.IsDefault); if (defaultGrade == null) { defaultGradeId = stand.Grades.First().ID; } else { defaultGradeId = defaultGrade.ID; } return stand.Grades; } else { { var stand = _allPump.Find(x => x.ID == StandardID); if (stand == null || stand.Grades == null || stand.Grades.Count() == 0) return null; var defaultGrade = stand.Grades.Find(x => x.IsDefault); if (defaultGrade == null) { defaultGradeId = stand.Grades.First().ID; } else { defaultGradeId = defaultGrade.ID; } return stand.Grades; } } } public TProduct.Model.TestGrade GetGrade( TProduct.Model.eProductType prodcutType, string StandardID, string GradeID) { if (string.IsNullOrEmpty(StandardID)) return null; if (string.IsNullOrEmpty(GradeID)) return null; var ff = GetGradeList(prodcutType, StandardID).Find(x => x.ID == GradeID); if (ff == null) return GetGradeList(prodcutType, "GB3216-2016").Find(x => x.ID == "GB3216-2016-2B"); else return ff; } public TProduct.Model.TestGrade GetDefaultGrade(TProduct.Model.eProductType prodcutType, string StandardID) { var ff = GetGradeList(prodcutType, StandardID); if (ff == null) return GetGradeList(prodcutType, "GB3216-2016").Find(x => x.ID == "GB3216-2016-2B"); var gg = ff.Find(x => x.IsDefault); if (gg != null) return gg; else return ff.First(); } public List GetJudgeItems(TProduct.Model.eProductType prodcutType, string StandardID, string GradeID) { return GetGrade(prodcutType, StandardID, GradeID).JudgeItems; } } }