Linq 4pm superadmin
来源:互联网 发布:dag 软件 编辑:程序博客网 时间:2024/06/11 13:50
protected void showAgent() { using(var dc = new DAL.findahome.findahomeDataContext()) { //tmp bool var for judging in advance bool userempty = idUser.Equals(""); bool agencyempty = queryagencyid.Equals(""); bool officeidempty = queryofficeid.Equals(""); bool agentnameempty = queryagentname.Equals(""); bool startempty = startwith.Equals(""); //multi-keyword for officename var officekeywords = queryagentname.Split(' '); string[] keywordAr = { "", "", "" }; for (int i = 0; i < 3; i++) { try { keywordAr[i] = officekeywords[i]; } catch { } } //Search with linq var TBsearch = from tb in dc.Agents join tb1 in dc.AgencyOffices on tb.idOffice equals tb1.idOffice join tb2 in dc.Agencies on tb1.idAgency equals tb2.idAgency join tb3 in dc.Users on tb.idUser equals tb3.idUser join tb4 in dc.AgentContactFrequencies on tb.idAgent equals tb4.AgentId where (agencyempty || tb2.idAgency.ToString().Equals(queryagencyid)) && (userempty || tb.idUser.ToString().Equals(idUser)) && (officeidempty || tb.idOffice.ToString().Equals(queryofficeid)) && (agentnameempty || ( (tb3.UserName.Contains(keywordAr[0])) && (tb3.UserName.Contains(keywordAr[1])) && (tb3.UserName.Contains(keywordAr[2])) ) ||( tb3.UserFName.Contains(keywordAr[0]) && tb3.UserFName.Contains(keywordAr[1]) && tb3.UserFName.Contains(keywordAr[2]) ) || ( tb3.UserSName.Contains(keywordAr[0]) && tb3.UserSName.Contains(keywordAr[1]) && tb3.UserSName.Contains(keywordAr[2]) ) ) && (startempty || tb3.UserName.StartsWith(startwith)) select new { tb.idOffice, tb.idUser, tb.idAgent, tb1.OfficeName, tb3.UserName, tb3.UserPwd, tb3.UserFName, tb3.UserSName, tb4.LastSent, tb4.Frequency, UName = tb.User.Name, tb2.idAgency, }; //Count / Paging / display result statisitcs int oldCount = TBsearch.Distinct().Count(); LBResultNum.Text = ((oldCount == 0) ? ("Sorry, no results for your requirement.") : ("Number of results: " + oldCount.ToString())); if (page <= 0) { prev.Visible = false; prev_bottom.Visible = false; } else { prev.Visible = true; prev_bottom.Visible = true; } if (page == ((oldCount - 1) / showResultNum)) { next.Visible = false; next_bottom.Visible = false; } else { next.Visible = true; next_bottom.Visible = true; } if (oldCount == 0) return; TBsearch = TBsearch.Distinct().OrderBy(c => c.OfficeName).Skip(page * showResultNum).Take(showResultNum); LBResultNum.Text += " " + "[" + (page * showResultNum) + " ~ " + (page * showResultNum + TBsearch.Count()) + "]."; LBResultNum.Text += "<br/>"; LBResultNum.Text += "<br/>"; //print out html tables for results var resultList = TBsearch.ToList(); String listStr = ""; listStr += "<table class='resultTB' cellpadding='0' cellspacing='0'>"; listStr += "<tr>"; for (int i = 0; i < colsAgent.Count(); i++) { listStr += "<td class='resultTBHeader' style='width:" + TBwidthAgent[i] + "px'>"; listStr += colsAgent[i]; listStr += "</td>"; } listStr += "</tr>"; for (int i = 0; i < resultList.Count(); i++) { int Uid = Convert.ToInt32(resultList.ElementAt(i).idUser); listStr += "<tr class='resultTR" + i % 2 + "'>"; String styleClass = "resultTBBody"; listStr += "<td class='" + styleClass + "'><a class='showAslink' onclick=\"popupDetailOfUser(" + Uid + ")\">AUID[" + Uid + "]</a></td>"; listStr += "<td class='" + styleClass + "'>" + resultList.ElementAt(i).UserFName + resultList.ElementAt(i).UserSName + "</td>"; listStr += "<td class='" + styleClass + "'>" + resultList.ElementAt(i).UserName + "</td>"; listStr += "<td class='" + styleClass + "'>" + resultList.ElementAt(i).UserPwd + "</td>"; listStr += "<td class='" + styleClass + "'>" + resultList.ElementAt(i).OfficeName + "</td>"; if (resultList.ElementAt(i).Frequency == -1) { listStr += "<td class='" + styleClass + "'> Closed </td>"; } else { listStr += "<td class='" + styleClass + "'>" + resultList.ElementAt(i).Frequency + " Day</td>"; } listStr += "<td class='" + styleClass + "'>" + resultList.ElementAt(i).LastSent + "</td>"; listStr += "</tr>"; } listStr += "</table>"; listShowList.InnerHtml = listStr; } }