Example #1
0
        public static void EntitySetWithFilterWithIncludesLoaded(ILoadEntitySetWithFilterWithIncludes <TEntity> msg)
        {
            try
            {
                using (var ctx = new TDBContext())
                {
                    var loggerFactory = ctx.GetService <ILoggerFactory>();
                    loggerFactory.AddProvider(new MyLoggerProvider());

                    var rIncludes = msg.Includes.Select(ExpressionConverter <TEntity> .ConvertExpressionType <TDBEntity, object>).ToList();
                    var rfilter   = msg.Filter.Select(ExpressionConverter <TEntity> .ConvertExpressionType <TDBEntity, bool>).ToList();
                    IQueryable <TDBEntity> rres = ctx.Set <TDBEntity>().AsNoTracking();
                    if (rres == null)
                    {
                        return;
                    }


                    rres = rIncludes.Aggregate(rres, (current, inc) => current.Include(inc));

                    rres = rfilter?.Aggregate(rres, (current, s) => current.Where(s));

                    var res = rres.OrderByDescending(x => x.Id).Select(x => (TEntity)(object)x).ToList();
                    EventMessageBus.Current.Publish(new EntitySetWithFilterWithIncludesLoaded <TEntity>(res, msg.Includes, new StateEventInfo(msg.Process.Id, RevolutionData.Context.Entity.Events.EntitySetLoaded), msg.Process, Source), Source);
                }
            }
            catch (Exception ex)
            {
                PublishProcesError(msg, ex, typeof(IEntitySetWithFilterWithIncludesLoaded <TEntity>));
            }
        }
Example #2
0
 public static void LoadEntitySetWithFilterWithIncludes(ILoadEntitySetWithFilterWithIncludes <TEntity> msg)
 {
     typeof(EntityRepository <, ,>).MakeGenericType(typeof(TEntity), EntityType, ctxType)
     .GetMethod("LoadEntitySetWithFilterWithIncludes")
     .Invoke(null, new object[] { msg });
 }
Example #3
0
 public static void LoadEntitySet <TEntity>(this ILoadEntitySetWithFilterWithIncludes <TEntity> msg) where TEntity : class, IEntity
 {
     EF7DataContext <TEntity> .LoadEntitySetWithFilterWithIncludes(msg);
 }