public CollectionResult <Doctor> GetDoctorsByParams(DoctorsFilterParams parameters) { var doctors = GetAllDoctors(); FillDoctorQueryParams(parameters); doctors = doctors.Where(parameters.Expression); var totalCount = doctors.Count(); var result = doctors .OrderBy(x => x.LastName) .Skip(parameters.Skip) .Take(parameters.Take) .AsNoTracking() .ToList(); var companiesResult = new CollectionResult <Doctor> { Collection = result, TotalCount = totalCount }; return(companiesResult); }
public CollectionResult <DoctorDto> GetDoctorsByParams(DoctorsFilterParams filterParams) { var doctors = _unitOfWork.DoctorRepository.GetDoctorsByParams(filterParams); var result = new CollectionResult <DoctorDto> { TotalCount = doctors.TotalCount, Collection = AutoMapper.Mapper.Map <IEnumerable <Doctor>, List <DoctorDto> >(doctors.Collection) }; return(result); }
public IActionResult GetDoctors([FromBody] DoctorsFilterParams filterParams) { var userModel = User.GetUserModel(); if (userModel.FacilityId.HasValue) { filterParams.FacilityId = userModel.FacilityId.Value; } var doctors = _doctorService.GetDoctorsByParams(filterParams); return(Json(JsonResultData.Success(doctors))); }
private void FillDoctorQueryParams(DoctorsFilterParams filterParams) { var predicate = PredicateBuilder.New <Doctor>(true); if (!string.IsNullOrEmpty(filterParams.Term)) { predicate = predicate.And(t => t.LastName.Contains(filterParams.Term) || t.FirstName.Contains(filterParams.Term)); } if (filterParams.FacilityId.HasValue) { predicate = predicate.And(t => t.Department.FacilityId == filterParams.FacilityId.Value); } if (filterParams.ResidentId.HasValue) { predicate = predicate.And(t => t.Residents.Any(r => r.ResidentId == filterParams.ResidentId.Value)); } filterParams.Expression = predicate; }