Ejemplo n.º 1
0
        public SwitchSortOperationBuilder <TRequest, TEntity, TValue> ForCase(TValue value)
        {
            var builder = new SwitchSortContinuationOperationBuilder <TRequest, TEntity, TValue>(this);

            _cases[value] = builder;

            return(builder);
        }
Ejemplo n.º 2
0
        public SwitchSortOperationBuilder <TRequest, TEntity, TValue> ForDefaultCase()
        {
            var builder = new SwitchSortContinuationOperationBuilder <TRequest, TEntity, TValue>(this);

            _default = builder;

            return(builder);
        }
Ejemplo n.º 3
0
        private static ConfigurableSwitchSortClauseBuilder <TRequest, TEntity, TValue> ForwardFrom <TProp>(
            SwitchSortContinuationOperationBuilder <TRequest, TEntity, TValue> parent,
            string entityProperty)
        {
            var entityExpr   = Expression.Parameter(typeof(TEntity));
            var entityProp   = Expression.PropertyOrField(entityExpr, entityProperty);
            var readPropExpr = Expression.Lambda <Func <TEntity, TProp> >(entityProp, entityExpr);

            return(From(parent, readPropExpr));
        }
Ejemplo n.º 4
0
        internal static ConfigurableSwitchSortClauseBuilder <TRequest, TEntity, TValue> From(
            SwitchSortContinuationOperationBuilder <TRequest, TEntity, TValue> parent, string entityProperty)
        {
            var entityParam = Expression.Parameter(typeof(TEntity));
            var entityProp  = Expression.PropertyOrField(entityParam, entityProperty)
                              ?? throw new ArgumentException(nameof(entityProperty));

            var fwdMethodInfo = typeof(ConfigurableSwitchSortClauseBuilder <TRequest, TEntity, TValue>)
                                .GetMethod("ForwardFrom", BindingFlags.Static | BindingFlags.NonPublic);

            var fwdMethod = fwdMethodInfo.MakeGenericMethod(entityProp.Type);

            return((ConfigurableSwitchSortClauseBuilder <TRequest, TEntity, TValue>)
                   fwdMethod.Invoke(null, new object[] { parent, entityProperty }));
        }
Ejemplo n.º 5
0
        internal static ConfigurableSwitchSortClauseBuilder <TRequest, TEntity, TValue> From <TProp>(
            SwitchSortContinuationOperationBuilder <TRequest, TEntity, TValue> parent,
            Expression <Func <TEntity, TProp> > entityProperty)
        {
            var clauseBuilder = new ConfigurableSwitchSortClauseBuilder <TRequest, TEntity, TValue>(parent)
            {
                Clause = new SwitchSortClause <TRequest, TEntity, TProp>
                {
                    Direction = SortDirection.Default,
                    Clause    = entityProperty
                }
            };

            clauseBuilder.Clause.Direction = SortDirection.Default;

            return(clauseBuilder);
        }
Ejemplo n.º 6
0
 public ConfigurableSwitchSortClauseBuilder(
     SwitchSortContinuationOperationBuilder <TRequest, TEntity, TValue> parent)
     : base(parent)
 {
 }
Ejemplo n.º 7
0
 public SwitchSortClauseBuilder(SwitchSortContinuationOperationBuilder <TRequest, TEntity, TValue> parent)
 {
     _parentBuilder = parent ?? throw new ArgumentNullException(nameof(parent));
 }