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

原创粉丝点击