using System.Collections.Generic; using System.IO; using System.Threading.Tasks; using _0_Framework.Domain; using Company.Domain.EmployeeDocumentItemAgg; using CompanyManagment.App.Contracts.EmployeeDocuments; using CompanyManagment.App.Contracts.Workshop; namespace Company.Domain.EmployeeDocumentsAgg { public interface IEmployeeDocumentsRepository : IRepository { EmployeeDocuments GetByEmployeeIdWorkshopId(long employeeId, long workshopId); EmployeeDocumentsViewModel GetViewModelByEmployeeIdWorkshopId(long employeeId, long workshopId); List SearchForClient(SearchEmployeeDocuments cmd); void AddRange(IEnumerable entities); EmployeeDocuments GetByIdWithItems(long employeeDocumentsId); EmployeeDocuments GetByEmployeeIdWorkshopIdWithItems(long employeeId, long workshopId); List GetEmployeeIds(long workshopId); List GetWorkshopsWithUploadedDocuments(); List GetByWorkshopIdWithItemsForChecker(long workshopId, bool onlyConfirmed); List GetWorkshopsWithDocumentsAwaitingReviewForCheckerWorkFlow(); List SearchForAdmin(SearchEmployeeDocuments cmd); List GetWorkshopsWithDocumentsAwaitingReviewForAdminWorkFlow(List workshops); List GetByWorkshopIdWithItemsForAdminWorkFlow(long workshopId); Task GetCheckerWorkFlowCount(); Task GetAdminWorkFlowCountForNewEmployees(List workshopIds); Task GetAdminWorkFlowCountForSubmittedAndRejectedDocuments(List workshopIds); List GetDocumentsAwaitingReviewByWorkshopIdForCheckerWorkFlow(long workshopId); #region Mahan /// /// کارگاهی که افزودن پرسنل کرده اند. بر اساس نقش فیلتر میشوند /// /// /// /// Task> GetWorkshopDocumentCreatedEmployeeForAdmin( List workshops, long roleId); /// ///کارگاه های مدارک های برگشت خورده براساس دسترسی افراد و نقششان. یک مدرک برگشت خورده به تمامی کسانی که به آن کارگاه دسترسی دارند و تمامی کسانی که هم نقش آپلود کننده بوده اند نمایش داده میشود /// /// /// /// Task> GetWorkshopDocumentRejectedForAdmin( List workshops, long roleId); /// /// مدارک های برگشت خورده براساس دسترسی افراد و نقششان. یک مدرک برگشت خورده به تمامی کسانی که به آن کارگاه دسترسی دارند و تمامی کسانی که هم نقش آپلود کننده بوده اند نمایش داده میشود /// /// /// /// Task> GetRejectedItemsByWorkshopIdAndRoleForAdminWorkFlow(long workshopId, long roleId); /// /// کارگاه هایی که افزودن پرسنل کرده اند و مدارک آنها ناقص است /// /// /// /// Task> GetCreatedEmployeesWorkshopDocumentForAdmin( List workshops,long roleId); /// /// پرسنلی که افزوده شده اند در کارگاه و آپلود مدارک آنها ناقص است /// /// /// Task> GetCreatedEmployeesDocumentByWorkshopIdForAdmin(long workshopId); /// /// لیست کارگاه هایی که مدارک آپلود شده توسط کلاینت برگشت خورده است در کارپوشه ادمین /// /// /// /// Task> GetClientRejectedDocumentWorkshopsForAdmin( List workshops, long roleId); /// /// مدارک های آپلود شده توسط کلاینت در کارگاه که برگشت خورده اند در کارپوشه ادمین /// /// /// Task> GetClientRejectedDocumentByWorkshopIdForAdmin(long workshopId); /// /// مدارک های برگشت خورده برای کلاینت /// /// /// /// Task> GetClientRejectedDocumentForClient(long workshopId, long accountId); #endregion } }