public async Task <GetPersonListResponse> GetListOfPersons(GetPersonListRequest query)
        {
            var searchResponse = await _elasticSearchWrapper.Search <QueryablePerson, GetPersonListRequest>(query).ConfigureAwait(false);

            var personListResponse = new GetPersonListResponse();

            personListResponse.Persons.AddRange(searchResponse.Documents.Select(queryablePerson =>
                                                                                queryablePerson.Create())
                                                );

            personListResponse.SetTotal(searchResponse.Total);

            return(personListResponse);
        }
        public async Task GetPersonListShouldCallGetPersonListUseCase()
        {
            // given
            var request  = new GetPersonListRequest();
            var response = new GetPersonListResponse();

            _mockGetPersonListUseCase.Setup(x => x.ExecuteAsync(request)).ReturnsAsync(response);

            // when
            await _classUnderTest.GetPersonList(request).ConfigureAwait(false);

            // then
            _mockGetPersonListUseCase.Verify(x => x.ExecuteAsync(request), Times.Once);
        }
        public static GetPersonListResponse Unmarshall(UnmarshallerContext context)
        {
            GetPersonListResponse getPersonListResponse = new GetPersonListResponse();

            getPersonListResponse.HttpResponse = context.HttpResponse;
            getPersonListResponse.Code         = context.StringValue("GetPersonList.Code");
            getPersonListResponse.Message      = context.StringValue("GetPersonList.Message");
            getPersonListResponse.RequestId    = context.StringValue("GetPersonList.RequestId");

            GetPersonListResponse.GetPersonList_Data data = new GetPersonListResponse.GetPersonList_Data();
            data.PageNumber = context.LongValue("GetPersonList.Data.PageNumber");
            data.PageSize   = context.LongValue("GetPersonList.Data.PageSize");
            data.TotalCount = context.LongValue("GetPersonList.Data.TotalCount");

            List <GetPersonListResponse.GetPersonList_Data.GetPersonList_RecordsItem> data_records = new List <GetPersonListResponse.GetPersonList_Data.GetPersonList_RecordsItem>();

            for (int i = 0; i < context.Length("GetPersonList.Data.Records.Length"); i++)
            {
                GetPersonListResponse.GetPersonList_Data.GetPersonList_RecordsItem recordsItem = new GetPersonListResponse.GetPersonList_Data.GetPersonList_RecordsItem();
                recordsItem.FaceUrl            = context.StringValue("GetPersonList.Data.Records[" + i + "].FaceUrl");
                recordsItem.FirstShotTime      = context.LongValue("GetPersonList.Data.Records[" + i + "].FirstShotTime");
                recordsItem.PersonId           = context.StringValue("GetPersonList.Data.Records[" + i + "].PersonId");
                recordsItem.SearchMatchingRate = context.StringValue("GetPersonList.Data.Records[" + i + "].SearchMatchingRate");
                recordsItem.LastShotTime       = context.LongValue("GetPersonList.Data.Records[" + i + "].LastShotTime");

                List <GetPersonListResponse.GetPersonList_Data.GetPersonList_RecordsItem.GetPersonList_TagList> recordsItem_propertyTagList = new List <GetPersonListResponse.GetPersonList_Data.GetPersonList_RecordsItem.GetPersonList_TagList>();
                for (int j = 0; j < context.Length("GetPersonList.Data.Records[" + i + "].PropertyTagList.Length"); j++)
                {
                    GetPersonListResponse.GetPersonList_Data.GetPersonList_RecordsItem.GetPersonList_TagList tagList = new GetPersonListResponse.GetPersonList_Data.GetPersonList_RecordsItem.GetPersonList_TagList();
                    tagList.Code        = context.StringValue("GetPersonList.Data.Records[" + i + "].PropertyTagList[" + j + "].Code");
                    tagList.TagCodeName = context.StringValue("GetPersonList.Data.Records[" + i + "].PropertyTagList[" + j + "].TagCodeName");
                    tagList.TagName     = context.StringValue("GetPersonList.Data.Records[" + i + "].PropertyTagList[" + j + "].TagName");
                    tagList._Value      = context.StringValue("GetPersonList.Data.Records[" + i + "].PropertyTagList[" + j + "].Value");

                    recordsItem_propertyTagList.Add(tagList);
                }
                recordsItem.PropertyTagList = recordsItem_propertyTagList;

                data_records.Add(recordsItem);
            }
            data.Records = data_records;
            getPersonListResponse.Data = data;

            return(getPersonListResponse);
        }
Exemple #4
0
        /// <summary>
        /// Осуществляет постраничную выборку списка персон асинхронно/
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public async Task <GetPersonListResponse> GetItemsAsync(GetPersonListRequest request)
        {
            if (request == null)
            {
                throw new ArgumentNullException("Person model GetPersonListRequest is invalid");
            }

            request.PageSize = (request.PageSize == 0) ? RepositoryDefaults.PageSize : request.PageSize;
            var unit = factory.CreateUnitOfWork();
            var resp = new GetPersonListResponse();

            try
            {
                resp.Persons = mapper.Map <List <PersonContract> >(
                    await unit.Persons.GetItemsAsync(request.PageNo, request.PageSize)
                    );
                resp.Count = await unit.Persons.CountAsync();
            }
            catch (Exception e) { resp.AddMessage(new Contracts.Message(e.Message)); }
            return(resp);
        }