/// <summary> /// Handles the specified request. /// </summary> /// <param name="request">The request.</param> /// <returns>A <see cref="Agatha.Common.Response"/></returns> public override Response Handle(GetLookupListByKeywordRequest request) { var lookupType = _lookupTypeService.GetLookupType(request.LookupName); IList <Expression <Func <LookupBase, object> > > propertiesToSearch = new List <Expression <Func <LookupBase, object> > > { p => p.Name, p => p.Description }; IList <Order> orders = new List <Order> { Order.Asc(Projections.Property <LookupBase> (p => p.SortOrderNumber)), Order.Asc(Projections.Property <LookupBase> (p => p.Name)) }; var result = _keywordsSearchService.FindPagedEntityListByKeywords( lookupType, request.SearchCriteria, propertiesToSearch, request.PageIndex, request.PageSize, orders); var pagedLookupListDto = new PagedLookupListDto { TotalCount = result.TotalCount, PageIndex = result.PageIndex, PageSize = result.PageSize, PagedList = Mapper.Map <IList <LookupBase>, IList <LookupValueDto> > (result.ItemList) }; var response = CreateTypedResponse(); response.SearchCriteria = request.SearchCriteria; response.PagedLookupListDto = pagedLookupListDto; return(response); }
/// <summary> /// Handles the specified request. /// </summary> /// <param name="request">The request.</param> /// <returns>A <see cref="Agatha.Common.Response"/></returns> public override Response Handle(GetLookupValuesRequest request) { var lookupType = _lookupTypeService.GetLookupType(request.Name); var response = CreateTypedResponse(); response.Name = request.Name; if (string.IsNullOrEmpty(request.DerivedDtoType)) { response.LookupValues = GetLookupDto(lookupType); } else { response.LookupValues = GetLookupDto(lookupType, request.DerivedDtoType); } return(response); }