public IList<SearchAgentResult> SearchAgentByCriterial(AgentCriterial criterial) { List<SearchAgentResult> listResult = new List<SearchAgentResult>(); if (criterial != null) { var listAgent = (agentRepository.Get.Where(c=>!c.IsDeleted) .Include(m => m.Member) .Where(c => (c.FirstName.Contains(criterial.FirstName) || String.IsNullOrEmpty(criterial.FirstName)) && (c.LastName.Contains(criterial.LastName) || String.IsNullOrEmpty(criterial.LastName)) && (c.ChaufferLic.Equals(criterial.ChaufferLic) || String.IsNullOrEmpty(criterial.ChaufferLic)))).ToList(); var listMedallion = medallionRepository.Get .Where(c => c.MedallionNumber.Contains(criterial.Medallion) || String.IsNullOrEmpty(criterial.Medallion)).ToList(); listResult = (from agent in listAgent join medallion in listMedallion on agent.MemberId equals medallion.MemberId into B from b in B.DefaultIfEmpty() select new SearchAgentResult() { AccountNumber = agent.Member != null ? agent.Member.AccountNumber : string.Empty, Id = agent.Id, ChaufferLic = agent.ChaufferLic, FirstName = agent.FirstName, LastName = agent.LastName, MedallionId = b != null ? b.Id : Guid.Empty, MedallionNumber = b != null ? b.MedallionNumber : string.Empty, MemberId = agent.MemberId.HasValue?agent.MemberId.Value:Guid.Empty }).Distinct().ToList(); listResult = (from a in listResult group a by a.Id into g select new SearchAgentResult() { AccountNumber = g != null ? g.First().AccountNumber : string.Empty, Id = g != null ? g.First(). Id : Guid.Empty, ChaufferLic = g != null ? g.First().ChaufferLic : string.Empty, FirstName = g != null ? g.First().FirstName : string.Empty, LastName = g != null ? g.First().LastName : string.Empty, MedallionId = g != null ? g.First().MedallionId : Guid.Empty, MedallionNumber = g != null ? g.First().MedallionNumber : string.Empty, MemberId = g != null ? g.First().MemberId : Guid.Empty }).ToList(); } return listResult; }
public ActionResult SearchAgentByCriterial(AgentCriterial criterial) { var listResult = agentService.SearchAgentByCriterial(criterial); return Json(listResult, JsonRequestBehavior.AllowGet); }