public async Task <PagedResultDto <GetShiftForViewDto> > GetAll(GetAllShiftsInput input) { var filteredShifts = _shiftRepository.GetAll() .WhereIf(!string.IsNullOrWhiteSpace(input.Filter), e => false || e.NameAr.Contains(input.Filter) || e.NameEn.Contains(input.Filter) || e.Code.Contains(input.Filter)) .WhereIf(!string.IsNullOrWhiteSpace(input.NameArFilter), e => e.NameAr == input.NameArFilter) .WhereIf(!string.IsNullOrWhiteSpace(input.NameEnFilter), e => e.NameEn == input.NameEnFilter) .WhereIf(!string.IsNullOrWhiteSpace(input.CodeFilter), e => e.Code == input.CodeFilter); var pagedAndFilteredShifts = filteredShifts .OrderBy(input.Sorting ?? "id asc") .PageBy(input); var shifts = from o in pagedAndFilteredShifts select new GetShiftForViewDto() { Shift = new ShiftDto { NameAr = o.NameAr, NameEn = o.NameEn, Code = o.Code, TimeIn = o.TimeIn, TimeOut = o.TimeOut, IsFlexible = o.IsFlexible, IsDayRestCalculated = o.IsDayRestCalculated, IsOneFingerprint = o.IsOneFingerprint, IsInOutWithoutClculateHours = o.IsInOutWithoutClculateHours, IsTwoFingerprint = o.IsTwoFingerprint, TimeInRamadan = o.TimeInRamadan, TimeOutRamadan = o.TimeOutRamadan, TotalHoursPerDay = o.TotalHoursPerDay, TotalLateMinutesPerMonth = o.TotalLateMinutesPerMonth, TotalHoursPerDayRamadan = o.TotalHoursPerDayRamadan, TotalLateMinutesPerMonthRamadan = o.TotalLateMinutesPerMonthRamadan, Id = o.Id, } }; var totalCount = await filteredShifts.CountAsync(); return(new PagedResultDto <GetShiftForViewDto>( totalCount, await shifts.ToListAsync() )); }
public async Task <PagedResultDto <GetShiftForViewDto> > GetAll(GetAllShiftsInput input) { var filteredShifts = _shiftRepository.GetAll() .WhereIf(!string.IsNullOrWhiteSpace(input.Filter), e => false || e.NameAr.Contains(input.Filter) || e.NameEn.Contains(input.Filter) || e.Code.Contains(input.Filter)) .WhereIf(!string.IsNullOrWhiteSpace(input.NameArFilter), e => e.NameAr == input.NameArFilter) .WhereIf(!string.IsNullOrWhiteSpace(input.NameEnFilter), e => e.NameEn == input.NameEnFilter) .WhereIf(!string.IsNullOrWhiteSpace(input.CodeFilter), e => e.Code == input.CodeFilter); var pagedAndFilteredShifts = filteredShifts .OrderBy(input.Sorting ?? "id asc") .PageBy(input); var shifts = from o in pagedAndFilteredShifts select new GetShiftForViewDto() { Shift = new ShiftDto { NameAr = o.NameAr, NameEn = o.NameEn, Code = o.Code, TimeIn = o.TimeIn, TimeOut = o.TimeOut, EarlyIn = o.EarlyIn, LateIn = o.LateIn, EarlyOut = o.EarlyOut, LateOut = o.LateOut, TimeInRangeFrom = o.TimeInRangeFrom, TimeInRangeTo = o.TimeInRangeTo, TimeOutRangeFrom = o.TimeOutRangeFrom, TimeOutRangeTo = o.TimeOutRangeTo, Id = o.Id, IsOverTimeAllowed = o.IsOverTimeAllowed, ShiftType = ObjectMapper.Map <ShiftTypeEnumDto>(o.ShiftType), DeductType = o.DeductType } }; var totalCount = await filteredShifts.CountAsync(); return(new PagedResultDto <GetShiftForViewDto>( totalCount, await shifts.ToListAsync() )); }