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 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 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); }