Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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)));
        }
Esempio n. 4
0
        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;
        }