Exemplo n.º 1
0
        public ServiceResult <PagedResult <AllHolidayDto> > Pagination(FilterHolidayDto filters)
        {
            const int pageSize    = 10;
            var       newDatetime = new DateTime();

            if (filters.Date.Year == 0 || filters.Date.Month == 0 || filters.Date.Day == 0)
            {
                filters.Date = null;
            }
            else
            {
                newDatetime = new DateTime(filters.Date.Year, filters.Date.Month, filters.Date.Day);
            }

            var resultFull = _dataContext.Holidays
                             .Where(x => x.IsDeleted != true);

            var resultPage = resultFull
                             .Where(
                x => (string.IsNullOrEmpty(filters.Description) || x.Description.ToUpper().Contains(filters.Description.ToUpper()))
                &&
                //(filters.Date == null || (DateTime.Compare(x.Date, new DateTime(filters.Date.Year, filters.Date.Month, filters.Date.Day)) == 0))

                (filters.Date == null || (x.Date.Day == newDatetime.Day && x.Date.Month == newDatetime.Month && x.Date.Year == newDatetime.Year))
                ).Skip((filters.Page ?? 0) * pageSize)
                             .Take(pageSize)
                             .ProjectTo <AllHolidayDto>()
                             .ToList();

            if (resultPage.Count() == 0 && filters.Page > 0)
            {
                resultPage = resultFull
                             .Where(
                    x => (string.IsNullOrEmpty(filters.Description) || x.Description.ToUpper().Contains(filters.Description.ToUpper()))
                    &&
                    //(filters.Date == null || (DateTime.Compare(x.Date, new DateTime(filters.Date.Year, filters.Date.Month, filters.Date.Day)) == 0))

                    (filters.Date == null || (x.Date.Day == newDatetime.Day && x.Date.Month == newDatetime.Month && x.Date.Year == newDatetime.Year))
                    ).Skip(((filters.Page ?? 0) - 1) * pageSize)
                             .Take(pageSize)
                             .ProjectTo <AllHolidayDto>()
                             .ToList();
            }

            return(new ServiceResult <PagedResult <AllHolidayDto> >(new PagedResult <AllHolidayDto>()
            {
                List = resultPage,
                TotalRecords = resultFull.Count()
            }));
        }
Exemplo n.º 2
0
        public IActionResult GetPageHoliday([FromQuery] FilterHolidayDto param)
        {
            FilterHolidayDto filters = new FilterHolidayDto()
            {
                Description = param.Description,
                Date        = new DateDto()
                {
                    Day   = param.Day,
                    Month = param.Month,
                    Year  = param.Year
                },
                Page = param.Page
            };
            var response = _holidayService.Pagination(filters);

            if (!response.IsSuccess)
            {
                return(BadRequest(response));
            }

            return(Ok(response.Response));
        }