Exemplo n.º 1
0
        public static IEnumerable <TTarget> Convert <TTarget>(this IEnumerable coll, ModelConvertOptions options)
        {
            Type sourceType = coll.GetType();

            if (sourceType.IsGenericType)
            {
                sourceType = sourceType.GetGenericArguments()[0];

                if (options == null)
                {
                    options = new ModelConvertOptions();
                }

                options.Source(sourceType);
            }

            foreach (object obj in coll)
            {
                yield return(ModelConvert.Convert <TTarget>(obj, options));
            }
        }
Exemplo n.º 2
0
        protected virtual ModelConvertOptions CreateConvertOptions(EntityAction action)
        {
            var options = new ModelConvertOptions();

            if (action == EntityAction.ToModel)
            {
                options.Target <TModel>().Source <TEntity>();
            }
            else
            {
                options.Target <TEntity>().Source <TModel>();
            }

            options.IgnoreReadOnly();

            if (action == EntityAction.Modify)
            {
                options.Target <TEntity>().IgnoreKeys();
            }

            return(options);
        }
Exemplo n.º 3
0
 public SourceOptions(ModelConvertOptions model, Type modelType)
     : base(model, modelType)
 {
 }
Exemplo n.º 4
0
        public static IQueryable <TTarget> Build <TSource, TTarget>(IQueryable <TSource> source, ModelConvertOptions options)
        {
            if (options == null)
            {
                options = ModelConvert.Target <TTarget>().Source <TSource>().Options.IgnoreReadOnly();
            }

            options.IgnoreReadOnly();

            MemberBindingState state = new MemberBindingState(Expression.Parameter(typeof(TSource), "obj"));

            ModelConvert.WalkConvertiblProperties(null, ModelInfo.GetModelInfo(typeof(TTarget)), null, ModelInfo.GetModelInfo(typeof(TSource)), options, BuildProperty, state);

            var body = Expression.MemberInit(Expression.New(typeof(TTarget)), state.Bindings);

            var lambda = Expression.Lambda <Func <TSource, TTarget> >(body, state.Parameter);

            return(source.Select(lambda));
        }
Exemplo n.º 5
0
        public Task <PagedResult <TResult> > QueryByResultAsync <TResult>(QueryArgs args, ModelConvertOptions options = null)
        {
            if (args == null)
            {
                throw new ArgumentNullException(nameof(args));
            }

            if (args.Sort.IsNullOrEmpty())
            {
                args.SetDefaultSort <TEntity>(DefaultSort);
            }

            return(QueryFilter(Table, args).PagedResultByResultAsync <TEntity, TResult>(args, options));
        }
Exemplo n.º 6
0
        public static PagedResult <TResult> PagedResultByResult <TSource, TResult>(this IQueryable <TSource> query, QueryArgs args, ModelConvertOptions options)
        {
            IQueryable <TResult> query1;

            query1 = Convert <TSource, TResult>(query, options);
            var state = WhereAndOrderBy(query1, args);

            query1 = state.Final;

            WriteSQL(query1);

            return(Linq.PagedResult <TResult> .Create(query1.ToArray(), args, state.Count, state.Plain));
        }
Exemplo n.º 7
0
 public static IQueryable <TResult> Convert <TSource, TResult>(this IQueryable <TSource> source, ModelConvertOptions options)
 {
     return(SelectBuilder.Build <TSource, TResult>(source, options));
 }
Exemplo n.º 8
0
        public static async Task <PagedResult <TResult> > PagedResultByResultAsync <TSource, TResult>(this IQueryable <TSource> query, QueryArgs args, ModelConvertOptions options)
        {
            IQueryable <TResult> query1;

            query1 = query.Convert <TSource, TResult>(options);
            var state = await WhereAndOrderBy(query1, args);

            query1 = state.Final;

            WriteSQL(query1);

            return(PagedResult <TResult> .Create(await query1.ToArrayAsync(), args, state.Count, state.Plain));
        }
Exemplo n.º 9
0
        public static IEnumerable <TTarget> Convert <TTarget>(this IEnumerable coll)
        {
            ModelConvertOptions options = new ModelConvertOptions();

            return(Convert <TTarget>(coll, options));
        }
Exemplo n.º 10
0
 public BaseOptions(ModelConvertOptions model, Type modelType)
 {
     Options   = model;
     ModelType = modelType;
 }