using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using _0_Framework.Application; using _0_Framework.Domain; using CompanyManagment.App.Contracts.RollCall; using CompanyManagment.App.Contracts.WorkingHoursTemp; namespace Company.Domain.RollCallAgg { public interface IRollCallRepository : IRepository { EditRollCall GetByEmployeeIdAndWorkshopId(long employeeId, long workshopId); EditRollCall GetById(long id); #region Pooya List GetOverlappedRollCallsWithLeaveInDates(long workshopId, DateTime start, DateTime end); List GetWorkshopAbsentHistory(long workshopId, DateTime startSearch, DateTime endSearch); void RemoveEmployeeRollCallsInDate(long workshopId, long employeeId, DateTime date); RollCallsByDateViewModel GetWorkshopRollCallHistory(RollCallSearchModel searchModel); CurrentDayRollCall GetWorkshopCurrentDayRollCalls(long workshopId); List GetEmployeeRollCallsForMonth(IEnumerable employeeIds, long workshopId, DateTime start, DateTime end); List GetEmployeeRollCallsForMonth(long employeeId, long workshopId, DateTime startDate, DateTime endDate); List GetEmployeeRollCallsInDates(IEnumerable employeeIds, long workshopId, DateTime start, DateTime end); List GetEmployeeRollCallsHistoryAllInDates(long workshopId, long employeeId, DateTime start, DateTime end); EmployeeRollCallsByMonthViewModel GetEmployeeRollCallsHistory(long employeeId, long workshopId, DateTime? startDateTime, DateTime? endDateTime, DateTime? exactDateTime, DateTime? monthIndex); void AddRange(List rollCalls); void UpdateRange(List rollCalls); List GetWorkshopEmployeeRollCallsForDate(long workshopId, long employeeId, DateTime date); /// /// این متد تمام حضور غیاب های کات شده توسط بک گراند سرویس را به صورت تعداد روزانه برمیگرداند /// /// /// /// /// لیستی از تعداد و روز آن List GetRollCallWorkFlowsCutByBgService(long workshopId, DateTime start, DateTime end); IEnumerable GetNotSlicedRollCallsByWorkshopId(long workshopId, DateTime durationStart, DateTime durationEnd); List GetRange(IEnumerable rollCallIds); List GetUndefinedRollCallWorkFlowsInDates(long workshopId, DateTime durationStart, DateTime durationEnd); TimeSpan GetEmployeeRollCallTimeSpanForDuration(long employeeId, long workshopId, DateTime start, DateTime end); EmployeeRollCallsByMonthViewModel GetEmployeeRollCallsHistoryForPrint(long employeeId, long workshopId, DateTime firstRollCallToPrintStartDate, DateTime lastRollCallToPrintStartDate); #endregion long Flag(long employeeId, long workshopId); /// /// چک می کند که اگر کارگر به تازگی خروج یا ورود زده است اجازه ثبت مجدد ندهد /// /// /// /// string CheckRepeat(long employeeId, long workshopId); RollCallViewModel GetDetails(long rollCallId); List GetRangeByWorkshopIdEmployeeIdForDate(long workshopId, long employeeId, DateTime date); List GetWorkshopEmployeeRollCallsWithUndefinedForDate(long workshopId, long employeeId, DateTime georgianDateTime); void RemoveEmployeeRollCallsWithUndefinedInDate(long workshopId, long employeeId, DateTime date); #region Mahan List GetEmployeeRollCallsForCustomizeCheckoutTemp(IEnumerable customizeCheckoutIds, long workshopId); Task> GetRollCallsInShiftDate(DateTime rollCallShiftDate, long employeeId, long workshopId); Task> GetRollCallsUntilNowWithWorkshopIdEmployeeIds(long workshopId, List employeeIds, DateTime fromDate); #endregion Task> GetCaseHistoryTitles(long workshopId,RollCallCaseHistorySearchModel searchModel); Task> GetCaseHistoryDetails(long workshopId, string titleId, RollCallCaseHistorySearchModel searchModel); } }