public async Task <ServiceUserSearchResponse> GetServiceUsers(ServiceUserQueryRequest request)
        {
            var serviceUserInformation = await _residentsService.SearchServiceUserInformationAsync(request)
                                         .EnsureExistsAsync($"service user with hackney Id : {request.HackneyId} not found");

            var hackneyIds   = serviceUserInformation.Residents.Select(s => int.Parse(s.MosaicId)).ToList();
            var carePackages = await _carePackageGateway.GetServiceUserActivePackages(hackneyIds);

            foreach (var serviceUser in serviceUserInformation.Residents)
            {
                var carePackage = carePackages.FirstOrDefault(c => c.ServiceUser?.HackneyId == Convert.ToInt32(serviceUser.MosaicId));
                if (carePackage != null)
                {
                    serviceUser.ActivePackage   = carePackage.PackageType.GetDisplayName();
                    serviceUser.ActivePackageId = carePackage.Id;
                }
            }

            var pagedResidentsResponse = PagedList <ResidentResponse> .ToPagedList(serviceUserInformation.Residents,
                                                                                   serviceUserInformation.totalCount, request.PageNumber, request.PageSize);

            return(new ServiceUserSearchResponse
            {
                Residents = new PagedResponse <ResidentResponse>()
                {
                    PagingMetaData = pagedResidentsResponse.PagingMetaData,
                    Data = serviceUserInformation.Residents
                },
                nextCursor = serviceUserInformation.nextCursor,
                totalCount = serviceUserInformation.totalCount
            });
        }
示例#2
0
        public async Task <ServiceUserInformationResponse> SearchServiceUserInformationAsync(ServiceUserQueryRequest request)
        {
            var url = new UrlFormatter()
                      .SetBaseUrl("residents")
                      .AddParameter("mosaic_id", request.HackneyId)
                      .AddParameter("first_name", request.FirstName)
                      .AddParameter("last_name", request.LastName)
                      .AddParameter("postCode", request.PostCode)
                      .AddParameter("date_of_birth", request.DateOfBirth)
                      .AddParameter("cursor", request.Cursor ?? 0)
                      .ToString();

            return(await _restClient
                   .GetAsync <ServiceUserInformationResponse>(url, "Could not retrieve service user information"));
        }
示例#3
0
        public async Task <ActionResult <ServiceUserSearchResponse> > SearchServiceUser([FromQuery] ServiceUserQueryRequest request)
        {
            var result = await _getServiceUserMasterSearchUseCase.GetServiceUsers(request);

            return(Ok(result));
        }