using MTWorkHR.Core.Entities; using MTWorkHR.Core.IRepositories; using MTWorkHR.Core.IRepositories.Base; namespace MTWorkHR.Core.UnitOfWork { public interface IUnitOfWork { IPermissionRepository Permission { get; } IProjectRepository Project { get; } IProjectTeamRepository ProjectTeam { get; } IUserTaskRepository UserTask { get; } IUserTaskAttachmentRepository UserTaskAttachment { get; } ITaskStatusRepository UserTaskStatus { get; } IUserTaskHistoryRepository UserTaskHistory { get; } ICompanyRepository Company { get; } ITeamUserRepository TeamUser{ get; } ITeamRepository Team { get; } IMeetingRepository Meeting{ get; } IMeetingUserRepository MeetingUser { get; } IAttendanceRepository Attendance { get; } IOrderTypeRepository OrderType { get; } IOrderRequestRepository OrderRequest { get; } IOrderAllocationRepository OrderAllocation { get; } ILeaveTypeRepository LeaveType{ get; } ICountryLookupRepository CountryLookup { get; } IIndustryRepository Industry { get; } IJobTitleRepository JobTitle { get; } IUniversityRepository University { get; } ICityRepository City{ get; } IQualificationRepository Qualification { get; } ILoginOTPRepository LoginOTP { get; } IChatMessageRepository ChatMessage { get; } IContractRepository Contract { get; } Task CompleteAsync(); void BeginTran(); void CommitTran(); void RollbackTran(); object GetRepositoryByName(string name); } }