public static List <ProjectTestData> RetrieveProjectTestData(string projectkey, string startdate, string enddate, bool firstyield, Cache mycache) { //ProjectTestData.PrePareLatestData(projectkey); var ret = new List <ProjectTestData>(); var sql = ""; if (firstyield) { sql = "select ModuleSerialNum,WhichTest,ErrAbbr,TestTimeStamp from ProjectTestData where ProjectKey = '<ProjectKey>' and TestTimeStamp > '<StartDate>' and TestTimeStamp < '<EndDate>' order by ModuleSerialNum,TestTimeStamp ASC"; } else { sql = "select ModuleSerialNum,WhichTest,ErrAbbr,TestTimeStamp from ProjectTestData where ProjectKey = '<ProjectKey>' and TestTimeStamp > '<StartDate>' and TestTimeStamp < '<EndDate>' order by ModuleSerialNum,TestTimeStamp DESC"; } sql = sql.Replace("<ProjectKey>", projectkey).Replace("<StartDate>", startdate).Replace("<EndDate>", enddate); var dbret = DBUtility.ExeLocalSqlWithRes(sql, mycache); foreach (var item in dbret) { //public ProjectTestData(string pk, string sn, string wtest, string err, string testtime) var tempdata = new ProjectTestData(projectkey, Convert.ToString(item[0]), Convert.ToString(item[1]), Convert.ToString(item[2]) , Convert.ToString(item[3])); ret.Add(tempdata); } return(ret); }
public static List <ProjectYieldViewModule> GetYieldByBRNum(string pjkey, string BRNUM, ProjectViewModels pvm, Cache mycache, string yieldtype) { var retlist = new List <ProjectYieldViewModule>(); var brs = BRNUM.Split(new string[] { ";", ",", " " }, StringSplitOptions.RemoveEmptyEntries); foreach (var br in brs) { var ret = new ProjectYieldViewModule(); ret.ProjectKey = pjkey; var plist = ProjectTestData.RetrieveProjectTestDataByBR(pjkey, br, yieldtype, false, mycache); var tplist = new List <ProjectTestData>(); var datacount = plist.Count - 1; for (int idx = datacount; idx >= 0; idx--) { tplist.Add(plist[idx]); } RetrieveFirstYield(ret, tplist, pvm); RetrieveCummYield(ret, plist, pvm); if (ret.FirstYields.Count > 0) { ret.XKey = br; retlist.Add(ret); } } return(retlist); }
public static List <ProjectFAViewModules> RetrieveFADataWithSN(string ProjectKey, string SN, Controller ctrl) { var ret = new List <ProjectFAViewModules>(); var pjdata = ProjectTestData.RetrieveProjectTestDataWithSN(100000, ProjectKey, SN); var pjdata1 = BITestData.RetrieveProjectTestDataWithSN(100000, ProjectKey, SN); if (pjdata1.Count > 0) { pjdata.AddRange(pjdata1); } //if (pjdata.Count == 0) //{ // pjdata = BITestData.RetrieveProjectTestDataWithSN(100000, ProjectKey, SN); //} foreach (var d in pjdata) { var im = IssueViewModels.RetrieveIssueByIssueKey(d.DataID, ctrl); if (im != null) { ret.Add(new ProjectFAViewModules(im, d)); } } return(ret); }
public static List <ProjectFAViewModules> RetrieveDoneFAData(string pjkey, Controller ctrl) { var ret = new List <ProjectFAViewModules>(); var issuedict = IssueViewModels.RRetrieveFAByPjkey(pjkey, Resolute.Done, 2000, ctrl); foreach (var d in issuedict) { if (d.CommentList.Count == 2) { bool sameas = false; foreach (var com in d.CommentList) { if (com.Comment.Contains("<p>Issue Same As <a")) { sameas = true; break; } if (com.Comment.Contains("passed") && string.Compare(com.Reporter, "System", true) == 0) { sameas = true; break; } } if (sameas) { continue; } } if (d.Summary.Contains("@Burn-In Step")) { var pjdata = BITestData.RetrieveProjectTestDataByDataID(d.IssueKey); if (pjdata.Count > 0) { var pd = new ProjectTestData(); pd.ModuleSerialNum = pjdata[0].ModuleSerialNum; pd.ErrAbbr = pjdata[0].ErrAbbr; pd.ProjectKey = d.ProjectKey; ret.Add(new ProjectFAViewModules(d, pd)); } } else { var pjdata = ProjectTestData.RetrieveProjectTestData(d.IssueKey); if (pjdata.Count > 0) { ret.Add(new ProjectFAViewModules(d, pjdata[0])); } } } return(ret); }
public static List <ProjectTestData> RetrieveProjectTestData(string DataID) { var ret = new List <ProjectTestData>(); var sql = "select ProjectKey,DataID,ModuleSerialNum,WhichTest,ModuleType,ErrAbbr,TestTimeStamp,TestStation,PN from ProjectTestData where DataID = '<DataID>'"; sql = sql.Replace("<DataID>", DataID); var dbret = DBUtility.ExeLocalSqlWithRes(sql, null); foreach (var item in dbret) { var tempdata = new ProjectTestData(Convert.ToString(item[0]), Convert.ToString(item[1]), Convert.ToString(item[2]) , Convert.ToString(item[3]), Convert.ToString(item[4]), Convert.ToString(item[5]) , Convert.ToString(item[6]), Convert.ToString(item[7]), Convert.ToString(item[8])); ret.Add(tempdata); } return(ret); }
public static List <ProjectTestData> RetrieveProjectTestDataWithSN(int topnum, string ProjectKey, string SN) { //ProjectTestData.PrePareLatestData(ProjectKey); var ret = new List <ProjectTestData>(); var sql = "select top <topnum> ProjectKey,DataID,ModuleSerialNum,WhichTest,ModuleType,ErrAbbr,TestTimeStamp,TestStation,PN from ProjectTestData where ProjectKey = '<ProjectKey>' and ModuleSerialNum = '<ModuleSerialNum>' order by TestTimeStamp DESC"; sql = sql.Replace("<ProjectKey>", ProjectKey).Replace("<topnum>", Convert.ToString(topnum)).Replace("<ModuleSerialNum>", SN); var dbret = DBUtility.ExeLocalSqlWithRes(sql, null); foreach (var item in dbret) { var tempdata = new ProjectTestData(Convert.ToString(item[0]), Convert.ToString(item[1]), Convert.ToString(item[2]) , Convert.ToString(item[3]), Convert.ToString(item[4]), Convert.ToString(item[5]) , Convert.ToString(item[6]), Convert.ToString(item[7]), Convert.ToString(item[8])); ret.Add(tempdata); } return(ret); }
public static List <ProjectTestData> RetrieveProjectTestDataByBR(string projectkey, string br, string yieldtype, bool firstyield, Cache mycache) { var ret = new List <ProjectTestData>(); try { var sql = ""; if (firstyield) { sql = "select ModuleSerialNum,WhichTest,ErrAbbr,TestTimeStamp from ProjectTestData where ProjectKey = '<ProjectKey>' and <COND> order by ModuleSerialNum,TestTimeStamp ASC"; } else { sql = "select ModuleSerialNum,WhichTest,ErrAbbr,TestTimeStamp from ProjectTestData where ProjectKey = '<ProjectKey>' and <COND> order by ModuleSerialNum,TestTimeStamp DESC"; } var cond = ""; if (string.Compare(yieldtype, YIELDTYPE.JO) == 0) { cond = "APPV1 ='" + br + "'"; } else { cond = "APPV1 like '%" + br + "%'"; } sql = sql.Replace("<ProjectKey>", projectkey).Replace("<COND>", cond); var dbret = DBUtility.ExeLocalSqlWithRes(sql, mycache); foreach (var item in dbret) { //public ProjectTestData(string pk, string sn, string wtest, string err, string testtime) var tempdata = new ProjectTestData(projectkey, Convert.ToString(item[0]), Convert.ToString(item[1]), Convert.ToString(item[2]) , Convert.ToString(item[3])); ret.Add(tempdata); } } catch (Exception ex) { } return(ret); }
public static List <ProjectFAViewModules> RetrieveFADataWithErrAbbr(string ProjectKey, string ErrAbbr, Controller ctrl) { var ret = new List <ProjectFAViewModules>(); var pjdata = ProjectTestData.RetrieveProjectTestDataWithErrAbbr(100000, ProjectKey, ErrAbbr); if (pjdata.Count == 0) { pjdata = BITestData.RetrieveProjectTestDataWithErrAbbr(100000, ProjectKey, ErrAbbr); } foreach (var d in pjdata) { var im = IssueViewModels.RetrieveIssueByIssueKey(d.DataID, ctrl); if (im != null && im.Resolution != Resolute.AutoClose) { ret.Add(new ProjectFAViewModules(im, d)); } } return(ret); }
public static void PrePareMESLatestData(string projectkey) { if (UpdatePJLockUsing(projectkey)) { return; } try { var vm = ProjectViewModels.RetrieveOneProject(projectkey); if (vm.TabList.Count > 0 && vm.PNList.Count > 0 && vm.StationList.Count > 0) { string lastupdatetime = ProjectTestData.RetrieveLatestTimeOfLocalProject(projectkey); if (!string.IsNullOrEmpty(lastupdatetime)) { //var vlast = DateTime.Parse(lastupdatetime); //vlast = vlast.AddMinutes(18); //if (vlast < DateTime.Now) //{ MESUtility.UpdateProjectData(vm, lastupdatetime, DateTime.Now.ToString()); //} } else { MESUtility.UpdateProjectData(vm, vm.StartDate.ToString(), DateTime.Now.ToString()); } } ResetUpdatePJLock(projectkey); } catch (Exception ex) { ResetUpdatePJLock(projectkey); } }
public static ProjectYieldViewModule GetYieldByDateRange(string pjkey, string sdate, string edate, ProjectViewModels pvm, Cache mycache) { var ret = new ProjectYieldViewModule(); ret.ProjectKey = pjkey; ret.StartDate = DateTime.Parse(sdate); ret.EndDate = DateTime.Parse(edate); var startdate = DateTime.Parse(DateTime.Parse(sdate).ToString("yyyy-MM-dd") + " 07:30:00").ToString(); var enddate = DateTime.Parse(DateTime.Parse(edate).ToString("yyyy-MM-dd") + " 07:30:00").ToString(); if (startdate == enddate) { return(ret); } var plist = ProjectTestData.RetrieveProjectTestData(pjkey, startdate, DateTime.Parse(enddate).AddYears(5).ToString(), false, mycache); if (plist.Count == 0) { return(ret); } var fdatalist = new List <ProjectTestData>(); var enddatet = DateTime.Parse(enddate); foreach (var item in plist) { if (enddatet >= item.TestTimeStamp) { fdatalist.Add(item); } } //var fdatalist = ProjectTestData.RetrieveProjectTestData(pjkey, startdate, enddate, false); RetrieveRealTimeYield(ret, fdatalist, pvm); var tplist = new List <ProjectTestData>(); var datacount = fdatalist.Count - 1; for (int idx = datacount; idx >= 0; idx--) { tplist.Add(fdatalist[idx]); } //var tplist = ProjectTestData.RetrieveProjectTestData(pjkey, startdate, enddate, true); var snstationdict = ProjectTestData.RetrieveSNBeforeDateWithStation(pjkey, startdate, mycache); var sndict = new Dictionary <string, bool>(); foreach (var kvpair in snstationdict) { var endindex = kvpair.Key.LastIndexOf('-'); var sn = kvpair.Key.Substring(0, endindex); if (!sndict.ContainsKey(sn)) { sndict.Add(sn, true); } } //var sndict = ProjectTestData.RetrieveSNBeforeDate(pjkey, startdate); var validatedict = new Dictionary <string, bool>(); foreach (var item in tplist) { if (!sndict.ContainsKey(item.ModuleSerialNum)) { if (!validatedict.ContainsKey(item.ModuleSerialNum)) { validatedict.Add(item.ModuleSerialNum, true); } } } //var plist = ProjectTestData.RetrieveProjectTestData(pjkey, startdate,DateTime.Parse(enddate).AddYears(5).ToString(), false); var filteredPjData2 = new List <ProjectTestData>(); foreach (var item in plist) { if (validatedict.ContainsKey(item.ModuleSerialNum)) { filteredPjData2.Add(item); } } RetrieveSNYield(ret, filteredPjData2, pvm); //plist = ProjectTestData.RetrieveProjectTestData(pjkey, startdate, enddate, true); //snlist = ProjectTestData.RetrieveSNBeforeDateWithStation(pjkey, startdate); validatedict = new Dictionary <string, bool>(); var filteredPjData = new List <ProjectTestData>(); foreach (var item in tplist) { if (!snstationdict.ContainsKey(item.ModuleSerialNum + "-" + item.WhichTest)) { filteredPjData.Add(item); if (!validatedict.ContainsKey(item.ModuleSerialNum)) { validatedict.Add(item.ModuleSerialNum, true); } } } RetrieveFirstYield(ret, filteredPjData, pvm); //plist = ProjectTestData.RetrieveProjectTestData(pjkey, startdate, enddate, false); filteredPjData2 = new List <ProjectTestData>(); foreach (var item in fdatalist) { if (validatedict.ContainsKey(item.ModuleSerialNum)) { filteredPjData2.Add(item); } } RetrieveCummYield(ret, filteredPjData2, pvm); plist.Clear(); snstationdict.Clear(); sndict.Clear(); validatedict.Clear(); GC.Collect(); GC.WaitForPendingFinalizers(); return(ret); }
public static void UpdateProjectData(ProjectViewModels vm, string starttime, string endtime) { try { if (vm.StationList.Count > 0 && vm.TabList.Count > 0 && vm.PNList.Count > 0) { var failurelist = new List <ProjectTestData>(); var passlist = new List <ProjectTestData>(); bool bondinged = false; if (ProjectTestData.RetrieveLatestTimeOfLocalProject(vm.ProjectKey) != null) { bondinged = true; } var bondingeddatadict = new Dictionary <string, bool>(); if (bondinged) { bondingeddatadict = ProjectTestData.RetrieveAllDataID(vm.ProjectKey); } var sqls = RetrieveSqlFromProjectModel(vm); foreach (var s in sqls) { if (string.IsNullOrEmpty(s.Value)) { continue; } var sndict = new Dictionary <string, bool>(); var sql = s.Value.Replace("<TIMECOND>", "and TestTimeStamp > '" + starttime + "' and TestTimeStamp < '" + endtime + "'"); var dbret = DBUtility.ExeMESSqlWithRes(sql); foreach (var item in dbret) { try { var tempdata = new ProjectTestData(vm.ProjectKey, Convert.ToString(item[0]), Convert.ToString(item[1]) , s.Key, Convert.ToString(item[3]), Convert.ToString(item[4]) , Convert.ToString(item[5]), Convert.ToString(item[6]), Convert.ToString(item[7])); tempdata.JO = Convert.ToString(item[8]); if (!bondinged) { tempdata.StoreProjectTestData(); if (!sndict.ContainsKey(tempdata.ModuleSerialNum)) { sndict.Add(tempdata.ModuleSerialNum, true); if (string.Compare(tempdata.ErrAbbr, "PASS", true) != 0) { var ekey = ProjectErrorViewModels.GetUniqKey(); var pjerror = new ProjectErrorViewModels(vm.ProjectKey, ekey, tempdata.ErrAbbr, "", 1); pjerror.Reporter = "System"; pjerror.Description = ""; pjerror.AddandUpdateProjectError(); failurelist.Add(tempdata); } else { passlist.Add(tempdata); } } } else { if (!bondingeddatadict.ContainsKey(tempdata.DataID)) { bondingeddatadict.Add(tempdata.DataID, true); tempdata.StoreProjectTestData(); if (!sndict.ContainsKey(tempdata.ModuleSerialNum)) { sndict.Add(tempdata.ModuleSerialNum, true); if (string.Compare(tempdata.ErrAbbr, "PASS", true) != 0) { var ekey = ProjectErrorViewModels.GetUniqKey(); var pjerror = new ProjectErrorViewModels(vm.ProjectKey, ekey, tempdata.ErrAbbr, "", 1); pjerror.Reporter = "System"; pjerror.Description = ""; pjerror.AddandUpdateProjectError(); failurelist.Add(tempdata); } else { passlist.Add(tempdata); } } } } } catch (Exception ex) { } } } if (vm.FinishRating < 90 && DateTime.Parse(starttime) != vm.StartDate) { //use latest failure cover previous failure foreach (var item in failurelist) { IssueViewModels.CloseIssueAutomaticllyWithFailedSN(item.ProjectKey, item.ModuleSerialNum, item.WhichTest, item.TestStation, item.TestTimeStamp.ToString("yyyy-MM-dd hh:mm:ss")); } CreateSystemIssues(failurelist); } if (vm.FinishRating < 90 && DateTime.Parse(starttime) != vm.StartDate) { //use pass sn cover previous failure foreach (var item in passlist) { IssueViewModels.CloseIssueAutomaticlly(item.ProjectKey, item.ModuleSerialNum, item.WhichTest, item.TestStation, item.TestTimeStamp.ToString("yyyy-MM-dd hh:mm:ss")); } } } } catch (Exception ex) { } }
public static void StartProjectBonding(ProjectViewModels vm) { try { if (ProjectTestData.UpdatePJLockUsing(vm.ProjectKey)) { return; } if (vm.StationList.Count > 0 && vm.TabList.Count > 0 && vm.PNList.Count > 0) { var failurelist = new List <ProjectTestData>(); bool bondinged = false; if (ProjectTestData.RetrieveLatestTimeOfLocalProject(vm.ProjectKey) != null) { bondinged = true; } var bondingeddatadict = new Dictionary <string, bool>(); if (bondinged) { bondingeddatadict = ProjectTestData.RetrieveAllDataID(vm.ProjectKey); } var sqls = RetrieveSqlFromProjectModel(vm); foreach (var s in sqls) { if (string.IsNullOrEmpty(s.Value)) { continue; } var sndict = new Dictionary <string, bool>(); var sql = s.Value.Replace("<TIMECOND>", "and TestTimeStamp > '" + vm.StartDate.ToString() + "' and TestTimeStamp < '" + DateTime.Now.ToString() + "'"); var dbret = DBUtility.ExeMESSqlWithRes(sql); foreach (var item in dbret) { try { var tempdata = new ProjectTestData(vm.ProjectKey, Convert.ToString(item[0]), Convert.ToString(item[1]) , s.Key, Convert.ToString(item[3]), Convert.ToString(item[4]) , Convert.ToString(item[5]), Convert.ToString(item[6]), Convert.ToString(item[7])); tempdata.JO = Convert.ToString(item[8]); if (!bondinged) { tempdata.StoreProjectTestData(); if (!sndict.ContainsKey(tempdata.ModuleSerialNum)) { sndict.Add(tempdata.ModuleSerialNum, true); if (string.Compare(tempdata.ErrAbbr, "PASS", true) != 0) { var ekey = ProjectErrorViewModels.GetUniqKey(); var pjerror = new ProjectErrorViewModels(vm.ProjectKey, ekey, tempdata.ErrAbbr, "", 1); pjerror.Reporter = "System"; pjerror.Description = ""; pjerror.AddandUpdateProjectError(); failurelist.Add(tempdata); } } } else { if (!bondingeddatadict.ContainsKey(tempdata.DataID)) { bondingeddatadict.Add(tempdata.DataID, true); tempdata.StoreProjectTestData(); if (!sndict.ContainsKey(tempdata.ModuleSerialNum)) { sndict.Add(tempdata.ModuleSerialNum, true); if (string.Compare(tempdata.ErrAbbr, "PASS", true) != 0) { var ekey = ProjectErrorViewModels.GetUniqKey(); var pjerror = new ProjectErrorViewModels(vm.ProjectKey, ekey, tempdata.ErrAbbr, "", 1); pjerror.Reporter = "System"; pjerror.Description = ""; pjerror.AddandUpdateProjectError(); failurelist.Add(tempdata); } } } } } catch (Exception ex) { } } } //if (vm.FinishRating < 90) //{ // CreateSystemIssues(failurelist); //} } ProjectTestData.ResetUpdatePJLock(vm.ProjectKey); } catch (Exception ex) { ProjectTestData.ResetUpdatePJLock(vm.ProjectKey); } }
public static List <ProjectFAViewModules> RetrievePendingFAData(string pjkey, Controller ctrl) { var ret = new List <ProjectFAViewModules>(); var issuedict = IssueViewModels.RRetrieveFAByPjkey(pjkey, Resolute.Working, 50, ctrl); var issuedict2 = IssueViewModels.RRetrieveFAByPjkey(pjkey, Resolute.Pending, 500, ctrl); issuedict.AddRange(issuedict2); var bisndict = new Dictionary <string, string>(); var fasndict = new Dictionary <string, string>(); foreach (var d in issuedict) { if (d.Summary.Contains("@Burn-In Step")) { var sn = ""; var pjdata = BITestData.RetrieveProjectTestDataByDataID(d.IssueKey); if (pjdata.Count > 0) { sn = pjdata[0].ModuleSerialNum; } if (!string.IsNullOrEmpty(sn) && !bisndict.ContainsKey(sn)) { bisndict.Add(sn, d.ReportDate.ToString()); var pd = new ProjectTestData(); pd.ModuleSerialNum = sn; pd.ErrAbbr = pjdata[0].ErrAbbr; pd.ProjectKey = d.ProjectKey; ret.Add(new ProjectFAViewModules(d, pd)); } else if (!string.IsNullOrEmpty(sn) && bisndict.ContainsKey(sn)) { //close automaticlly IssueViewModels.CloseDupBIIssueAutomaticlly(d.ProjectKey, sn, bisndict[sn]); } } else { var sn = ""; var pjdata = ProjectTestData.RetrieveProjectTestData(d.IssueKey); if (pjdata.Count > 0) { sn = pjdata[0].ModuleSerialNum; } if (!string.IsNullOrEmpty(sn) && !fasndict.ContainsKey(sn)) { fasndict.Add(sn, d.ReportDate.ToString()); ret.Add(new ProjectFAViewModules(d, pjdata[0])); } else if (!string.IsNullOrEmpty(sn) && fasndict.ContainsKey(sn)) { //close automaticlly IssueViewModels.CloseDupIssueAutomaticlly(d.ProjectKey, sn, fasndict[sn]); } } } return(ret); }
public ProjectFAViewModules(IssueViewModels im, ProjectTestData pd) { IssueData = im; TestData = pd; }
public static void StartProjectBonding(ProjectViewModels vm) { try { if (ProjectTestData.UpdatePJLockUsing(vm.ProjectKey)) { return; } if (vm.MDIDList.Count > 0 && vm.SumDatasetList.Count > 0) { var dsdict = new Dictionary <string, bool>(); foreach (var item in vm.SumDatasetList) { dsdict.Add(item.Station, true); } var failurelist = new List <ProjectTestData>(); //(c.MODEL_ID like 'FTLX6871%' or c.MODEL_ID like 'FTLX6872%' or c.MODEL_ID like 'FTLX6672%') var mdcond = "("; foreach (var w in vm.MDIDList) { mdcond = mdcond + "c.MODEL_ID like '" + w.Pn.Trim() + "%' or "; } mdcond = mdcond.Substring(0, mdcond.Length - 4) + ")"; var s = "SELECT a.MFR_SN,d.DATASET_NAME,c.FAMILY,d.STATUS,d.END_TIME,d.STATION,a.MFR_PN,d.ROUTE_ID FROM PARTS a INNER JOIN ROUTES b ON a.OPT_INDEX = b.PART_INDEX INNER JOIN BOM_CONTEXT_ID c ON c.BOM_CONTEXT_ID = b.BOM_CONTEXT_ID INNER JOIN DATASETS d ON b.ROUTE_ID = d.ROUTE_ID WHERE <mdcond> and d.END_TIME > '<TIMECOND>' ORDER BY d.ROUTE_ID,d.END_TIME DESC"; var sndict = new Dictionary <string, bool>(); var sql = s.Replace("<TIMECOND>", vm.StartDate.ToString("yyyyMMddhhmmss")).Replace("<mdcond>", mdcond); var currentroutid = ""; var currentroutedsnames = new List <ProjectStation>(); var pjdatalist = new List <ProjectTestData>(); var dbret = DBUtility.ExeATESqlWithRes(sql); foreach (var item in dbret) { try { var status = Convert.ToString(item[3]); var ds = Convert.ToString(item[1]); var temprouteid = Convert.ToString(item[7]); if (string.Compare(currentroutid, temprouteid) != 0) { currentroutid = temprouteid; if (pjdatalist.Count > 0) { FindErrAbbr(pjdatalist, currentroutedsnames, dsdict); foreach (var pjdata in pjdatalist) { pjdata.StoreProjectTestData(); } if (string.Compare(pjdatalist[0].ErrAbbr, "PASS", true) != 0) { if (!sndict.ContainsKey(pjdatalist[0].ModuleSerialNum)) { sndict.Add(pjdatalist[0].ModuleSerialNum, true); failurelist.Add(pjdatalist[0]); var ekey = ProjectErrorViewModels.GetUniqKey(); var pjerror = new ProjectErrorViewModels(vm.ProjectKey, ekey, pjdatalist[0].ErrAbbr, "", 1); pjerror.Reporter = "System"; pjerror.Description = ""; pjerror.AddandUpdateProjectError(); } } else { if (!sndict.ContainsKey(pjdatalist[0].ModuleSerialNum)) { sndict.Add(pjdatalist[0].ModuleSerialNum, true); } } }//end if (tempdata != null) pjdatalist.Clear(); currentroutedsnames.Clear(); currentroutedsnames.Add(new ProjectStation(ds, status)); } else //if (tempdata != null) { currentroutedsnames.Add(new ProjectStation(ds, status)); } if (dsdict.ContainsKey(ds)) { var spdatetime = Convert.ToString(item[4]); var stdtime = spdatetime.Substring(0, 4) + "-" + spdatetime.Substring(4, 2) + "-" + spdatetime.Substring(6, 2) + " " + spdatetime.Substring(8, 2) + ":" + spdatetime.Substring(10, 2) + ":" + spdatetime.Substring(12, 2); //(string pk, string did, string sn, string wtest, string mt, string err, string testtime, string station, string p) var tempdata = new ProjectTestData(vm.ProjectKey, GetUniqKey(), Convert.ToString(item[0]) , Convert.ToString(item[1]), Convert.ToString(item[2]), Convert.ToString(item[3]).ToUpper() , stdtime, Convert.ToString(item[5]), Convert.ToString(item[6])); pjdatalist.Add(tempdata); } } catch (Exception ex) { } } //end for each if (pjdatalist.Count > 0) { FindErrAbbr(pjdatalist, currentroutedsnames, dsdict); foreach (var pjdata in pjdatalist) { pjdata.StoreProjectTestData(); } if (string.Compare(pjdatalist[0].ErrAbbr, "PASS", true) != 0) { if (!sndict.ContainsKey(pjdatalist[0].ModuleSerialNum)) { sndict.Add(pjdatalist[0].ModuleSerialNum, true); failurelist.Add(pjdatalist[0]); var ekey = ProjectErrorViewModels.GetUniqKey(); var pjerror = new ProjectErrorViewModels(vm.ProjectKey, ekey, pjdatalist[0].ErrAbbr, "", 1); pjerror.Reporter = "System"; pjerror.Description = ""; pjerror.AddandUpdateProjectError(); } } else { if (!sndict.ContainsKey(pjdatalist[0].ModuleSerialNum)) { sndict.Add(pjdatalist[0].ModuleSerialNum, true); } } } //end if (tempdata != null) } // if model list > 0 ProjectTestData.ResetUpdatePJLock(vm.ProjectKey); } catch (Exception ex) { ProjectTestData.ResetUpdatePJLock(vm.ProjectKey); } }