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