예제 #1
0
        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()
                       ));
        }
예제 #2
0
        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()
                       ));
        }