using CZFW.Framework.Model; using CZFW.Framework.Model.Entity; using CZFW.Framework.Model.ViewModel; using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Linq.Expressions; using System.Text; namespace CZFW.Framework.Interface { public interface ISlimLogicBase : Model.Entity.IDependency where TSlimEntity : SlimEntityBase, new() { CZDbContext DbContext { get; } IQueryable Queryable { get; } IQueryable GetQueryable(); ResultModel Commit(); ResultModel AddEntity(TSlimEntity entity, bool save = true); ResultModel AddEntities(IList entities, bool save = true, bool skipInvalid = true); ResultModel RemoveEntity(int id, bool save = true); ResultModel RemoveEntities(Expression> condition, bool save = true); ResultModel EditEntity(TSlimEntity entity, bool save = true); ResultModel AddOrEditEntity(TSlimEntity entity, bool save = true); ResultModel ExcuteSql(string sql); TSlimEntity GetEntity(int id); TSlimEntity GetEntity(Expression> condition); TVal GetValue(Expression> condition, Expression> selector); IList GetValues(Expression> condition, Expression> selector); IList GetEntities(Expression> condition); IList GetEntities(); IList GetEntities( Expression> condition, Expression> orderBy, ListSortDirection direction); IList GetEntities( out int rows, Expression> condition = null, int pageIndex = 1, int pageSize = 20, Expression> orderBy = null, ListSortDirection direction = ListSortDirection.Descending ); IList GetEntities(int pageSize, int pageIndex, out int rows); int GetCount(Expression> condition); } }