using Microsoft.AspNetCore.Http; using System; using System.Collections.Generic; using System.Linq; using System.Linq.Expressions; using System.Threading.Tasks; using VOL.Core.CacheManager; using VOL.Core.Utilities; using VOL.Core.WorkFlow; using VOL.Entity.DomainModels; using VOL.Entity.SystemModels; namespace VOL.Core.BaseProvider { public interface IService where TEntity : BaseEntity { ICacheService CacheContext { get; } Microsoft.AspNetCore.Http.HttpContext Context { get; } string WorkFlowTableName { get; set; } IQueryable FindAsIQueryable(Expression> predicate, bool filterDeleted = true); IQueryable FindAsIQueryable(PageDataOptions options, bool useTenancy = true, bool logicDel = true); Task> GetPageDataAsync(PageDataOptions options); PageGridData GetPageData(PageDataOptions options); object GetDetailPage(PageDataOptions pageData); Task GetDetailPageAsync(PageDataOptions pageData); WebResponseContent Add(SaveModel saveDataModel); Task AddAsync(SaveModel saveDataModel); WebResponseContent Update(SaveModel saveDataModel); Task UpdateAsync(SaveModel saveDataModel); WebResponseContent Del(object[] keys, bool delList = true); Task DelAsync(object[] keys, bool delList = true); WebResponseContent Upload(List files); Task UploadAsync(List files); WebResponseContent DownLoadTemplate(); Task DownLoadTemplateAsync(); WebResponseContent Import(List files); Task ImportAsync(List files); WebResponseContent Export(PageDataOptions pageData); Task ExportAsync(PageDataOptions pageData); WebResponseContent Audit(object[] keys, int? auditStatus, string auditReason); Task AuditAsync(object[] keys, int? auditStatus, string auditReason); WebResponseContent AddProcese(TEntity entity); Task AddProceseAsync(TEntity entity); WebResponseContent AntiAudit(AntiData antiData); Task AntiAuditAsync(AntiData antiData); } }