public IEntityObject GetModel(IEntityObject model, EntitySelectQuery selectQuery) { switch (model.Type) { case ObjectType.User: return(EntityWrapper.GetModel(model as User, selectQuery)); case ObjectType.Client: return(EntityWrapper.GetModel(model as Client, selectQuery)); case ObjectType.Machine: return(EntityWrapper.GetModel(model as Machine, selectQuery)); case ObjectType.MachineType: return(EntityWrapper.GetModel(model as MachineType, selectQuery)); case ObjectType.Order: return(EntityWrapper.GetModel(model as Order, selectQuery)); case ObjectType.RepairType: return(EntityWrapper.GetModel(model as RepairType, selectQuery)); default: return(null); } }
public static TObject GetModel <TObject>(EntitySelectQuery selectQuery) where TObject : class, IEntityObject, IEntityObject <TObject>, new() { using (ChannelFactory <IMachineRepairService> alphaserverFactory = GetChanel()) { IMachineRepairService alphaserverProxy = alphaserverFactory.CreateChannel(); return(alphaserverProxy.GetModel(new TObject(), selectQuery) as TObject); } }
private static Expression <Func <T, bool> > GetExpression <T>(EntitySelectQuery expressionBuilder, ParameterExpression param) where T : class, IEntityObject, IEntityObject <T> { var exp = GetExpression <T>(expressionBuilder._whereExpression, param); if (exp == null) { return(null); } return(Expression.Lambda <Func <T, bool> >(exp, param)); }
public static EList <TObject> GetModels <TObject>(EntitySelectQuery selectQuery) where TObject : class, IEntityObject, IEntityObject <TObject>, new() { using (ChannelFactory <IMachineRepairService> alphaserverFactory = GetChanel()) { IMachineRepairService alphaserverProxy = alphaserverFactory.CreateChannel(); var obj = new TObject(); return(alphaserverProxy.GetModelsWithQuery(obj, selectQuery) as EList <TObject>); } }
public static IQueryable <TObject> GetQueryable <TObject>(TObject workingObject, EntitySelectQuery selectQuery, DbContext context) where TObject : class, IEntityObject, IEntityObject <TObject> { IQueryable <TObject> dbQuery = context.Set <TObject>(); if (workingObject.HasAssociation) { dbQuery = workingObject.GetAssociaton(context.Set <TObject>()); } var param = Expression.Parameter(typeof(TObject), "t"); var exp = GetExpression <TObject>(selectQuery, param); if (exp != null) { dbQuery = dbQuery.Where(exp); } if (selectQuery.OrderDirection != OrderByDirection.None) { MemberExpression member; if (selectQuery.OrderBy.Contains(".")) { int pos = selectQuery.OrderBy.IndexOf("."); member = Expression.Property(param, selectQuery.OrderBy.Substring(0, pos)); member = Expression.Property(member, selectQuery.OrderBy.Substring(pos + 1)); } else { member = Expression.Property(param, selectQuery.OrderBy); } //var pi = typeof(TObject).GetProperty(selectQuery.OrderBy); switch (selectQuery.OrderDirection) { case OrderByDirection.Asc: dbQuery = dbQuery.OrderBy(param, member); break; case OrderByDirection.Desc: dbQuery = dbQuery.OrderByDescending(param, member); break; } } if (selectQuery.From >= 0 && selectQuery.Count > 0) { return(dbQuery.Skip(selectQuery.From).Take(selectQuery.Count)); } if (selectQuery.Top > 0) { return(dbQuery.Take(selectQuery.Top)); } return(dbQuery); }