public bool GenerateAteOutputDetail() { //check for valid serialNum if (this.serialNum == "" || !tools.isSerialNumberInDB(this.serialNum)) { return(false); } ateOutput = db.tblATEOutput.Where(x => x.ModelSN.Equals(this.serialNum)).OrderBy(x => x.StartTime).ToList(); ToolBox.ProductClass prodClass = new ToolBox.ProductClass(this.productType); //getting params which will be linked with test results if (prodClass.isTWT) { var qParams = db.tblTWTTestParameters.ToList(); foreach (var param in qParams) { testParams.Add(new TestParams(param.id, param.TestName, param.P1, param.P2, param.P3, param.P4, param.P5, param.P6, param.P7, param.P8, param.P9)); } } else if (prodClass.isKLY) { var qParams = db.tblKLYTestParameters.ToList(); foreach (var param in qParams) { testParams.Add(new TestParams(param.id, param.TestName, param.P1, param.P2, param.P3, param.P4, param.P5, param.P6, param.P7, param.P8, param.P9)); } } else if (prodClass.isSSPA) { var qParams = db.tblSSPATestParameters.ToList(); foreach (var param in qParams) { testParams.Add(new TestParams(param.id, param.TestName, param.P1, param.P2, param.P3, param.P4, param.P5, param.P6, param.P7, param.P8, param.P9)); } } //populate "testResults" list with all the test for chosen serial if (prodClass.isTWT) { var qTests = db.tblTWTTestResults.Where(x => x.ModelSN.Equals(this.serialNum)); foreach (var test in qTests) { testResults.Add(new TestResults(test.id, test.ModelSN, test.StartTime, test.TestName, Regex.Replace(test.TestName, @"[\d-]", ""), test.Result, test.Units, test.LowLimit, test.UpLimit, test.PassFail, test.Channel, test.P1, test.P2, test.P3, test.P4, test.P5, test.P6, test.P7, test.P8, test.P9)); } } else if (prodClass.isKLY) { var qTests = db.tblKLYTestResults.Where(x => x.ModelSN.Equals(this.serialNum)); foreach (var test in qTests) { //GainVariation1NB is the same as GainVariation1NBW if (test.TestName.Equals("GainVariation1NB")) { testResults.Add(new TestResults(test.id, test.ModelSN, test.StartTime, "GainVariation1NBW", "GainVariationNBW", test.Result, test.Units, test.LowLimit, test.UpLimit, test.PassFail, test.Channel, test.P1, test.P2, test.P3, test.P4, test.P5, test.P6, test.P7, test.P8, test.P9)); } else { testResults.Add(new TestResults(test.id, test.ModelSN, test.StartTime, test.TestName, Regex.Replace(test.TestName, @"[\d-]", ""), test.Result, test.Units, test.LowLimit, test.UpLimit, test.PassFail, test.Channel, test.P1, test.P2, test.P3, test.P4, test.P5, test.P6, test.P7, test.P8, test.P9)); } } } else if (prodClass.isSSPA) { var qTests = db.tblSSPATestResults.Where(x => x.ModelSN.Equals(this.serialNum)); foreach (var test in qTests) { testResults.Add(new TestResults(test.id, test.ModelSN, test.StartTime, test.TestName, Regex.Replace(test.TestName, @"[\d-]", ""), test.Result, test.Units, test.LowLimit, test.UpLimit, test.PassFail, test.Channel, test.P1, test.P2, test.P3, test.P4, test.P5, test.P6, test.P7, test.P8, test.P9)); } } //it is necessary to order this list by "TestName" since we want to group tests together so they can be placed in one table testResults = testResults.OrderBy(x => x.TestName).ToList(); return(true); }
public void generateTestsResults(string prodType, string modelName, string testName, string testType, string tubeName, string options) { //if (tools.isModelNameItar(modelName)) { return; } string dbTestType = "Production"; switch (testType) { case "ProdTest": dbTestType = "Production"; break; case "EngTest": dbTestType = "Engineering"; break; case "RMATest": dbTestType = "RMA"; break; case "Debug": dbTestType = "Debugging"; break; } var myQuery = (from ateOut in db.tblATEOutput join serialNums in db.tblSerialNumbers on ateOut.ModelSN equals serialNums.ModelSN where serialNums.ModelName.Equals(modelName) orderby ateOut.StartTime ascending select ateOut); if (testType.Equals("") || testType.Equals("none")) { myQuery = myQuery.Where(ateOut => ateOut.TestType.Contains("Production") || ateOut.TestType.Contains("Engineering") || ateOut.TestType.Contains("RMA") || ateOut.TestType.Contains("Debugging")); } else { myQuery = myQuery.Where(ateOut => ateOut.TestType.Contains(dbTestType)); } if (tubeName.Count() > 3 && !tubeName.Equals("none")) { myQuery = myQuery.Where(ateOut => ateOut.TubeName.Equals(tubeName)); } if (options.Contains("SsaSN")) { myQuery = myQuery.Where(ateOut => ateOut.SsaSN.Contains("")); } if (options.Contains("LinSN")) { myQuery = myQuery.Where(ateOut => ateOut.LinSN.Contains("")); } if (options.Contains("LipaSN")) { myQuery = myQuery.Where(ateOut => ateOut.LipaSN.Contains("")); } if (options.Contains("BucSN")) { myQuery = myQuery.Where(ateOut => ateOut.BucSN.Contains("")); } if (options.Contains("BipaSN")) { myQuery = myQuery.Where(ateOut => ateOut.BipaSN.Contains("")); } if (options.Contains("BlipaSN")) { myQuery = myQuery.Where(ateOut => ateOut.BlipaSN.Contains("")); } ToolBox.ProductClass prodClass = new ToolBox.ProductClass(prodType); //getting params which will be linked with test results if (prodClass.isTWT) { var qParams = db.tblTWTTestParameters.ToList(); foreach (var param in qParams) { testParams.Add(new TestParams(param.id, param.TestName, param.P1, param.P2, param.P3, param.P4, param.P5, param.P6, param.P7, param.P8, param.P9)); } } else if (prodClass.isKLY) { var qParams = db.tblKLYTestParameters.ToList(); foreach (var param in qParams) { testParams.Add(new TestParams(param.id, param.TestName, param.P1, param.P2, param.P3, param.P4, param.P5, param.P6, param.P7, param.P8, param.P9)); } } else if (prodClass.isSSPA) { var qParams = db.tblSSPATestParameters.ToList(); foreach (var param in qParams) { testParams.Add(new TestParams(param.id, param.TestName, param.P1, param.P2, param.P3, param.P4, param.P5, param.P6, param.P7, param.P8, param.P9)); } } //populate "testResults" list with all the test for chosen model name foreach (var output in myQuery) { if (prodClass.isTWT) { var qTests = db.tblTWTTestResults.Where(x => x.ModelSN.Equals(output.ModelSN) && x.StartTime.Equals(output.StartTime)); foreach (var test in qTests) { testResults.Add(new TestResults(test.id, test.ModelSN, test.StartTime, test.TestName, Regex.Replace(test.TestName, @"[\d-]", ""), test.Result, test.Units, test.LowLimit, test.UpLimit, test.PassFail, test.Channel, test.P1, test.P2, test.P3, test.P4, test.P5, test.P6, test.P7, test.P8, test.P9)); } } else if (prodClass.isKLY) { var qTests = db.tblKLYTestResults.Where(x => x.ModelSN.Equals(output.ModelSN) && x.StartTime.Equals(output.StartTime)); foreach (var test in qTests) { testResults.Add(new TestResults(test.id, test.ModelSN, test.StartTime, test.TestName, Regex.Replace(test.TestName, @"[\d-]", ""), test.Result, test.Units, test.LowLimit, test.UpLimit, test.PassFail, test.Channel, test.P1, test.P2, test.P3, test.P4, test.P5, test.P6, test.P7, test.P8, test.P9)); } } else if (prodClass.isSSPA) { var qTests = db.tblSSPATestResults.Where(x => x.ModelSN.Equals(output.ModelSN) && x.StartTime.Equals(output.StartTime)); foreach (var test in qTests) { testResults.Add(new TestResults(test.id, test.ModelSN, test.StartTime, test.TestName, Regex.Replace(test.TestName, @"[\d-]", ""), test.Result, test.Units, test.LowLimit, test.UpLimit, test.PassFail, test.Channel, test.P1, test.P2, test.P3, test.P4, test.P5, test.P6, test.P7, test.P8, test.P9)); } } } //it is necessary to order this list by "TestName" since we want to group tests together so they can be placed in one table testResults = testResults.OrderBy(x => x.TestName).ToList(); }