Skip to main content

C# dynamic linq query

In to Linq query, we can use dynamic query:

  public List<Insplan> GetInsplanLookupList(string planName = null, string binNo = null, string procCtrl = null)  
     {  
       var query = (from i in _db.insplan  
              orderby i.cinsplanname ascending  
              select i).AsQueryable();  
       if (!string.IsNullOrWhiteSpace(planName))  
         query = query.Where(x => x.cinsplanname.StartsWith(planName.Trim()));  
       if (!string.IsNullOrWhiteSpace(binNo))  
         query = query.Where(x => x.cbinno.StartsWith(binNo.Trim()));  
       if (!string.IsNullOrWhiteSpace(procCtrl))  
         query = query.Where(x => x.cprocctrlno.StartsWith(procCtrl.Trim()));  
       return (from q in query  
           join ic in _db.inscomp on q.inscompid_FK equals ic.inscompid_PK into ic_joined  
           from ic in ic_joined.DefaultIfEmpty()  
           join cl in _db.clinic on q.clinicid_FK equals cl.clinicid_PK into cl_joined  
           from cl in cl_joined.DefaultIfEmpty()  
           join b in _db.insbiller on q.insbillerid_FK equals b.insbillerid_PK into gj  
           from sub in gj.DefaultIfEmpty()  
           select new Insplan  
           {  
             insplanid_PK = q.insplanid_PK,  
             cinsplanname = q.cinsplanname,  
             cbinno = q.cbinno,  
             cpharmacyno = q.cpharmacyno,  
             cprocctrlno = q.cprocctrlno,  
             ncpdpversion_FK = q.ncpdpversion_FK,  
             cinscompname = ic.cinscompname,  
             cinsbillername = sub.cinsbillername,  
             Inscomp = (ic != null ? new Inscomp { cinscompname = ic.cinscompname, inscompid_PK = ic.inscompid_PK } : null),  
             Clinic = (cl != null ? new Clinic { clinicid_PK = cl.clinicid_PK, cclinicname = cl.cclinicname } : null)  
           }).Take(20).ToList();  
     }  


Comments

Popular posts from this blog

C# run powershell script as administrator

Recently I was fetching a problem that I need to run a PowerShell script that will change TFS user Display name and SID. I was trying to run that script from C# that was not working due to TFS security update and TLS certificate. Using this code block I resolve the Issue. var newProcessInfo = new System.Diagnostics.ProcessStartInfo(); newProcessInfo.FileName = @"C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe"; newProcessInfo.Verb = "runas"; // Define Run as administrator newProcessInfo.Arguments = script; //Define your powershell script newProcessInfo.UseShellExecute = false; newProcessInfo.RedirectStandardOutput = true; // This will enable to read Powershell run output newProcessInfo.RedirectStandardError = true; Process proces = System.Diagnostics.Process.Start(newProcessInfo); proces.WaitForExit(); // I want to read the output string from powershell window StringBuilder output = new StringBuilder(); output.Append("Started"); while (!proces.St

ASP.NET MVC razor SAP Crystal report

Crete a new project: Add a aspx Master Page Create a new folder Reports and 2 sub folder crystal & crystalviewer Now add a web form page in crystalviewer  folder. Add the master page namespace in your web form page. MasterPageFile ="~/Views/Shared/ReportSite.Master" Replace your web form by this code < asp : Content ID ="Content1" ContentPlaceHolderID ="ContentPlaceHolder1" runat ="server">      </ asp : Content > Now go to design mode of your web form drag & drop the crystal report viewer in your web form. After that your page will be look look like this. Replace the code: < CR : CrystalReportViewer ID ="EmployeeList" runat ="server"   HasCrystalLogo ="False"     AutoDataBind ="True"   Height ="50px"   EnableParameterPrompt ="false" EnableDatabaseLogonPrompt

mvc razor textboxfor change event change another textboxfor value

Based on value of Weight, Rate , CNF & AWB it will change the value of Freight , TTLCNF anfd TTLFright . Freight= Weight*Rate; TTLCNF  = Weight*CNF; TTLFright=  Freight+ TTLCNF  + AWB; @Html.TextBoxFor(model => model.Weight, new { onChange="return GetWight(this);"}) @Html.TextBoxFor(model => model.Rate, new { onChange="return GetWight(this);"})/Kg @Html.TextBoxFor(model => model.Freight, new {disabled = "disabled" , @readonly = "readonly" ,onChange="return GetTTLFright(this);"}) @Html.TextBoxFor(model => model.CNFPK, new { onChange="return GetCNFPK(this);"}) @Html.TextBoxFor(model => model.TTLCNF, new {disabled = "disabled" , @readonly = "readonly",onChange="return GetTTLFright(this);" }) @Html.TextBoxFor(model => model.AWB, new { onChange="return GetTTLFright(this);"}) and script <script> function GetW