Exemplo n.º 1
0
        /// <summary>
        /// Set up the filter expression based on the incoming values.
        /// </summary>
        /// <param name="query"></param>
        /// <returns></returns>
        private Expression <Func <Munro, bool> > GetFilterExpression(MunroQueryDto query)
        {
            // Validate (Move to Validation class when time permits)
            if (query.MinHeight >= query.MaxHeight)
            {
                throw new ArgumentException("MinHeight must not be greater or equal to MaxHeight");
            }

            Expression <Func <Munro, bool> > filterExpression = null;

            if (query.MunroType != null)
            {
                filterExpression = filterExpression.And(x => x.MunroType.Equals(query.MunroType));
            }
            if (query.MinHeight != null)
            {
                filterExpression = filterExpression.And(x => x.HeightMeters > query.MinHeight);
            }
            if (query.MaxHeight != null)
            {
                filterExpression = filterExpression.And(x => x.HeightMeters < query.MaxHeight);
            }

            return(filterExpression);
        }
Exemplo n.º 2
0
 public PagedResult <Munro> Get([FromQuery] MunroQueryDto query)
 {
     return(repository.GetPaged(
                query.PageNumber,
                query.PageSize,
                query.SortFields,
                query.SortDescending,
                GetFilterExpression(query)));
 }
        public MunrosControllerShould()
        {
            // Would normally mock here but no need in this instance.
            repository = new MunroRepository();

            // Set up controller
            controller = new MunrosController(repository);

            // Set up basic query dto
            query = new MunroQueryDto();
        }