public async Task <IActionResult> OnPostSearch([FromBody] SearchPersonQuery searchQuery) { try { searchQuery.OrganizationId = await _currentUser.GetUserOrganizationID(); List <SearchedPersonModel> SearchedResult = new List <SearchedPersonModel>(); SearchedResult = await Mediator.Send(searchQuery); return(new JsonResult(new UIResult() { Data = new { list = SearchedResult }, Status = UIStatus.SuccessWithoutMessage, Text = string.Empty, Description = string.Empty })); } catch (Exception ex) { return(new JsonResult(CustomMessages.FabricateException(ex))); } }
public async Task <ApiDataResponse <PaginatedList <PersonDTO> > > GetAllPersons([FromQuery] PageQueryParameters pageQueryParameters = null, [FromQuery] SearchPersonQuery personQuery = null) { var paginatedModel = PaginatedModelPersonToQueryList.Instance.MapBack(pageQueryParameters); var filter = PersonFilterToSearchMapper.Instance.MapBack(personQuery); var allPersons = await personService.GetAllPersons(pageQueryParameters.PageNumber, pageQueryParameters.PageSize, filter); var persons = new PaginatedList <PersonDTO>(allPersons); return(new ApiDataResponse <PaginatedList <PersonDTO> >(persons)); }
public async Task <List <SearchedPersonModel> > SearchPerson(SearchPersonQuery request) { List <SearchedPersonModel> searchResult = new List <SearchedPersonModel>(); // If specific person is required. Searched based on Id or HrCode if (request.Id != null) { searchResult = await(from p in _context.Person join g in _context.Gender on p.GenderId equals g.ID into pg from resultPG in pg.DefaultIfEmpty() join b in _context.BloodGroup on p.BloodGroupId equals b.Id into pb from resultPB in pb.DefaultIfEmpty() join e in _context.Ethnicity on p.EthnicityId equals e.Id into pe from resultPE in pe.DefaultIfEmpty() join r in _context.Religion on p.ReligionId equals r.Id into pr from resultPR in pr.DefaultIfEmpty() join l in _context.Location on p.BirthLocationId equals l.Id into pl from resultPL in pl.DefaultIfEmpty() join m in _context.MaritalStatus on p.MaritalStatusId equals m.Id into pm from resultPM in pm.DefaultIfEmpty() join dt in _context.DocumentTypes on p.DocumentTypeId equals dt.Id into pdt from resultPDT in pdt.DefaultIfEmpty() where p.Id == request.Id select new SearchedPersonModel { FirstName = p.FirstName, LastName = p.LastName, FirstNameEng = p.FirstNameEng, LastNameEng = p.LastNameEng, FatherName = p.FatherName, FatherNameEng = p.FatherNameEng, GenderId = p.GenderId, DateOfBirth = p.DateOfBirth, GrandFatherName = p.GrandFatherName, GrandFatherNameEng = p.GrandFatherNameEng, Id = p.Id, DocumentTypeId = p.DocumentTypeId, Nid = p.Nid, PhotoPath = p.PhotoPath, Hrcode = p.Hrcode, BirthLocationId = p.BirthLocationId, MaritalStatusId = p.MaritalStatusId, ReligionId = p.ReligionId, EthnicityId = p.EthnicityId, Comments = p.Comments, BloodGroupId = p.BloodGroupId, GenderText = resultPG.Dari, BloodGroupText = resultPB.Name, EthnicityText = resultPE.Name, ReligionText = resultPR.Name, BirthLocationText = resultPL.Name, MaritalStatusText = resultPM.Name, DocumentTypeText = resultPDT.Name, NIDText = ConvertJSONToString(p.Nid, resultPDT.Name) ?? "درج نگردیده", DoBText = PersianLibrary.PersianDate.GetFormatedString(p.DateOfBirth) }).OrderBy(x => x.Id).ToListAsync(); } // Else search based on search terms else if (request.OrganizationId != null) { searchResult = await(from p in _context.Person join g in _context.Gender on p.GenderId equals g.ID into pg from resultPG in pg.DefaultIfEmpty() join b in _context.BloodGroup on p.BloodGroupId equals b.Id into pb from resultPB in pb.DefaultIfEmpty() join e in _context.Ethnicity on p.EthnicityId equals e.Id into pe from resultPE in pe.DefaultIfEmpty() join r in _context.Religion on p.ReligionId equals r.Id into pr from resultPR in pr.DefaultIfEmpty() join l in _context.Location on p.BirthLocationId equals l.Id into pl from resultPL in pl.DefaultIfEmpty() join m in _context.MaritalStatus on p.MaritalStatusId equals m.Id into pm from resultPM in pm.DefaultIfEmpty() join dt in _context.DocumentTypes on p.DocumentTypeId equals dt.Id into pdt from resultPDT in pdt.DefaultIfEmpty() where (p.FirstName.Contains(request.FirstName) || string.IsNullOrEmpty(request.FirstName)) && (p.LastName.Contains(request.LastName) || string.IsNullOrEmpty(request.LastName)) && (p.FatherName.Contains(request.FatherName) || string.IsNullOrEmpty(request.FatherName)) && (p.GrandFatherName.Contains(request.GrandFatherName) || string.IsNullOrEmpty(request.GrandFatherName)) && (p.FirstNameEng.Contains(request.FirstNameEng) || string.IsNullOrEmpty(request.FirstNameEng)) && (p.LastNameEng.Contains(request.LastNameEng) || string.IsNullOrEmpty(request.LastNameEng)) && (p.GrandFatherNameEng.Contains(request.GrandFatherNameEng) || string.IsNullOrEmpty(request.GrandFatherNameEng)) && (p.OrganizationId == request.OrganizationId) select new SearchedPersonModel { FirstName = p.FirstName, LastName = p.LastName, FirstNameEng = p.FirstNameEng, LastNameEng = p.LastNameEng, FatherName = p.FatherName, FatherNameEng = p.FatherNameEng, GenderId = p.GenderId, DateOfBirth = p.DateOfBirth, GrandFatherName = p.GrandFatherName, GrandFatherNameEng = p.GrandFatherNameEng, Id = p.Id, DocumentTypeId = p.DocumentTypeId, Hrcode = p.Hrcode, BirthLocationId = p.BirthLocationId, MaritalStatusId = p.MaritalStatusId, ReligionId = p.ReligionId, EthnicityId = p.EthnicityId, Comments = p.Comments, BloodGroupId = p.BloodGroupId, Nid = p.Nid, PhotoPath = p.PhotoPath, GenderText = resultPG.Dari, BloodGroupText = resultPB.Name, EthnicityText = resultPE.Name, ReligionText = resultPR.Name, BirthLocationText = resultPL.Name, MaritalStatusText = resultPM.Name, DocumentTypeText = resultPDT.Name, NIDText = ConvertJSONToString(p.Nid, resultPDT.Name) ?? "درج نگردیده", DoBText = PersianLibrary.PersianDate.GetFormatedString(p.DateOfBirth) }).OrderBy(x => x.Id).ToListAsync(); } else { searchResult = await(from p in _context.Person join g in _context.Gender on p.GenderId equals g.ID into pg from resultPG in pg.DefaultIfEmpty() join b in _context.BloodGroup on p.BloodGroupId equals b.Id into pb from resultPB in pb.DefaultIfEmpty() join e in _context.Ethnicity on p.EthnicityId equals e.Id into pe from resultPE in pe.DefaultIfEmpty() join r in _context.Religion on p.ReligionId equals r.Id into pr from resultPR in pr.DefaultIfEmpty() join l in _context.Location on p.BirthLocationId equals l.Id into pl from resultPL in pl.DefaultIfEmpty() join m in _context.MaritalStatus on p.MaritalStatusId equals m.Id into pm from resultPM in pm.DefaultIfEmpty() join dt in _context.DocumentTypes on p.DocumentTypeId equals dt.Id into pdt from resultPDT in pdt.DefaultIfEmpty() select new SearchedPersonModel { FirstName = p.FirstName, LastName = p.LastName, FirstNameEng = p.FirstNameEng, LastNameEng = p.LastNameEng, FatherName = p.FatherName, FatherNameEng = p.FatherNameEng, GenderId = p.GenderId, DateOfBirth = p.DateOfBirth, GrandFatherName = p.GrandFatherName, GrandFatherNameEng = p.GrandFatherNameEng, Id = p.Id, DocumentTypeId = p.DocumentTypeId, Hrcode = p.Hrcode, BirthLocationId = p.BirthLocationId, MaritalStatusId = p.MaritalStatusId, ReligionId = p.ReligionId, EthnicityId = p.EthnicityId, Comments = p.Comments, BloodGroupId = p.BloodGroupId, Nid = p.Nid, PhotoPath = p.PhotoPath, GenderText = resultPG.Dari, BloodGroupText = resultPB.Name, EthnicityText = resultPE.Name, ReligionText = resultPR.Name, BirthLocationText = resultPL.Name, MaritalStatusText = resultPM.Name, DocumentTypeText = resultPDT.Name, NIDText = ConvertJSONToString(p.Nid, resultPDT.Name) ?? "درج نگردیده", DoBText = PersianLibrary.PersianDate.GetFormatedString(p.DateOfBirth) }).OrderBy(x => x.Id).Take((request.NoOfRecords == 0) ? 100 : request.NoOfRecords).ToListAsync(); } return(searchResult); }