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>)); } }
public static void LoadEntitySetWithFilterWithIncludes(ILoadEntitySetWithFilterWithIncludes <TEntity> msg) { typeof(EntityRepository <, ,>).MakeGenericType(typeof(TEntity), EntityType, ctxType) .GetMethod("LoadEntitySetWithFilterWithIncludes") .Invoke(null, new object[] { msg }); }
public static void LoadEntitySet <TEntity>(this ILoadEntitySetWithFilterWithIncludes <TEntity> msg) where TEntity : class, IEntity { EF7DataContext <TEntity> .LoadEntitySetWithFilterWithIncludes(msg); }