public async Task <List <OutPut_ContactDto> > GetContactList(ContactSelectDto selectmodel) { var templist = from contact in dbContext.Contacts join phones in dbContext.ContactPhoneNumbers on contact.Id equals phones.ContactId where ( (string.IsNullOrEmpty(selectmodel.FullName) || ((contact.FirstName + " " + contact.LastName).Contains(selectmodel.FullName))) && (string.IsNullOrEmpty(selectmodel.PhoneNumber) || (phones.PhoneNumber.Contains(selectmodel.PhoneNumber))) ) group contact by contact.Id into ids select ids.Key; var ides = templist.ToList(); var Query = dbContext.Contacts.Where(x => ides.Contains(x.Id)) .Select(x => new OutPut_ContactDto() { Id = x.Id, FirstName = x.FirstName, LastName = x.LastName, BirthDate = x.BirthDate, CompanyName = x.CompanyName, WebSite = x.WebSite, Address = x.Address, EmailAddress = x.EmailAddress, Groups = dbContext.ContactGroups.Include(y => y.Group) .Where(y => y.ContactId == x.Id) .Select(y => new OutPut_GroupDto() { Id = y.Id, GroupName = y.Group.GroupName }).ToList(), ContactPhoneNumbers = dbContext.ContactPhoneNumbers.Include(y => y.PhoneNymberType) .Where(y => y.ContactId == x.Id) .Select(y => new OutPut_ContactPhoneNumbersDto() { Id = y.Id, PhoneNumberTypeName = y.PhoneNymberType.PhoneNymberTypeName, PhoneNumber = y.PhoneNumber, PhoneNumberTypeId = y.PhoneNumberTypeId }).ToList() }) .AsNoTracking(); if (selectmodel.ShowPagingView) { var lst = await Query.Skip(selectmodel.Page *selectmodel.PageSize) .Take(selectmodel.PageSize) .ToListAsync(); return(lst); } else { var lst = await Query.ToListAsync(); return(lst); } // return new List<OutPut_ContactDto>(); }
public async Task <IActionResult> SearchContact([FromQuery] ContactSelectDto searchitems) { searchitems.Page--; var resultlist = await contactService.SearchContact(searchitems); var Result = new BaseSelectOutPutDto <OutPut_ContactDto>() { IsSuccess = true, ResultList = resultlist }; return(Ok(Result)); }
public async Task <List <OutPut_ContactDto> > SearchContact(ContactSelectDto selectmodel) { return(await contactRepository.GetContactList(selectmodel)); }