-
Notifications
You must be signed in to change notification settings - Fork 0
/
IService.cs
24 lines (23 loc) · 1.17 KB
/
IService.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
using PayCoreClassWork3.WebAPI.Core.DataAccess.Concrete;
using PayCoreClassWork3.WebAPI.Core.Entity.Concrete;
using System.Linq.Expressions;
namespace PayCoreClassWork3.WebAPI.Core.Business.Abstract
{
// Tüm veritabanı nesnelerine hizmet edecek ortak servis metodları burada yer alır.
// ICoreSession interface'si ile aynı isimde metodlara sahiptir. Ancak bu metodlar servis görevi görmektedir.
// Bir servis nesnesine erişilerek o nesneye ait session sınıfındaki metodlarada erişilmesi amaçlanmıştır.
// TEntity, CoreEntity sınıfından kalıtım almış bir sınıf olmalıdır.
public interface IService<TEntity> where TEntity : CoreEntity
{
Task<List<TEntity>> GetAll(Expression<Func<TEntity, bool>>? expression = null);
Task<TEntity> GetById(long id);
Task Add(TEntity entity);
Task Update(TEntity entity);
Task Delete(TEntity entity);
void BeginTransaction();
Task CommitTransaction();
Task RollbackTransaction();
void CloseTransaction();
Task StartTransactionalOperation(Operation operation, TEntity entity, TEntity? entityFromBody = null);
}
}